2010-08-07 7 views
0

J'essaie d'envoyer un YouTubeEvent personnalisé à partir de mon Player.as et je souhaite que mon Main.as écoute et crée le lecteur vidéo ... Apparemment, mon eventHandler ne peut pas attraper l'événement pour créer le magnétoscope. ...... Mon mode de débogage flex est tellement bousiller que je ne peux même pas l'utiliser ... Mon code est comme suit .. J'apprécie vraiment toute réponse ou aide .....Flex Event Dispatcher Questions

Mon événement personnalisé ..

package com.youtube.events { 
    import flash.events.Event; 

    public class YouTubeEvent extends Event{ 

     public static const PLAYER_READY:String="PLAYER_READY"; 

     public function YouTubeEvent(type:String){ 
      super(type); 
     } 
    } 

} 

Mon Main.as

public class SearchYoutube extends Sprite 
{ 
     private var videoPlayer:Player; 

    public function SearchYoutube() 
    { 

    /*********************Load Video Player****************************/ 
     loadPlayer(); 
    } 


    private function loadPlayer():void{ 
    videoPlayer= new Player(); 
    videoPlayer.addEventListener(YouTubeEvent.PLAYER_READY, playerReady); 

      //playReady would never be excuted.... 
    } 

      private function playerReady(event:YouTubeEvent):void{ 
    videoPlayer.createPlayer(); //This handler would never be executed... 
    addChild(videoPlayer);  //This handler would never be executed... 
    } 

}

Player.as

//only show part of codes here 
public function Player(){ 

} 
public function createPlayer():void{ 

    _loader = new Loader(); 
    _loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit); 


    } 

    private function onLoaderInit(event:Event):void { 

    _loader.content.addEventListener("onReady", onPlayerReady); 

      } 


    private function onPlayerReady(event:Event):void { 

    dispatchEvent(new YouTubeEvent(YouTubeEvent.PLAYER_READY)); 

    } 

Répondre

2

YouTubeEvent.PLAYER_READY est expédiée quelque temps après l'appel createPlayer(). Vous devez appeler createPlayer() après videoPlayer.addEventListener(YouTubeEvent.PLAYER_READY, playerReady):

private function loadPlayer():void 
{ 
    videoPlayer= new Player(); 
    videoPlayer.addEventListener(YouTubeEvent.PLAYER_READY, playerReady); 
    videoPlayer.createPlayer(); 
} 
+0

Cool.thanks pour la réponse ...... – FlyingCat

1

This tutoriel vous obtiendrez sur le bon chemin sur l'utilisation des événements personnalisés avec Flex.

+0

Merci pour le lien ...... – FlyingCat