我正在将游戏中的所有矢量元素预先绘制到位图中以提高性能-矢量元素从Illustrator导出为swf文件(我怀疑这是问题的一部分)。在as3中嵌入swf文件时如下所示:
[Embed(source = 'file.swf')] private static const image:Class; 然后把它添加到舞台上,就像这样
stage.addChild(new image);一切都很好,但是如果我像这样把它绘制成一个位图数据...
genericBitmapData.draw(new image);它是一个空白的位图数据。在绘图之前,我已经尝试在第0帧和第1帧上使用gotoAndStop,但都没有效果。有没有人有使用Illustrator导出的swf文件的经验,并对如何按预期获得这些图形有任何见解?
Here是到一个非常简单的.swf的链接,它会产生相同的结果
发布于 2013-01-15 07:13:08
以下是我修改后的解决方案:
//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-15 09:45:55
因此,在我可以使用对象进行绘制之前,需要实例化该对象,检测时间的最简单方法是侦听ENTER_FRAME事件:
(new image).addEventListener(Event.ENTER_FRAME, functionToDrawImage);当这个函数被调用时,它将准备好绘制到位图数据,然后一切都正常了。
https://stackoverflow.com/questions/14328301
复制相似问题