我正在将我游戏中的所有矢量元素预先绘制到位图以提高性能 - 矢量元素从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链接,可以产生相同的结果
答案 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,然后一切都适合这个世界。