PHPでSWFの生成
2008.08.30 Author: Jas
ユーザの入力内容や属性情報によって、動的に変化するFlashサイトを作れたら・・・便利ですよね?
PHPには、SWFを作成するためのMingと呼ばれるライブラリが用意されており、それを利用すると動的なムービーを生成することが可能です。
今回は、PHPとMingを利用して、swfを生成する方法を簡単にご紹介します。
(ただし、Mingを利用するには別途インストール作業が必要ですので、マニュアルを参考に環境を準備してください。)
// 新規SWFムービーの作成 $movie = new SWFMovie();// swfのサイズ(width, height)
$movie->setDimension(100, 100);// 背景色(RGB)
$movie->setbackground(0, 200, 225);
まずは新規のSWFムービーを生成し、サイズと背景色を指定します。
背景色の指定はRGBで指定でき、0 から 255 までの整数値か、あるいは 0x00 から 0xFF までの十六進値が有効となります。
これで、濃水色背景のムービーができました。
// 新規図形の生成 $shape = new SWFShape();//塗りつぶしの色(RGB)
$fill = $shape->addFill(200, 100, 150);
$shape->setRightFill($fill);// 描画の起点(絶対座標)
$shape->movePenTo(5, 8);// □の描画
$shape->drawLine(10, 0);
$shape->drawLine(0, 10);
$shape->drawLine(-10, 0);
$shape->drawLine(0, -10);
空のムービーに図形を描画します。
塗りつぶし色も背景色と同様、RGBで指定します。
次にmovePenTo()で起点を移動し、drawLine()で図形を描画します。
このとき、movePen()を使うとカレント座標からの相対座標となります。
// フォントの指定 $font = new SWFFont("font/fontname.fdb"); $text = new SWFText(); $text->setFont($font);// 座標と色、サイズの指定
$text->moveTo(10, 20);
$text->setColor(225, 225, 0);
$text->setHeight(10);// 文字列
$text->addUTF8String("しゃいんブログ");
次に文字列の描画です。
文字列を出力するためのフォントは.ttfから.fdbに変換する必要があります。
フォントと座標、色、サイズなどを指定したら、addUTF8String()で文字列を追加します。
ここで気づくかと思いますが、日本語を扱う場合にはスクリプトをUTF-8で書いてください。
そうしないと、日本語は文字化けするか、出力すらされなくなります。
// swfの出力 header('Content-type: application/x-shockwave-flash'); $movie->output();// swfの保存
$movie->save("swf/test.swf");
最後に、生成したSWFの出力/保存です。
これで画面に生成されたSWFが表示され、指定フォルダにSWFファイルが保存されたはずです。
簡単に紹介しましたが、PHP+Mingを使えばこんなに簡単にSWFを生成することができます。
スクリプト中にはfor文や条件分岐なども使えるので、これらを組み合わせればもっと複雑な描画が可能になります。
このほかにも画像の表示やフレームの追加もできるので、ぜひ試してみてください。
[参考]
http://codezine.jp/a/article/aid/706.aspx