首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过BitmapData将AS2对象从AS2 swf传输到父AS3 swf

通过BitmapData将AS2对象从AS2 swf传输到父AS3 swf
EN

Stack Overflow用户
提问于 2011-01-05 15:32:41
回答 1查看 1.5K关注 0票数 0

我需要将在BitmapData swf中创建的AS2对象传输到AS3 swf。我正在使用gskinner的SWFBridge建立两个闪存电影之间的双向通信。

AS3电影加载完全独立工作的AS2 swf,让用户操纵MovieClips并最终从他创建的组合中生成图像。我需要AS3电影来接收这个图像(bitmapData),做一些AS2无法做的花哨的图像处理工作,并将新的图像发送回AS2电影。

这是密码

AS2 swf:

代码语言:javascript
复制
var userCompo_mc:MovieClip = container.createEmptyMovieClip("userCompo_mc",10);
var image:BitmapData = new BitmapData(userCompo_mc._width, userCompo_mc._height);
finalCompo.attachBitmap(image); // Just to make sure the final bitmap is right
image.draw(userCompo_mc, compo.title);

//Send the image to the AS3 movie
sb1.send("imageTransfer",image);

AS3 swf:

代码语言:javascript
复制
function imageTransfer(bitmapData:BitmapData, title:String):void
{
    var bmp:Bitmap = new Bitmap(bitmapData);
    this.addChild(bmp);
    trace(title); // --> returns the right title
    trace(bitmapData); // --> returns null
}

我认为使用像copyPixel32()这样的东西,将所有东西保存到一个数组中,然后将其传递给AS3就可以了,但这确实是一种性能上的限制。

此外,我不允许将AS2 swf转换为AS3代码。

有什么建议吗?

谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-06 01:59:08

as2电影似乎给图像添加了一些装饰品/电影。在此之后,您可以绘制它并发送尝试将其发送到as3。

由于循环虽然所有像素都是缓慢的,正如您提到的,我认为从as2电影中提取as3内容更快。

例如:

代码语言:javascript
复制
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaded);
loader.load(new URLRequest('yourAS2Movie.swf'),new LoaderContext(true));

function loaded(event:Event):void{
    var as2Clip:AVM1Movie = AVM1Movie(loader.content);
    var bd:BitmapData = new BitmapData(as2Clip.width,as2Clip.height,false,0);
    bd.draw(as2Clip);
    addChild(new Bitmap(bd));
}

在这个片段中,as2内容是在加载时绘制的。在您的例子中,您将触发/调用一个函数,该函数将在as2电影准备好/为您所需设置之后,通过SWFBridge绘制as2内容。

假设您想在as2电影中显示as3内容,这意味着您无论如何都要加载as2电影。如果不是,则加载as2内容,但不要将其添加到显示列表中,这意味着您将加载as2电影。否则,您可以尝试使用服务器端语言(例如php )从as2电影中保存最后的位图,然后通过SWFBridge在as3电影中触发一个函数,该函数将加载先前保存的图像。

HTH

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

https://stackoverflow.com/questions/4605856

复制
相关文章

相似问题

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