2011-06-24 6 views
7

Quiero usar las etiquetas de metadatos de eventos para mostrar qué tipos de eventos mi control enviará. La sintaxis es la siguiente:Metadatos de eventos: ¿Se usa una variable estática para el atributo "nombre"?

<fx:Metadata> 
    [Event(name="eventName", type="MyEvent")] 
</fx:Metadata> 

Parece como una mejor práctica en Flex/ActionScript para definir las variables estáticas que definen nombres de eventos, así:

public class MyEvent extends Event 
{ 
    public static const EVENT_NAME:String = "eventName"; 
    // Other stuff.. 
} 

Es una gran práctica ya que el nombre del evento puede cambiar fácilmente y no tiene que ser modificado en todo el código. Entonces mi pregunta es: ¿hay alguna forma de utilizar esta constante estática en mi etiqueta de evento de metadatos? Me parece que no puede hacer algo como esto:

<fx:Metadata> 
    [Event(name="{MyEvent.EVENT_NAME}", type="MyEvent")] 
</fx:Metadata> 

¿Solo estoy ignorante de la sintaxis correcta de hacer esto, o es imposible? Parece que solo es difícil encontrar errores si alguien decide cambiar la const ya que no está fuertemente tipada aquí. ¡Gracias por adelantado!

Respuesta

6

La mala noticia es que es imposible :(sueño con esta posibilidad, pero ...

+0

Sí, es una gran molestia hasta el punto en que rara vez lo uso. Prefiero hacer 'myComp.addEventListener' que usar MXML, jaja. –

1

sí, esto es imposible de hacer, pero no hay nada que nos impida hacer su propia comprobación en tiempo de ejecución. Metadatos está disponible llamando describeType() en la clase (en este caso). Analice el xml y compruebe los valores contra sus constelaciones. Si hay un problema, arroje un error o genere una traza. No es perfecto, pero le dará un poco de seguridad

Cuestiones relacionadas