画像の表示(Ming/C++)
Ming(C++版)を使用して画像を表示するFlashコンテンツを作成してみる.
画像を表示するだけのサンプルを以下に示す.
今回のサンプルは,画像の一回り大きいSWFMovieに,画像をのせて表示するものである.
ので,まず,画像を読み込む.
// 画像の作成と読み込み SWFBitmap *image = new SWFBitmap(IMAGE_FILE);画像は
SWFBitmap#SWFBitmap(const char *filename, const char *alpha=NULL)にて作成する. 引数は,画像ファイルへのパスである. ファイルのサフィックスに応じてコンバートされ,Flashコンテンツ用のフォーマットに変換されるようだ. 現在許されるサフィックスは以下.
- .dbl
- .gif
- .png
- .jpg
int getWidth() int getHeight()サンプルでは生成した画像のサイズから,SWFMovieのサイズを算出している.
// SWFMovieサイズは画像の一回り大きいものにする int movie_size_x = image->getWidth() + X_MARGIN * 2; int movie_size_y = image->getHeight() + Y_MARGIN * 2; // とにかくSWFMovieがベース. SWFMovie *movie = new SWFMovie(); // サイズ指定. movie->setDimension(movie_size_x, movie_size_y); // 背景色指定. movie->setBackground(0x00, 0xff, 0xff); // 動画のレート(fps)を指定. movie->setRate(0);あとは,SWFMovieに画像を置いて,画像の位置を指定する.
// 画像をSWFMovieに置く. SWFDisplayItem *item = movie->add(image); // 置いた画像の位置を移動(XYセンタリング). item->moveTo(X_MARGIN, Y_MARGIN);このように,SWFMovie#add(SWFBlock *character)で取得できる,SWFDisplayItemオブジェクトのメソッド
moveTo(float x, float y)にて,SWFMovieにaddしたオブジェクトの位置を指定できる. 最後にswfファイルを出力する.
// 作成した動画をswfとして出力.
movie->save("sample03.swf");
以上で,画像を表示するswfファイルが作成できる.
定数IMAGE_FILEの値には,fdbファイルへの絶対パスを設定する.
Makefileは以下.
ビルドしたサンプルで作成したswf.

