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 回答