0

パフォーマンスを向上させるために、ゲーム内のすべてのベクター要素をビットマップに事前に描画しています-ベクター要素はIllustratorからswfファイルとしてエクスポートされます(これは問題の一部であると思われます)。次のようにas3にswfファイルを埋め込む場合:

[Embed(source = 'file.swf')] private static const image:Class; 

そしてそれをステージに追加します

stage.addChild(new image);

すべて問題ありませんが、代わりにそのようにビットマップデータに描画すると...

genericBitmapData.draw(new image);

空白のビットマップデータです。gotoAndStop無駄に描く前に、フレーム0と1で使用してみました。Illustratorがエクスポートするswfファイルの経験と、これらの図面を期待どおりに取得する方法についての洞察を持っている人はいますか?

これは、同じ結果を生成する非常に単純な.swfへのリンクです。

4

2 に答える 2

0

これが私の改訂された解決策です:

//create movieclip
var mc:MovieClip = new image();
addEventListener(Event.ENTER_FRAME, enterFrameHandler);

//this gets called on next frame
function enterFrameHandler(event:Event):void
{
    removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
    genericBitmapData.draw(mc);
}
于 2013-01-14T23:13:08.140 に答える
0

したがって、オブジェクトを使用して描画する前に、オブジェクトをインスタンス化する必要があることがわかりました。それを検出する最も簡単な方法は、ENTER_FRAMEイベントをリッスンすることです。

(new image).addEventListener(Event.ENTER_FRAME, functionToDrawImage);

そして、その関数が呼び出されると、ビットマップデータに描画する準備が整います。そうすれば、すべてが世界で正しくなります。

于 2013-01-15T01:45:55.280 に答える