Evento de reenvío en FLEX
actionscript-3 events (2)
El problema que está experimentando se debe a que no anula el evento clone () en su evento personalizado.
Cuando los eventos se redistribuyen, se clonan y modifican. Si no anula clone () obtendrá la implementación base de clone (), que devuelve un evento. Como Event no se puede convertir a su tipo de evento personalizado, se genera un error de tiempo de ejecución.
De la documentación:
Al crear su propia clase de evento personalizada, debe anular el método heredado Event.clone () para que duplique las propiedades de su clase personalizada. Si no establece todas las propiedades que agrega en su subclase de eventos, esas propiedades no tendrán los valores correctos cuando los oyentes manejen el evento redispatched.
En una aplicación FLEX, estoy tratando de "volver a enviar" un evento personalizado. Es decir, el componente 1 despacha Evnet (evento), el componente 2 registra un controlador para el evento, siendo la única función del manejador, de nuevo, dispatch (evento). Finalmente, el componente 3 escucha el evento que sale del componente2. Lo que trato de hacer es similar al concepto de excepciones de "relanzamiento" (y por razones similares). La diferencia es que el reenvío no parece funcionar en AS3 (Flash 10). En IE, no pasa nada, y en FF3 hay una excepción que dice que el tipo de conversión falló al tratar de forzar el tipo de evento a mi evento CustomEvent al llamar al controlador en component3. El código de seguimiento en el depurador muestra que cuando se llama al componente3, el evento es, de hecho, uno genérico, con todas mis cosas personalizadas perdidas. ¿Se supone que es el caso?