Bitmapdata.draw(MovieClip)给出空白的BitmapData

时间:2013-01-14 22:54:23

标签: actionscript-3 flash movieclip bitmapdata adobe-illustrator

我正在将我游戏中的所有矢量元素预先绘制到位图以提高性能 - 矢量元素从Illustrator导出为swf文件(我怀疑这是问题的一部分)。 将swf文件嵌入as3时,如下所示:

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

然后将其添加到舞台上,就像这样

stage.addChild(new image);

一切都很好,但如果相反我把它绘制成像这样的位图数据......

genericBitmapData.draw(new image);

这是一个空白的bitmapdata。我尝试在第0帧和第1帧使用gotoAndStop之前没有用。有没有人有使用Illustrator导出的swf文件的经验,以及如何按预期获得这​​些绘图的任何见解?

Here是一个非常简单的.swf链接,可以产生相同的结果

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

事实证明,在我可以使用它绘制之前需要对象进行实例化,并且最简单的方法是检测它何时是监听ENTER_FRAME事件:

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

当调用该函数时,它就可以绘制到一个bitmapdata,然后一切都适合这个世界。