0


0

Flex 4-UIComponent拡張カスタムクラスからMain.mxmlのイベントをリッスンする際の問題

私は奇妙な問題に遭遇しました。UIComponentを拡張し、すべてのゲームロジックを基本的に接着するメインゲームクラス-メインループです。次に、メインゲームクラスを初期化し、ゲーム画面の状態を維持するapp.main.mxmlファイルを作成しました(メインメニュー、ゲーム、ゲームオーバーなど)およびUIコントロールを追加します-Flexはそのために最適です。それでも、GameクラスでディスパッチされるMain.mxmlのカスタムイベントをリッスンしようとすると問題が発生します。

**GameStateEvent.as**

public class GameStateEvent extends Event
{
    public static const GAME_OVER:String = "gameOver";
    public static const NEW_LEVEL:String = "newLevel";

    public function GameStateEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
    {
        super(type, bubbles, cancelable);
    }

    override public function clone():Event
    {
        return new GameStateEvent(type, bubbles, cancelable);
    }
}
  • Game.as *

[Event(name="gameOver", type="custom.events.GameStateEvent")]
public class Game extends UIComponent

private function checkforEndGame():void
{
  if(_gameOver == true)
  {
    dispatchEvent(new GameStateEvent(GameStateEvent.GAME_OVER)); //true
  }
}
  • Main.mxml *

     protected function game_gameOverHandler(event:GameStateEvent):void
     {
    //This event never got dispatched
 }

私はこれで本当にスタックしています-物事は簡単に思えますが、理由がわからないので、何も動作していないようです。

1 Answer


0


実際、私はテスト目的のためにdispatchEvent appendコンストラクタを初期化するため、dispatchEventについては少し嘘をつきました。コンストラクターの初期化プロセスが行われている間に、コンポーネントからアプリのMain.mxmlで行われます