ファイヤープロジェクト
画像の表示(Ming/C++)
2006-08-14T06:30+09:00   matsu
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.
matsu(C)
Since 2002
Mail to matsu