flex actionscript-3 events actionscript flex3

¿Cuál es la mejor manera de asociar un evento con una clase en ActionScript/Flex 3?



actionscript-3 events (2)

ActionScript 3 / Flex 3 - Agregar eventos personalizados a una clase

Digamos que tengo el siguiente evento:

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); } }

... y la siguiente clase:

public class SomeClass extends EventDispatcher { public function someFunction():void { dispatchEvent(new SomeEvent("eventAction")); } }

¿Cuál es la mejor manera de mostrar que ''SomeClass'' arroja ''SomeEvent''? La única forma que he encontrado es decorar ''SomeClass'' con el atributo [Event], de la siguiente manera:

[Event (name="eventAction", type="SomeEvent")]

Esto me permite crear una instancia de la clase y agregar un detector de eventos al hacer esto:

var someClassInstance:SomeClass = new SomeClass(); someClassInstance.addEventListener(SomeEvent.EVENT_ACTION, mycallbackmethod);

¿Hay una mejor manera de hacer esto? Poner el atributo [Event] en la clase seguido de algunos literales de cadena simplemente se siente ... mal. Gracias de antemano por la ayuda!


Lo sé, me siento de la misma manera; usar los literales de cadena parece un poco mal de alguna manera. Pero a mi leal saber y entender, a partir de toda la documentación que he visto y las charlas a las que he asistido y al leer el código fuente de Flex, etc., parece que esa es la manera correcta de hacerlo.