当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > AS教程:加载与被加载swf内部变量相互调用

Flash动画制作
Flash绘制简单的楼梯动画场景
关于影片剪辑在主场景中位置修改的Flash技巧
Flash教程:单选题的制作
Flash绘画技巧实例:鼠绘好看的水仙花
Flash人物走动动画的制作技巧分析
Flash钢笔工具绘图技巧详细分析
Flash辅助线轻松辅助工具绘制女孩脸部
Flash新手鼠绘教程(2):熟悉鼠绘工具
Flash新手鼠绘教程(1):怎样学习鼠绘
Flash新手鼠绘(3):漂亮的卡通花草场景
FLASH CTRL+C SHORTCUT IN IE 快捷键在IE中失效
Flash 绘画技巧 投影滤镜设置阴影
Flash 视频广告的定位兼容性问题
SWFText轻松制作Flash贺卡
人物走动Flash动画的制作技巧分析
Flash钢笔工具绘图的技巧详细讲解
Flash新手鼠绘(9):好看的月季花
Flash新手鼠绘(10):美丽逼真的郁金香
Flash新手鼠绘(11):逼真的瓢虫
FLASH8.0鼠绘实例(1):时尚气质美女

Flash动画制作 中的 AS教程:加载与被加载swf内部变量相互调用


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-04   浏览: 104 ::
收藏到网摘: n/a

工作中遇到需要使加载与被加载swf(as2编写)内部变量互相调用的问题,使用loadMovie,以下是我实践的代码:

==========================================================================

以下是我在网络上找到资料:

as2中,无论你用loadMovie还是loadClip加载进来一个swf,只要知道他们的层级关系,都可以用this_parent等轻松相互控制。下面以main.swfsub.swf为例:

main.swf主时间轴第一帧代码:

var my_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object()
;
//加载完毕

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访问的函数
function subCallMain(){
    
trace("subCallMain !");
}

sub.swf主时间轴第一帧代码:

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访问的函数
function mainCallSub(){
    
trace("mainCallSub !");
}

在main.swf中:

var loader:MovieClip = this.createEmptyMovieClip("loader", 1); //创建一个空影片剪辑,深度为1

loader.loadMovie("login.swf"); //加载同文件夹下的login.swf

在login.swf中:

this._lockroot = true; //此句必不可少,表示对已加载影片中 _root 的引用都会指向已加载影片的 _root,而不是加载器的 _root

_root._parent.welcome.text="......."; //此句可以实现对main.swf中welcome实例的值进行设置

_root.unloadMovie(); //此句可以卸载login.swf