Ejemplo de Eventos
Oct 17
Flash, Tutoriales acciones, botones, clases, ejemplos, eventos, Flash, invocar, metodos, Tutoriales 2 Comments

POO
Continuamos con los post para dar un inicio a la Programación Orientada a Objetos, y este viene a continuación de Eventos y es parte de una serie de post que ha publicado the_fricky, sin embargo este será el último por mi parte ya que los 4 que proceden a estos los veremos más adelantes cuando empecemos a trabajar más seriamente.
Para este post lo que haremos será crear nuestros primeros botones dinámicamente, programarlos, asignarles eventos, listeners (oyentes) y aprender un nueva forma de llamar a una clase.
Tomaremos como referencia la clase que habíamos creado en Cómo Escribir una Clase.
Lo primero que hacemos será crear 2 botones, como mas les guste, en mi caso a no ser muy bueno diseñando utilizaré los componentes Buttons que trae Flash por defecto (ya hablaremos mas adelante de todos los componentes que son muy útiles).
Para hacerlo dinámicamente los creamos con las siguientes líneas:
import fl.controls.Button; public var boton1:Button=new Button(); /*Agrego el boton al escenario*/ addChild(boton1); //Por defecto se carga en X=0 e Y=0

Botones
Ahora nos falta decirle que es lo que hará cada botón, ya sea cuando hagamos clic, o rollOver y rollOut, etc, para eso necesitamos decirle a la clase que escuche cuando uno de los botones se activa para de esa forma lanzar la función que corresponda.
Para informar lo que dijimoes más arriba nos pasamos a la clase creada llamada Personas
Aquí ahora debemos avisarle que hay 2 elementos que estarán “disparando” eventos, es decir, serán los encargados de ejecutar la función/es que la clase tenga, entonces debemos escribir:
package com
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import fl.controls.Button;
/**
* ...
* @author mawape
* www.mawape.com.ar/blog
*/
public class Persona extends Sprite //Definición de la Clase
{
//VARIABLES PRIVADAS de la clase (no se puede acceder a ellas desde fuera de la Clase)
private var _nombre:String = "";
private var _apellido:String = "";
private var _edad:Number = 0;
public var boton1:Button = new Button();
public var boton2:Button = new Button();
//CONSTRUCTOR *SOLO PUEDE DECLARARSE COMO PUBLIC* (es siempre una función con el nombre de la clase, nos permitirá Instanciar la Clase)
public function Persona ():void
{
//Asignamos el valor de ingresado a las variables definidas
/*Creo el primer botón y le doy una Etiqueta y una posición*/
boton1.x = 27.3;
boton1.y = 61.4;
boton1.label = "Botón 1";
/*Agrego el boton al escenario*/
addChild(boton1);
/*Le digo que debe ejecutar la función al recibir un click*/
boton1.addEventListener(MouseEvent.CLICK, apretado);
boton2.x = 257.3;
boton2.y = 61.4;
boton2.label = "Botón 2";
addChild(boton2);
boton2.addEventListener(MouseEvent.CLICK, apretado);
//A los dos botones le digo que ejecute la misma función cuando es presionado, pero harán cosas diferentes
}
//Propiedades de la clase (Solo Lectura)
function get nombre():String
{
return(_nombre);
}
function get edad():Number
{
return(_edad);
}
//Propiedades de la clase (Lectura y Escritura)
function get apellido():String
{
return(_apellido);
}
function set apellido(nuevoApellido:String):void
{
_apellido = nuevoApellido;
}
//METODOS
public function cumpleanios(elNombre:String, elApellido:String, laEdad:Number):void
{
_nombre = elNombre;
_apellido = elApellido;
_edad = laEdad;
trace("¡Feliz Cumpleaños número! " + _edad + ", " + _nombre + " " + _apellido);
}
//EVENTOS DE Los BOTONES
public function apretado(evento:MouseEvent):void {
switch (evento.target.name) {
case 'boton1':
trace("Aprete el boton 1");
cumpleanios("pep", "pon", 50);
break;
case 'boton2':
trace("Aprete el boton 2");
break;
}
}
}
}
Con esto tenemos nuestros primeros botones programados, sin embargo falta llamar a la clase. Si bien, en el tutorial anterior vimos una de las formas, por medio de la sentencia import, existe otra mucho mejor.
Como no es recomendado en AS3 trabajar con código sobre la línea de tiempo, existe una opción de hacerlo directamente, para eso, fijénse en la imagen:

Llamando a una Clase
Aquí lo que se ve es que primero se pone el nombre del paquete donde se encuentra la clase y luego el nombre de la Clase, de esta forma mantenemos nuestra línea de tiempo libre.
Espero les sirva esta series de tutoriales, en los próximos veremos algunas cosas mas avanzadas. Les dejo los archivos para que se los descarguen y vean si les funciona correctamente.
Twitter
Facebook
Flickr
RSS