11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 1977|回复: 3
上一主题 下一主题

[MovieClip 影片剪辑] Flash加载swf后互相调用函数、变量

[复制链接] TA的其它主题
发表于 2019-3-28 12:47:51 | 显示全部楼层 |阅读模式

【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
转载:新浪博客
网址:http://blog.sina.com.cn/s/blog_69d4b0ec0100xtwv.html
作者:未知


加载其它swf文件的swf为父swf,被加载的swf为子swf。

情况1:父swf调用子swf中的函数、变量。
使用Loader.contentLoaderInfo的监听器。具体方法:

1、转为EventDispatcher并添加监听器,监听完成事件。
EventDispatcher(Loader.contentLoaderInfo).addEventListener(Event.Complete,loaded);

2、设计完成事件处理方法loaded
function loaded(e:Event):void{
//假定子swf中有函数sayHi(),那么可以这样调用:
e.target.content.sayHi();
}
由于是在父swf中执行方法,也可以设计接受父对象的方法,把父对象的引用传给子swf。这样子swf也就能够执行父swf中的函数,获取其变量了。

情况2:子swf调用父swf中的函数和变量
被加载的子对象一般被保存在Loader对象中。而Loader对象又通常被加到父swf中。这样我们就可以通过this.parent一层一层取得父对象了。前提是Loader对象要被addChild到父对象中。例如:

假如父swf中有变量var name:String = "ljf",并且通过Loader对象myLoader加载子swf,并执行了addChild(myLoader),则,我们可以在子swf中这样获取到name值:
Object(this.parent.parent).name

这样做要特别小心。因为我们无法控制父对象加载子对象的方式。也许,有的人会用一个MovieClip来加载Loader对象,或者,加载对象之后,没有把对象addChild加入到父swf的容器结构中。那么用this.parent.parent获取到的,可能就是null值了。
发表于 2019-3-28 17:28:27 | 显示全部楼层
学习了
回复

使用道具 举报

发表于 2019-3-28 22:01:54 | 显示全部楼层
收藏起来!!!!
回复

使用道具 举报

发表于 2020-7-10 11:08:21 | 显示全部楼层
收藏了!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表