Finalmente con ActionScript 3.0 ya no tienen dos de gestión distinta de los hechos como lo hacían antes de ActionScript 2.0 (ver: La gestión de eventos: semejanzas entre Flash y Javascript ). El método addEventListener() , omnipresente en la nueva arquitectura permite la gestión de nuevos y excepcionalmente limpio todos los eventos posibles, incluso las personales. La nueva organización en el paquete le permite importar los eventos que servimos y tratar a todos por igual:
1 2 3 4 | / / Eventos . KeyboardEvent ; flash.events de importación. KeyboardEvent ; . MouseEvent ; flash.events de importación. MouseEvent ; . Event ; flash.events de importación. Evento ; |
Las diferencias entre la gestión de los eventos son tan scomprase. . Un clip de película ya no tiene las propiedades pseudo-evento como onRelease o onEnterFrame . La refinanciación de la clásica, por ejemplo, se convierte en:
1 2 3 4 5 | ( MouseEvent . ROLL_OVER , listener ) ; . mio_mc addEventListener ( MouseEvent ROLL_OVER, escucha.) ... e : MouseEvent ) : void { función de detector (e: MouseEvent ): void { ... } |
La solución propuesta en flash: cómo inicializar componentes en el constructor de una clase , por ejemplo, los resultados en ActionScript 3.0 es el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 | . Event ; flash.events de importación. Evento ; MiaClasse extends MovieClip { public class MyClass se extiende MovieClip { MyClass function () { Event . ADDED_TO_STAGE , _init ) ; addEventListener ( Evento . ADDED_TO_STAGE, _init); } / / _init ( e : Event ) : void { _init función privada (e: Evento ): void { ... } } |
La gestión del teclado en un TextFiled es la siguiente:
1 2 3 4 5 6 7 8 9 | . KeyboardEvent ; flash.events de importación. KeyboardEvent ; ... ( KeyboardEvent . KEY_DOWN , _onKeyDown ) ; . text_txt addEventListener ( KeyboardEvent KEY_DOWN, _onKeyDown.); e : KeyboardEvent ) : void { _onKeyDown función (e: KeyboardEvent ): void { e . keyCode == 13 ) { if (keyCode == e. 13) { ... } } |
Esta gestión de eventos nuevos, sin experiencia en ActionScript, pero se sabe que los que trabajan en JavaScript, por ejemplo (en ECMAScript 4), se refleja también en su gestión y producción de eventos. , e vogliamo fare in modo che quando viene premuto in tasto {INVIO} durante la digitazione viene rilasciato un nostro personale evento. Imagínese que usted cree una clase TextFieldExt , una extensión del clásico de TextField , y queremos asegurarnos de que cuando se pulsa el botón en el {INVIO} se libera mientras se escribe uno de nuestros eventos de personal. a bordo che chiamiamo text_txt . En primer lugar construimos nuestro MovieClip con un TextField a bordo que llamamos text_txt . Como se vio anteriormente Associació un oyente a este control y generamos nuestro caso personal de una manera sencilla:
1 2 3 4 5 6 7 8 9 10 | . KeyboardEvent ; flash.events de importación. KeyboardEvent ; ... ( KeyboardEvent . KEY_DOWN , _onKeyDown ) ; . text_txt addEventListener ( KeyboardEvent KEY_DOWN, _onKeyDown.); e : KeyboardEvent ) : void { _onKeyDown función (e: KeyboardEvent ): void { e . keyCode == 13 ) { if (keyCode == e. 13) { Event = new Event ( "RETURN" ) ; var I: Evento = new evento ("retorno"); dispatchEvent ( me ) ; este dispatchEvent (yo).; } } |
Cuando llegamos a usar nuestro ejemplo de TextFieldExt podríamos escribir:
1 2 3 4 5 |
. Donde myTextFieldExt es una instancia de nuestra clase TextFieldExt . Por último, no menos importante, como se indica en el interior de la Guía de Flash CS3, por supuesto, puedes crear eventos personalizados como las clases, es decir, clases que amplían la clase Event , y luego una más completa y detallada. Como la clase Alarm propuesto en esta guía ... pero vamos a verlo de nuevo
.










[...] "Uniforme", como sucedió con los eventos (ver el manejo de eventos de nuevo en Flash CS3 y Flash CS3: La gestión de eventos de nuevo), una de las nuevas características de ActionScript 3.0 es la desaparición de todos los ad hoc métodos [...]