[AS3]as3载入外部swf时传参数变量说明
如 果你在做flash开发,这个应该是经常碰到的事情:用a.swf加载b.swf,然后需要在b.swf中调用a.swf的方法或者变量。在as2里面实 现这个很简单,root就是万能的。
如 果你在做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';
- // CuPlayer.com提示:加载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"]);
- // CuPlayer.com提示:调用b.swf中的方法
- e.target["content"].getP(this);
- }
在b.swf的文档类或者时间轴上这么写:
参考代码:
- function getP(p:Object):void{
- // CuPlayer.com访问a.swf中的变量ab
- trace(p.ab);
- }
这样就OK了~
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...