2010-12-15 22 views
0

が動作していない:は、dispatchEventは、私は奇妙な問題を抱えている

私は、次の変数を割り当て:

public function imgCompleteHandler(e:Event):void { 
      var slidesXML:XML = new XML(e.target.data); 
      for each (var serie:XML in slidesXML.slide){ 
       this.thumbs = serie.image; 
       series.push(serie); 
      } 
         trace("before");  
      dispatchEvent(new Event(SERIES)); 
         trace("after"); 
     } 

この:

public static const SERIES:String = "series"; 

はその後、同じクラスに私は、次の機能を持っていますイベントが呼び出されるクラスです:

package be.devine3.groep6.view.components.overview 
{ 
    import be.devine3.groep6.model.AppModel; 
    import be.devine3.groep6.view.components.series.Series; 
    import flash.display.Loader; 
    import flash.display.Sprite; 
    import flash.events.Event; 

    public class SerieOverview extends Sprite 
    { 
     private var loader:Loader; 
     private var appModel:AppModel; 
     public function SerieOverview() 
     { 
      this.appModel = AppModel.getInstance(); 

      appModel.addEventListener(AppModel.SERIES, seriesLoadedHandler); 
     } 
     public function seriesLoadedHandler(e:Event):void{ 
      for each (var slideModel:XML in appModel.series) { 
       var serie:Series = new Series(slideModel); 
       addChild(serie); 
      } 
      } 


    } 
} 

何らかの理由でイベントがディスパッチされず、ディスパッチイベントの前後に配置されたトレースが両方ともトリガーされます。ディスパッチイベントがうまくいかない理由を知っている人は誰ですか?

答えて

0

あなたが掲示したtjeコードの問題を見つけるのは難しいです。簡単なチェック:イベントがディスパッチされる前に、イベントリスナーを追加していることを確認してください。リスナーを追加するメソッドにトレースを追加して、ディスパッチ前にリスナーが設定されていることを確認します。

0

AppModel getInstance()メソッドもAppModelクラスを初期化していますか?その場合、イベントリスナーを追加する前にイベントがディスパッチされている可能性があります。

は、私はいつもこのフローを使用します。

1)クラスのインスタンス

2を作成します)を取り付け、初期化イベントリスナー

3)(公共のinit()メソッドを呼び出しますがすなわちAppModel.instance() .init();)

関連する問題