unoh.github.com

Flash Liteコンテンツを動的に合成してみる

Tue Apr 27 01:58:51 -0700 2010

おはようございます。うちだです。

本日、mixiアプリモバイルにて「バンドやろうよ!」をリリース致しました。是非遊んでみてください。

qr.jpg

今回は「バンドやろうよ!」でも使った、Flash Liteコンテンツの合成を軽めに紹介します。

Ming

Flash Liteの合成にはMingを使います。
Mingを用いるとswfの合成や変数書き換えが非常に簡単にできます。
但し、一部機能にバグがあるので要注意ですが、合成や変数書き換えだけに利用するのであれば今のところ問題は見つかっていません。

さっそく合成

バンドやろうよ!」では自キャラクターのギターを持ち替えすることでき、その部分に利用しています。

合成するパーツ毎にswfを用意します

1.swf 2.swf 3.swf guitar.swf
ming_useswfversion(4);
$swf = new SWFMovie();
$swf->setDimension(150, 200);
$swf->setbackground(0xff, 0xff, 0xff);
$swf->setRate(8);

// 同じインスタンスをaddすると参照になります
// 体
$clip1 = new SWFPrebuiltClip("./1.swf");
$obj = $swf->add($clip1);
$obj->moveTo(0, 0);

// ギター
$guitar = new SWFPrebuiltClip("./guitar.swf");
$obj = $swf->add($guitar);
$obj->moveTo(0, 75);

// 右手
$clip2 = new SWFPrebuiltClip("./2.swf");
$obj = $swf->add($clip2);
$obj->moveTo(14.15, 111.50);

// 左手
$clip3 = new SWFPrebuiltClip("./3.swf");
$obj = $swf->add($clip3);
$obj->moveTo(74.6, 107.2);

// 変数を書き換える
// 今回は使う必要ないですが、参考までに
// $swf->add(new SWFAction("/:hoge = true;"));

// ファイルとして保存するとき
$swf->save("test.swf");

// 動的に出力するとき
// $swf->output();

上のコードを実行すると合成されます

さいごに

Mingを使うと静的なswfをつくったり、動的にもだせたりで便利ですよ。

おわり qr