8


2

フレックス4:状態変更イベント

状態の変化を検出するために使用できるFlex 4のイベントはありますか?

3 Answer


16


私はこの質問が古いことを知っていますが、状態変更イベントをグーグルで調べることで、まだ知りたい人のためにここに来ています:

コンポーネントによってディスパッチされる `StateChangeEvent.CURRENT_STATE_CHANGE`イベントがありますので、アプリケーションはそれをリッスンすることもできます。

リスナー関数では、 StateChangeEvent.oldState`および StateChangeEvent.newState`プロパティにアクセスできます。


9


あなたが答えがイエスであるビューステートについて話しているなら、あなたはこのようなenterStateイベントをリッスンすることができます(例の簡単さのために、それは私が取り組んでいるプロジェクトの一部であり、コードの関連部分を削除しました) :

        import mx.controls.Alert;

        private function onEnterLoadingState():void{
            Alert.show("Enter the loading state.", "Application");
        }

        private function onEnterLoginState():void{
            Alert.show("Enter the login state.", "Application");
        }

        private function onEnterAddState():void{
            Alert.show("Enter the addUser state.", "Application");
        }

        private function changeState(state:String):void{
            currentState = state;
        }

また、必要に応じてexitStateイベントがあります。 これがお役に立てば幸いです。


0


UIComponentクラスでリッスンできる状態イベントは複数あります。

  • FlexEvent.STATE_CHANGE_COMPLETE

  • FlexEvent.STATE_CHANGE_INTERRUPTED

  • StateChangeEvent.CURRENT_STATE_CHANGING

  • StateChangeEvent.CURRENT_STATE_CHANGE

  • FlexEvent.ENTER_STATE

  • FlexEvent.EXIT_STATE

MXML:

            import mx.events.FlexEvent;


            protected function windowedapplication1_stateChangeCompleteHandler(event:FlexEvent):void
            {

            }

            protected function windowedapplication1_stateChangeInterruptedHandler(event:FlexEvent):void
            {

            }

            protected function windowedapplication1_currentStateChangeHandler(event:StateChangeEvent):void
            {
                var oldState:String = event.oldState;
                var newState:String = event.newState;
            }

            protected function windowedapplication1_currentStateChangingHandler(event:StateChangeEvent):void
            {
                var oldState:String = event.oldState;
                var newState:String = event.newState;
            }

            protected function windowedapplication1_enterStateHandler(event:FlexEvent):void
            {

            }

            protected function windowedapplication1_exitStateHandler(event:FlexEvent):void
            {

            }