一般的なFlashムービーの生成方法では、Adobe社のFlash Professionalを代表とする作成ツール(紹介した「FLVTool2: オープンソースのFLVファイルにメタデータつけたり、メタデータを取得できるソフト」のようなツールもあるし)を使ってSWFファイルを出力しますが、ユーザーの要求に従ってアプリケーションが動的にFlashムービーを生成したい場合は、この方法は使えません。プログラムのロジックでアプリケーション実行時にFlashムービーを生成しなければなりません。
今回紹介するMingというものは、PHP、C/C++、Perl、Python、RubyからSWFフォーマットのFlashを作成するオープンソースのライブラリです。
Ming はcygwinのパッケージとしてインストール出来ます。
使用例:
・以下のソースをming.as という名前で用意する
- _root.createTextField("tf",0,0,0,800,600);
- _root.tf.text = "Hello world !";
・コンパイル
- $ makeswf -o ming.swf ming.as
ウェブ系にたいして、Phpを使うところも多いですから、以下はPHPでMingを利用してSWFを生成することを紹介します。
PHPとMingを使うことにより、PHPで開発したアプリケーションから動的にSWFフォーマットのFlashムービーを生成できます。Mingライブラリは、SWFフォーマットの内部を隠蔽し、オブジェクトを組み合わせることでFlashムービーを構築できます。
サーバー環境構成
・Microsoft Windows XP Professional
・Mingライブラリの最新版(php_ming.dllというDLLがある)
もちろん、クライアントと同じPCだったら、Adobe Flash Playerのインストールも忘れないで。
SWFファイル作成
開発者には、Mingが提供するいくつかのクラスのオブジェクトを生成し、SWFムービーを表すオブジェクトを正しく構築することで、SWFファイルを作成できます。
SWFファイルは、ディスクに保存することも、Webサーバーからブラウザに返すことも可能です。どちらにしても、最初にやるべきことはSWFムービーそのものを表すSWFMovieクラスのオブジェクトを作成することです。SWFMovieオブジェクトは、SWFフォーマットのデータそのものを表します。すなわち、1つのSWFMovieインスタンスが、1つのSWFフォーマットのファイルに対応しています。
・SWFMovieオブジェクトを生成するにはswfMovie()コンストラクタを呼び出します
- SWFMovie swfmovie ( void )
・save関数
- int swfmovie->save ( string filename [, int compression] )
・PHPのソースsample.php
- <?php
- $swf = new SWFMovie();
- $swf->save("test.swf");
- print "SWF file has been saved.";
- ?>
SWFMovieオブジェクトを生成し、初期状態のままsave()関数を使ってディスクに保存しています。プログラムが正しく実行されれば、カレントディレクトリに「test.swf」という名前のファイルが生成されているはずです。このSWFフォーマットのファイルは、Flashプレイヤーで正しく再生できます。
そこまではPHPでSWFを生成することをできました。本番のロジックが実装されるアプリケーションは(C/C++、Perl、Python、Rubyなどでも)、これを基づいて実装できます。
リソース
・http://ming.sourceforge.net/ 公式サイト
・http://codezine.jp/article/detail/706?p=1 PHPとMingで作るFlashサーバー
Posted on Tuesday, 10th February 2009 by admin
Tags: Flash, Ming, オープンソース, ライブラリ
Posted in Flash Project | Comments (2) | 9,003 views

February 11th, 2009 at 12:51 pm
[...] です。機能から見ると前回紹介した「Ming: PHP、C/C++、Perl、Python、RubyからSWFフォーマットのFlashを作成するオープンソースのライブラリ(使用例を含む)」と少し似てますね。SWFとFLVの読み [...]
February 12th, 2009 at 6:12 pm
[...] 機能方面、Ming(@see Ming: PHP、C/C++、Perl、Python、RubyからSWFフォーマットのFlashを作成するオープンソースのライブラリ(使用例を含む))とおなじ、サーバ動的生成することをできます。J [...]