2010-11-30 41 views
0

J'ai un swf (Swf1) qui envoie un CustomEventComment transmettre des données par événement de swf1 à swf2 où l'ancien est chargé plus tard

Swf1: dispatchEvent (nouveau CustomEvent ("eventName", obj))// L'événement personnalisé est écrit dans Swf1 qui permet de joindre des données lors de l'envoi. // Dire s'il y a une autre façon de le faire en utilisant des API AS3 intégrées.

Maintenant Swf2: (charges Swf1) auditeur ajouté fonction onswf1loadComplete (e: Event) { _movie = MovieClip (e.target.content); _movie.addEventListener ("eventName", callrequiredFunction); // comment obtenir l'obj ici? }

(sauf que je dois définir dans CustomEvent Swf2 aussi)

Répondre

0

Vous pouvez externaliser le chargement des fonds souverains à une autre classe qui traiterait la communication entre les deux ... swfs

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; 
} 
+0

Oui, pour cela, je dois définir ici aussi CustomEvent? – jash

+0

pas nécessairement, vérifiez le code édité ... cela dépend vraiment de la structure de votre code bien que vous ayez moins de dépendance avec le CustomEvent – PatrickS