Modelo de eventos frente a funciones callback

Considere el uso de funciones callbacks sencillas, en lugar del modelo de eventos.

El modelo de eventos de ActionScript 3.0 se basa en el concepto de distribución de objetos. El modelo de eventos está orientado a objetos y se optimiza para la reutilización de código. El método dispatchEvent() recorre la lista de detectores y llama al método de controlador de eventos en cada objeto registrado. Sin embargo, uno de los inconvenientes del modelo de eventos radica en que es probable que se creen varios objetos durante el uso de la aplicación.

Supongamos que desea distribuir un evento desde la línea de tiempo, indicando el final de una secuencia de animación. Para llevar a cabo la notificación, se puede distribuir un evento de un fotograma específico de la línea de tiempo, tal y como se muestra en el siguiente código:

dispatchEvent( new Event ( Event.COMPLETE ) );

La clase Document puede detectar este evento con la siguiente línea de código:

addEventListener( Event.COMPLETE, onAnimationComplete );

Aunque este enfoque es correcto, el uso del modelo de eventos nativo puede ser más lento y consumir más memoria que la utilización de una función callback tradicional. Los objetos de evento se deben crear y asignar en memoria, lo que crea una ralentización del rendimiento. Por ejemplo, cuando se está detectando el evento Event.ENTER_FRAME, se crea un nuevo objeto de evento en cada fotograma para el controlador de eventos. El rendimiento puede ser especialmente lento para los objetos de visualización, debido a las fases de propagación y captura, que pueden resultar costosas si la lista de visualización es compleja.