代码改变世界

a.swf与加载的swf的通讯方法

2009-07-28 12:38  宝宝合凤凰  阅读(364)  评论(0)    收藏  举报

a.swf与加载的swf的通讯方法 - [AS3.0]

2008-04-23

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://asfox.blogbus.com/logs/19614543.html

//===== =====================================
a.swf加载b.swf, 在b.swf中使用a.swf的方法和属性。
在a.swf的文档类中:
... ...
var $ldr : Loader=new Loader();
     $ldr.contentLoaderInfo.addEventListener(Event.INIT, __loadedShell); 
     $ldr.load(new URLRequest("b.swf")); 

private function __loadedSWF(e : Event) : void {
    this.addChild(e.target["content"]);
    e.target["content"].getParent(this);//通过b.swf的文档类里的getParent方法将this引用传递到b.swf。
  }
... ...
在b.swf文档类中:

private var __parent:Object;
... ...
public function getParent(_parent:Object) : void {
   __parent=_parent;//通过__parent 就可以使用a.swf的文档类里的方法和属性了。
}
//===== =====================================
a.swf加载b.swf, 在a.swf中使用b.swf的方法和属性。
在a.swf的文档类中:

private var b_swf:MovieClip;
... ...
var $ldr : Loader=new Loader();
     $ldr.contentLoaderInfo.addEventListener(Event.INIT, __loadedShell); 
     $ldr.load(new URLRequest("b.swf")); 

private function __loadedSWF(e : Event) : void {
    this.addChild(e.target["content"]);
    b_swf=e.target["content"];//通过b_swf来访问b.swf文档类里的方法和属性;
  }