宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3载入外部swf时传参数变量说明

2016-10-13 00:16:48 点击量:11 标签: 收藏本文

  如 果你在做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的文档类或者时间轴上这么写:

参考代码:

  1. // 这个是我们要访问的变量 
  2. var ab:String = '1234'
  3. // CuPlayer.com提示:加载b.swf 
  4. var ldr : Loader=new Loader(); 
  5. ConfigureListeners(ldr.contentLoaderInfo); 
  6. ldr.load(new URLRequest("b.swf")); 
  7. function ConfigureListeners(dispatcher:IEventDispatcher):void { 
  8. dispatcher.addEventListener(Event.COMPLETE, CompleteHandler); 
  9. function CompleteHandler(e : Event):void { 
  10. this.addChild(e.target["content"]); 
  11. // CuPlayer.com提示:调用b.swf中的方法 
  12. e.target["content"].getP(this); 

在b.swf的文档类或者时间轴上这么写:

参考代码:

  1. function getP(p:Object):void{ 
  2. // CuPlayer.com访问a.swf中的变量ab 
  3. trace(p.ab); 

这样就OK了~

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室