ActionScript 3 / Flex 3 - クラスへのカスタム イベントの追加
次のイベントがあるとします。
import flash.events.Event;
public class SomeEvent extends Event
{
public static const EVENT_ACTION:String = "eventAction";
public function SomeEvent(type:String) {
super(type);
}
override public function clone():Event {
return new SomeEvent(this.type);
}
}
...そして次のクラス:
public class SomeClass extends EventDispatcher
{
public function someFunction():void
{
dispatchEvent(new SomeEvent("eventAction"));
}
}
「SomeClass」が「SomeEvent」をスローすることを示す最良の方法は何ですか? 私が見つけた唯一の方法は、次のように [Event] 属性で「SomeClass」を装飾することです。
[Event (name="eventAction", type="SomeEvent")]
これにより、次のようにしてクラスをインスタンス化し、イベント リスナーを追加できます。
var someClassInstance:SomeClass = new SomeClass();
someClassInstance.addEventListener(SomeEvent.EVENT_ACTION, mycallbackmethod);
これを行うより良い方法はありますか?クラスに [Event] 属性を配置し、その後にいくつかの文字列リテラルを配置するのは、単に間違っていると感じます。助けてくれてありがとう!