打印

[AS3] 如何复制一个外部load进来的SWF

看了eidiot的AS3应用程序模块化开发与ApplicationDomain
还是不明白(因为我是做.net的,学习AS3一周)
在我的程序中,我使用Loader来取得了一个外部的Swf
并将其addChild,呈现出来
在某种情况下,用户会点击这个Swf,我希望在用户点击时,能把这个load进来的swf复制一个,放到另外一个位置去。
现在我是这样做的:
复制内容到剪贴板
代码:
var mc:MovieClip=e.target  as  MovieClip;//e:MouseEvent
trace(this.contains(mc));//output:true
root.avatar.panel.avatar.addChild(mc);
trace(this.contains(mc));//output:false
我发现这个SWF被“剪切”到另外一个位置上去了,而不是“复制”过去的
我查了很多资料,说的是:
引用:
A displayObject can only have 1 parent. If another container adds it as the child, the object's parent changes. It doesn't create a new copy.
(from http://www.kirupa.com/forum/archive/index.php/t-259632.html)
说得是很有道理,但是,我该如何去复制呢?
(有人说,重新load一个新的进来,不过,不会有那么挫吧?)
补充一点
因为我会事先load一系列的Swf进来
用户点选哪个,就复制哪个SWF到指定位置,而这一系列的SWF究竟有多少,我也不知道
这是取决于xml的
所以如果需要在库中新建一个元件,写死linkage,我估计不行吧。
复制?

在我的程序中,我使用Loader来取得了一个外部的Swf
并将其addChild,呈现出来

你已经addChild了。。你再addChild一次不行?一定要复制?
用 URLLoader 指定 dataFormat 为 "variables"
然后用 Loader 的 loadBytes 载入 URLLoader.data 就行了

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
上面笔误
dataFormat 应该是"binary"

TOP

二进制载入
xhtml/css/Ajax/AS/php/mysql你才是程序员,你家全是程序员 -__-

TOP

感谢楼上各位
我的确用的二进行载入

并用自定义的事件传播出这个二进制数据
在其它位置抓住这个事件
取出二进制
就可以再用了。
感谢各位了。

TOP

恩 转为bytearray

TOP