Tutorial Actionscript 3 – create link button, listeners, addEventListener, events handlers
Este post es para los que estan empezando con actionscript 3 y aun no entienden muy bien el uso de los listeners. Explicandolo muy sencillamente los listener son sensores que podemos agregar a los objetos. Estos sensores nos avisan llamando a una funcion cada vez que cierto evento ocurre.
En as2 podiamos directamente a las instancias decirle:
myObj.onClick() { }
y escribir el comportanmiento.
Para actionscript 3 debemos agregar un listener a la instancia:
myObj.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(event:MouseEvent) { trace("myObj pressed"); }
Es asi como podemos capturar una infinidad de eventos que largan los objetos. Aca les dejo una pequeña lista de los eventos mas comunes:
Event.ADDED_TO_STAGE
Event.COMPLETE
Event.ENTER_FRAME
Event.INIT
Event.CHANGE
Event.ACTIVATE
Event.ADDED
Event.CLOSE
Event.RESIZE
Event.SELECT
MouseEvent.CLICK
MouseEvent.MOUSE_DOWN
MouseEvent.MOUSE_UP
MouseEvent.MOUSE_MOVE
MouseEvent.MOUSE_OVER
MouseEvent.MOUSE_OUT
MouseEvent.ROLL_OVER
MouseEvent.ROLL_OUT
No todos los objetos dispachan los todos los eventos.
Este seria un ejemplo de como abrir una pagina.
graphicInstance.addEventListener(MouseEvent.CLICK, mouseClick); function mouseClick(e:MouseEvent) { var url:String = "http://www.miguelmoraleda.com"; var request:URLRequest = new URLRequest(url); try { navigateToURL(request); } catch (e:Error) { // handle error here } }


I get a:
1120: Access of undefined property MouseEvent.
Am I not including some thing?
package {
import flash.display.*;
import flash.text.*;
public class HelloDan extends MovieClip {
vlost: You are missing the events package.
import flash.events.*
Actually, import flash.events.MouseEvent is enough
Happy new year!!
great thanks
Will you show an example where the listener calls a method within a class, instead of just a procedural function?
Hi Aaron,
To use listener within a class is the same as procedural functions. Here I will write a basic example
I hope this answer your question