首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bitmapdata.draw(MovieClip)提供空白BitmapData

Bitmapdata.draw(MovieClip)提供空白BitmapData
EN

Stack Overflow用户
提问于 2013-01-15 06:54:23
回答 2查看 473关注 0票数 0

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

代码语言:javascript
运行
复制
[Embed(source = 'file.swf')] private static const image:Class; 

然后把它添加到舞台上,就像这样

代码语言:javascript
运行
复制
stage.addChild(new image);

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

代码语言:javascript
运行
复制
genericBitmapData.draw(new image);

它是一个空白的位图数据。在绘图之前,我已经尝试在第0帧和第1帧上使用gotoAndStop,但都没有效果。有没有人有使用Illustrator导出的swf文件的经验,并对如何按预期获得这些图形有任何见解?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-15 07:13:08

以下是我修改后的解决方案:

代码语言:javascript
运行
复制
//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);
}
票数 0
EN

Stack Overflow用户

发布于 2013-01-15 09:45:55

因此,在我可以使用对象进行绘制之前,需要实例化该对象,检测时间的最简单方法是侦听ENTER_FRAME事件:

代码语言:javascript
运行
复制
(new image).addEventListener(Event.ENTER_FRAME, functionToDrawImage);

当这个函数被调用时,它将准备好绘制到位图数据,然后一切都正常了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14328301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档