1.首先假设a.swf的场景中有一个实例名为mc_a的MovieClip,你需要把这个mc_a加载到b.swf的场景中,并作为b.swf的中的一个名为mc_b的MovieClip。
2.将a.swf放置在b.fla的同一目录下,并在b.fla的代码栏中添加如下代码。
var loader:Loader = new Loader();
var url:URLRequest = new URLRequest("a.swf");
var mc_b:MovieClip;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadCompleteHandle);
loader.load(url);
function onLoadCompleteHandle(e:Event):void{
var mc:MovieClip = e.target.content as MovieClip;
mc_b = mc.getChildByName("mc_a") as MovieClip;
if(mc_b != null){
this.addChild(mc_b);
}
}
3.调试看结果,会发现a.swf中的mc_a已经被添加到b.swf中了,实例名为mc_b。
4.注意,如果a.swf是由AS2.0环境下生成的,以上方法不适用。
-----------------------------------------------
如果不在场景的话,那么在b.swf中声明一个mc_b的公共变量,或者返回mc_b的公共方法,以便他的外部容器,也就是a.swf调用。
具体一点:
在b.swf中
var mc_b:MovieClip = new MC_B();//具体类名由你的绑定类名决定,MC_B只是我的假设
这样在a.swf中就可以通过如下的方式获取到b.swf中的MC_B类的实例了。
...//之前的代码同上
function onLoadCompleteHandle(e:Event):void{
var obj:Object= e.target.content as Object;
mc_b = MovieClip(obj.mc_b);
if(mc_b != null){
this.addChild(mc_b);
}
}
http://www.webjx.com/flash/actionscript-5889.html
classLoader类是专门为你这个问题量身设计的。
教程里 例子和类包都有。