0


0

AS:親コンポーネントでカスタムイベントを処理する方法

簡単なイベントクラスを定義しました。

パブリッククラスNewMoveEventはEvent \ {を拡張します

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

}

}

次に、カスタムmxmlコンポーネントで、それをトリガーするボタンを定義しました。

    [Event(name="newformevent", type="events.NewMoveEvent")]



        import events.NewMoveEvent;
        import config.Config;


        private function addNewUIComponent(event:Event):void
        {
            var e:NewMoveEvent = new NewMoveEvent("newformevent");
            dispatchEvent(e);
        }

いいえ、メインアプリケーションファイルから、このイベントにイベントハンドラーを設定します。 私はmxmlから簡単にそれを行うことができます

e.g.

しかし、アクションスクリプトでそれを行うことはできません(例: このコードは機能しません):

        private function addNewUIContainer(event:Event):void
        {
            var newBoard:UIContainer = new UIContainer();
                newBoard.addEventListener(NewMoveEvent.NEWFORMEVENT, addNewUIContainer);
        }

コンパイラからエラーが発生します。 理由を理解しないでください。

エラー

静的型Classの参照を介した、おそらく未定義のプロパティNEWFORMEVENTへのアクセス。

はい、UIContainerはmxmlクラスです

'' '' '

関数addNewUiContainerはメインファイル(project.mxml)で定義されています

1 Answer


2


`public static const NEWFORMEVENT:String =" newformevent ";`を定義したようには見えません。

public class NewMoveEvent extends Event
{
    public static const NEWFORMEVENT:String = "newformevent";

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

}

それでしたか?