事情中碰到必要使加载与被加载swf(as2编写)外部变量相互挪用的成绩,利用loadMovie,以下是我理论的代码:
==========================================================================
在as2中,不管你用loadMovie仍是loadClip加载出去一个swf,只需晓得他们的层级干系,都能够用this、_parent等轻松互相把持。上面以main.swf和sub.swf为例:
varmy_mcl:MovieClipLoader=newMovieClipLoader();
varmclListener:Object=newObject();
//加载终了
mclListener.onLoadInit=function(target_mc:MovieClip):Void{
main_btn.onRelease=function(){
sub_mc.mainCallSub();//点击main.swf主场景名为main_btn的按钮,挪用sub.swf主场景名为mainCallSub的函数
}
}
my_mcl.addListener(mclListener);
sub_mc._lockroot=true;//锁定被加载swf的主工夫轴,让_root一致指向main.swf的主工夫轴
my_mcl.loadClip("sub.swf",sub_mc);//把sub.swf加载到main.swf主场景名为sub_mc的剪辑中。
//被sub.swf会见的函数
functionsubCallMain(){
trace("subCallMain!");
}
sub_btn.onRelease=function(){
this._parent._parent.subCallMain();//点击sub.swf主场景名为sub_btn的按钮,挪用main.swf主场景名为subCallMain
的函数
//固然,也能够间接一点,用_root.subCallMain();但条件是main.swf上加上sub_mc._lockroot=true;否则会见的是本人的工夫轴
}
//被sub.swf会见的函数
functionmainCallSub(){
trace("mainCallSub!");
}