En continuación con el tutorial (001 - 002 - 003 - 004)
3.2.1. Uso de eventListeners?
El concepto de eventListeners es bastante simple, a la simple declaración en el código que instancia debe escuchar evento en particular y "avisar" cuando esto suceda para que podamos ejecutar ciertas funciones.
Hay un detalle que tenemos que tener en cuenta, ciertos acontecimientos no son compatibles con ciertos casos, por ejemplo, un caso de pulsación nunca se dispararon en una imagen. Lo que quiero decir es que como he dicho antes, esto también depende de los acontecimientos de los órganos. Por ejemplo, queremos que el usuario haga clic con el ratón sobre un botón para ejecutar una función (funcao_a_executar), que debe ser llamado sin () (esto es de los pocos casos en que la función puede (debe) ser llamado sin ()).
MeuBotão1.addEventListener (MouseEvent.CLICK, funcao_a_executar); :MouseEvent): void { funcao_a_executar private function (event: MouseEvent): void (
Trace ( "haga clic en el botón") ) Hemos tomado nota de que 1 punto muy importante, como funcao_a_executar () es despedido de un MouseEvent, que deben recibir los parámetros y las características de este evento (información sobre el caso) sólo por lo que tiene que cambiar para recibir el "padre" de este evento En este caso, el "padre" es el MouseEvent. Un argumento muy útil en este caso es el objetivo o currentTarget indica que en el caso que disparó el evento al que pueden acceder incluso sin saber el nombre de dicha instancia.
Un simple ejemplo:
Tenemos 2 botones para aumentar o disminuir el tamaño de una imagen de 5 píxeles, que haríamos bien-:
botao_aumenta.addEventListener (MouseEvent.CLICK, los aumentos); botao_diminui.addEventListener (MouseEvent.CLICK, las disminuciones); { private function aumentos (evt: MouseEvent): void (
/ / Para saber el nombre de la instancia: Trace ( "ejemplo:" + evt.target); Imagem1.width + = 5; ) { disminuye la función privada (evt: MouseEvent): void (
/ / Para saber el nombre de la instancia: Trace ( "ejemplo:" + evt.target); Imagem1.width -= 5; ) El símbolo + = -= o sirve para añadir o reducir los valores de algunas variables / propiedad.
Podemos asignar varias eventListners el mismo tema:
meuBotão1.addEventListener (MouseEvent.CLICK, botao_click); meuBotão1.addEventListener (MouseEvent.MOUSE_OVER, botao_rato_em_cima); meuBotão1.addEventListener (MouseEvent.MOUSE_OUT, botao_rato_fora); y todas las funciones reciben el mismo tipo de evento:
{} botao_click private function (evt: MouseEvent): void ()
{} botao_rato_em_cima private function (evt: MouseEvent): void ()
{} botao_rato_fora private function (evt: MouseEvent): void ()
Por último, podemos evitar el uso de 3 funciones, y reutilizar el código utilizando los parámetros pasados por el evento, para saber qué tipo de evento se dispararon (si todos son "niños" del mismo evento (MouseEvent)):
meuBotão1.addEventListener (MouseEvent.CLICK, botao_evento); meuBotão1.addEventListener (MouseEvent.MOUSE_OVER, botao_evento); meuBotão1.addEventListener (MouseEvent.MOUSE_OUT, botao_evento); y la función:
{ botao_evento private function (evt: MouseEvent): void (
/ * Utilizando un interruptor para averiguar qué tipo de evento se disparó, el acceso a la Tipo de parámetro evt * / switch (evt.type) ( MouseEvent.CLICK caso: Trace ( "evento Click"); break; MouseEvent.MOUSE_OVER caso: Trace ( "Event MOUSE OVER"); break; MouseEvent.MOUSE_OUT caso: Trace ( "Event MOUSE_OUT"); break; ) ) Como puedes ver, podemos guardar unas pocas líneas de código y optimizar los resultados de la swf utilizando la función botao_evento para hacer frente a cualquier tipo de eventos de ratón (MouseEvent).
También podemos utilizar los eventos para llamar a métodos de otros objetos, siempre utilizando una función, utilizando la función en la parte superior:
MouseEvent.CLICK caso: meuBotao1.move (btn.x 5, btn.y +5); break; En este caso pedimos el método mover () del botón, es decir, el botón que debería pasar 5px a la derecha y abajo 5px. Esto se llevará a cabo cada vez que el usuario hace clic en el botón.
Por último, todavía podemos hacer oo botón para disparar otro caso, que ahora entra en propiedades nacionales en el botón y obligándolo a disparar un evento interno, utilizando la función en la parte superior, quiero que mover el ratón sobre el botón, que se dispara el evento haga clic en el botón:
MouseEvent.MOUSE_OVER caso: meuBotao1.dispatchEvent (nuevo MouseEvent (MouseEvent.CLICK)); break; ( MouseEvent.click )); Se mantivermos toda a nossa função em cima com o switch (retirando o MOUSE_OUT): con la línea hasta yo le digo a mi ejemplo / botón (meuBotao1) a fuego el evento Click, para que la fuerza debe disparar a un nuevo caso, exactamente igual a lo que se espera eventListener (meuBotão1.addEventListener (MouseEvent . PULSE)) también indica el tipo de evento (MouseEvent), o de otro tipo que disparó el evento, pero no pasa nada; meuBotao1.dispatchEvent (nuevo MouseEvent (MouseEvent.CLICK)); Si seguimos todos nuestros luz con el interruptor (eliminación de la MOUSE_OUT):
{ botao_evento private function (evt: MouseEvent): void (
switch (evt.type) ( MouseEvent.CLICK caso: meuBotao1.move (btn.x 5, btn.y +5); break; MouseEvent.MOUSE_OVER caso: meuBotao1.dispatchEvent (nuevo MouseEvent (MouseEvent.CLICK)); break; ) ) Si esto sucede usted pasa el ratón por encima o haga clic en el meuBotao1 ser interpretado como si se hace clic, como se desencadenó en el evento CLICK mismo en ambos casos, lo que causa meuBotao1 llamar al método. Mover ();
Esto puede comprender fácilmente con el siguiente procedimiento:
El usuario pasa el ratón sobre meuBotão1 -> Dispara el evento MOUSE_OVER -> El eventListner señala a la línea botao_evento () -> esta función detecta el evento como MOUSE_OVER -> Requerir el botón para disparar el evento CLICK -> la eventListner señala a la línea botao_evento () de nuevo -> esta función detecta el evento como CLICK -> Ejecutar método. mover el botón
Bueno, por ahora es todo ...
Abrazar.
http://creativecommons.org/licenses/by-nc-nd/3.0/deed.pt














4 Comentarios
Felicidades, gran tutorial!
Esto no es correcto: addEventListner.
Más sí: addEventListener.
Good Sam, es cierto ... ¿cuánto del código fue escrito sin la validación, que acabó cometiendo este error durante todo el tutorial ... se que se va a copiar de un lugar a otro ...
corregida!
Gracias y Saludos.
Mario, ¿cómo vincular un enlace o botón linkbar?
ya intentado por medio de ActionScript, y mxml, n, pero no dar.
¿me pueden ayudar?
gracias.