Comunidad de diseño web y desarrollo en internet

Actionscript 3.0 Parte 2: Botones, eventos, getURL y enlaces

En el mini-tutorial anterior de Actionscript 3 aprendimos como crear clases, manejar paquetes y los nuevos tipos de datos. Es decir, nada útil. Ahora sí veremos cosas de Actionscript 3 que no sólo son nuevas y lindas sino realmente necesarias y cruciales para hacer lo que sea. Aún así has de leer la introducción a Actionscript 3.0 y descargar el Flash 9 Alpha o usen Flex Builder 2.

Hacer un botón que llevara a una URL en Flash era algo sencillo. Usabas la simple función "getURL" y el resto era fácil, rápido y cómodo. Como ir al dentista. Ahora las cosas han cambiado.

Para empezar con el tutorial, crea una nueva película en Flash 9, luego, crea un botón normal. Ya sabes, de esos tipo "Button" de la biblioteca que no son Movie Clips ni Graphics. Digamos que queremos dar un click sobre nuestro botón y hacer aparecer un mensaje en el output con un trace. Le ponemos de nombre de instancia "botoncito" y vamos al primer keyframe de nuestra película, al panel de Actionscript. En epocas de AS2.0 habríamos escrito algo cómo:

Código :

botoncito.onRelease = function () {
   trace("Aprender AS3 no es frustrante y me llena de felicidad"); 
}

Si haces eso en Actionscript 3.0, obtendrás un error nada descriptivo, no te servirá nada, te despedirán del trabajo y tu perro estará embarazado. Sí, dije "tu perro". Ahora en Flash 9 o Flex 2, los eventos usan un sistema muy similar al de los componentes en Flash 8. Primero tienes que crear una función que reciba el evento

Novedad de ActionScript 3
  • La función que recibe el evento tiene un parámetro, al que le puedes poner cualquier nombre, de tipo "Event". Muy similar a Java, ese parámetro te dirá que tipo de evento fue invocado y que objeto lo invocó.




Luego, debajo de esa función, debemos añadir un código que haga que la función actúe como listener y sea ejecutada tras un click del Mouse.

Novedad de ActionScript 3
  • En Flash 8, al añadir un listener, le decías simplemente si querías un "click" o que tipo de evento preferías. En ActionScript 3 hay una clase llamada "MouseEvent" con un monton de constantes que manejan eso.




Y si estas pensando ¿Pero por qué carajo tenían que complicarlo tanto? Bueno, es el precio del progreso. Ejecutar los eventos de este modo arregla muchos problemas a nivel del alcance de las variables dentro de los eventos y de cómo manejarlos si programamos con OOP. Ahora claro, si eres diseñador o un programador que sólo se dedica a hacer cosas menores que requieren un gotoAndPlay en las situaciones más avanzadas. Pues sí, estamos jodidos.

Ahora que hemos logrado hacer que un botón obedezca nuestra voluntad y la testosterona invade nuestras venas por ello (O err… ¿El estrógeno?), es hora de hacer algo verdaderamente útil. Un link.

Usaremos ese botón para que al clickearlo, cambie la vida de las personas que lo toquen llevándolos a la web más asombrosa no pornográfica de la web. En ActionScript 2, podríamos haberlo logrado con un simple getURL("http://www.cristalab.com/"); pero en Actionscript 3 esa función NO EXISTE (Gritos de terror de millones de flashers mientras leen esto).

Ahora, navigateToURL es la función que debemos usar y se comporta exactamente igual que getURL... Sí, igual. ¿Entonces por qué Adobe la reemplazó? Porqué ahora NO podemos pasarle una URL directamente, sino un objeto de tipo URLRequest.
¿Lo qué? Bueno, lo entenderán más fácil con un ejemplo. Así es nuestro código si queremos ir a una URL específica:



Y ya lo tenemos funcionando. ¿Entonces por qué fastidiarse con el URLRequest? Básicamente, porque es una nueva clase que nos permite, en entornos más avanzados, enviar de una forma mucho más lógica información a una URL, como formularios con datos por POST y GET. También permite otras cosas lindas como modificar el "contentType" de la información enviada o los headers HTTP. Cosas de ingenieros y gente sin amor con tiempo libre.

Y hasta aquí dejamos por hoy, ya tienes muchos conceptos claros y sólo falta aplicarlos en una aplicación real. En el próximo tutorial veremos lo que yo llamo La Gran Visión de Todas las Cosas en Actionscript 3.0, tengan miedo.

PD. Si te estas preguntando por qué no hay un .FLA para descargar esto o por qué puse el código en imágenes... copiar y pegar no te van a llevar a ningún lado U_U. Aprende realmente Actionscript 3.0, escribe tu propio código y no solo pegues para decir "wow, lindos colores". Así crecerás fuerte, sano y la comunidad te abrazará y respetará. Tambien te mirarán más por la calle. Sólo ventajas.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate