如果你在做flash开发,这个应该是经常碰到的事情:用a.swf加载b.swf,然后需要在b.swf中调用a.swf的方法或者变量。在as2里面实现这个很简单,root就是万能的。在a.swf中,用loadMovie的方法load b.swf到一个MovieClip后,b.swf就可以通过_root或者_parent来访问a.swf中的变量了。不过这招在AS3中已经不灵了,得换个方式。
在as3中,有这样一种方式可以实现:在a.swf中,使用Loader类来load b.swf,在load完成之后,调用b.swf中的一个方法,把a.swf的引用传入或者把相应变量传入给b.swf。一个简单的例子如下:
在a.swf的文档类或者时间轴上这么写:
// 这个是我们要访问的变量
var ab:String = '1234';
// 加载b.swf
var ldr : Loader=new Loader();
ConfigureListeners(ldr.contentLoaderInfo);
ldr.load(new URLRequest("b.swf"));
function ConfigureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, CompleteHandler);
}
function CompleteHandler(e : Event):void {
this.addChild(e.target["content"]);
// 调用b.swf中的方法
e.target["content"].getP(this);
}
在b.swf的文档类或者时间轴上这么写:
function getP(p:Object):void{
// 访问a.swf中的变量ab
trace(p.ab);
}
这样就OK了~
您可能对这些文章也感兴趣:- AS3位图任意形变一步一步来(1)——了解矩阵变换
- AS3控制FLV的音量方法(不用组件)
- AS3:DoubleClick事件的缺陷?
- load外部swf并共享变量
- 在AS3调用Firebug的console时被雷了
- Adobe的JSON转换类还不够完美
- AS3位图任意形变一步一步来(3)——切割位图
- AS3:onLastSecond or onPlayStatus?
- 在AS3中设置ComboBox的字体和宽高
- Flash CS 3的两个BUG?
与该文相关的评论:(我也想说几句)
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.9062674 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
Processed in 0.9062674 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
2008-11
我来说两句:
用户中心
日志分类

最新日志
统计信息





