Actionscript 3 如何通过事件将数据从swf1传递到swf2,后者加载前者

Actionscript 3 如何通过事件将数据从swf1传递到swf2,后者加载前者,actionscript-3,events,flash,movieclip,Actionscript 3,Events,Flash,Movieclip,我有一个swf(Swf1)来发送CustomEvent Swf1: dispatchEvent(新的CustomEvent(“eventName”,obj))//自定义事件是用Swf1编写的,允许在分派时附加数据。//请告诉我们是否有其他方法可以使用内置的AS3API实现这一点 现在Swf2:(加载Swf1) 添加的侦听器 onswf1loadComplete函数(e:事件){ _movie=MovieClip(如target.content); _addEventListener(“event

我有一个swf(Swf1)来发送CustomEvent

Swf1: dispatchEvent(新的CustomEvent(“eventName”,obj))//自定义事件是用Swf1编写的,允许在分派时附加数据。//请告诉我们是否有其他方法可以使用内置的AS3API实现这一点

现在Swf2:(加载Swf1) 添加的侦听器 onswf1loadComplete函数(e:事件){ _movie=MovieClip(如target.content); _addEventListener(“eventName”,callrequiredFunction); //如何在这里获得obj? }


(除了我还需要在Swf2中定义CustomEvent)

您可以将SWF的加载外部化到另一个类,该类将处理两个SWF之间的通信

 private var swf1:MovieClip; 
 private var swf2:MovieClip; 

 private function loadSWF(url:String):void
 {
     //loading swf code
 }

 private function init():void
 {
    loadSWF( swf2URL );
  }

 private function completeHandler (event:Event ):void
 {
     switch( event.currentTarget.name)
     {
         case 'swf1':
           swf1 = new Whatever();
           //swf1.addEventistener( CustomEvent.SWF1 , swfEventListener );
           swf1.addEventistener( Event.COMPLETE , completeEventListener );               
           swf1.init();
           break;

        case 'swf2':
           loadSWF( swf1URL );
           break;
     }           
 }

 private function completeEventListener( event: Event):void
 {
      //where result is a getter on the Whatever class
      var object:Object = swf1.result;
 }

 private function swfEventListener( event: CustomEvent):void
 {
      if( event.type == CustomEvent.SWF1 )
          var object:Object = event.object;
 }

是的,为此我也需要在这里定义CustomEvent?不一定,检查编辑的代码。。。这实际上取决于您的代码结构,尽管您对CustomEvent的依赖性较小