画像をタイムラインに置いた場合のBitmapDataへのアクセス


FlashIDE上で画像を配置して、後でそのビットマップデータへアクセスしようと思ってもうまくいかない。

例えば、ステージに画像を直接貼り付けただけのflaファイルがあったとして、1フレーム目のスクリプトに

trace(this.getChildAt(0));

と書くと、

[object Shape]

となって、BitmapやBitmapDataにはアクセスできないみたい。

これをどうにかできないかと思っていろいろ情報を探してみたら、ライブラリでその画像データを『ASに書き出し』にすると、その他何も変更しなくても

[object Bitmap]

となって、画像へアクセスできるようになる様子。

つまりは画像をタイムラインに配置しているだけだと、その画像は内部的には自動でFlashIDE上で「分解」をしてShapeになった状態として認識されてるということかな?

アクセスはし辛い代わりに後でdispose()する必要もなくなるわけで、必要によりけりですが、どうしてもタイムラインに配置した画像を制御したいという時には役に立つかもしれません。

ただ、この間これをやろうとしたら、対象となるMCを作り直すときに毎回画像データとしてnewすることになるのか、ASに書き出したほうが動作が遅くなった気がします。

スクリプトで画像をnewして表示する場合も多々あると思いますが、意外とBitmapを作るよりもshapeにbeginBitmapFillした方が速かったりして。この辺は時間があるときに確認してみたいです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です