Ming: PHP、C/C++、Perl、Python、RubyからSWFフォーマットのFlashを作成するオープンソースのライブラリ(使用例を含む)

一般的な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

Apacheの最新版

PHPの最新版

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

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サーバー

2 thoughts on “Ming: PHP、C/C++、Perl、Python、RubyからSWFフォーマットのFlashを作成するオープンソースのライブラリ(使用例を含む)”

Leave a Reply

Your email address will not be published. Required fields are marked *