lunes, 1 de marzo de 2010

Mis primeros pasos con AS3

Como todo lenguaje de programación, AS 3.0 puede llegar a ser aburrido, dispendioso, desesperante, estresante, complicado, y en fin una serie de cientos de defectos, sin embargo es bueno aprender y sacar el mayor provecho de esto (no del aburrimiento que esto produce sino de la funcionalidad del lenguaje), voy a explicar de una forma rápida y sencilla el uso de AS3 para hacer cositas muy sencillas, como ciclos repetitivos y cosas así.

Logo ActionScript 3.0
Es fundamental saber que AS1, AS2 u AS3, son lenguajes muy parecidos y el hecho de hacer aplicaciones en flash MX o en flash 8 no quiere decir que estemos programando con AS3, esta publicación muestra unas cuantas diferencias en el uso de estos lenguajes que pueden generar confusiones en la gente (incluso yo estaba confundido pero ya estoy encontrando mi rumbo).

Diferencia en la declaración de variables:

En AS1 la declaración de variables puede llegar a parecerse a un lenguaje de programación que no quiero nombrar pero espero que se den cuenta por ustedes mismos, la variable se declara de este modo:


Lenguaje = "PHP";

NOTA: cualquier mensaje que pueda parecer subliminal no lo es…

Como se pueden dar cuenta la variable se declara de forma muy sencilla y un poco desordenada, ahora bien, de nada nos sirve declarar las variables si no las podemos ver, para aquellos que saben programar, saben que para java, la salida del sistema se logra con "System.out.println(variable o "texto");", AS también cuenta con una salida parecida, que se logra de este modo:

trace(Lenguaje);

Esto muestra una pantalla emergente que
solo aparece en tiempo de diseño o desarrollo, es decir el usuario final no la vera. La ventana se muestra con el valor de la variable, en este caso mostraría esto: PHP
Ahora bien, así seria con AS2:

var Lenguaje : String = "buuuu";
trace(Lenguaje );

La salida en esta ocasión seria esta: buuuu.

En AS3 es igual, la diferencia de AS2 y AS3 es que este último es más estricto y mucho más ordenado, muy parecido a JAVA de hecho.

Numeros:
AS2 utiliza el tipo de dato Number para el manejo de números enteros y decimales, al igual que en el ejemplo anterior, se pueden declarar variables sin indicar tipo de dato, pero lo ideal es hacerlo de esta manera.

var num:Number = 50;
num = 50;

Un ejemplo:

// tengo 5 manzanas
var manzanas: Number = 5;
//me como 3
var comidas: Number = 3;
// ¿Cuántas manzanas me quedan?
var total: Number;
trace("me quedan "+(total=manzanas-comidas)+" manzanas, porque este gloton\nhijuemadre se comió "+comidas+" de mis "+manzanas+" manzanas");

En el ejemplo, se hace una resta en la impresión, esto es posible y muy útil en unos casos, también podemos ver como es la concatenación en las impresiones, es decir
"mensaje "+variable+" mensaje".

En AS3 esto funciona igual, con la diferencia que el lenguaje AS3 maneja más tipos de datos numéricos, son estos:
  • int: tipo de dato entero, contempla números negativos y positivos.
  • uint: tipo de dato entero que solo contempla números positivos.
  • Number: tipo de dato numérico que contempla números negativos, positivos, decimales y números de gran tamaño.

Ciclos repetitivos:

¿Por qué si todos los lenguajes tienen bucles AS no?, pues si, AS si tiene y son muy parecidos al resto.

// Ciclo For o para más if anidado
for(var i:int = 0; i<> if(i==1){
trace(i+" gol!!!!");
}
else{
trace(i+ " goles!!!!");
}
}

El ciclo while es básicamente lo mismo, así que no me tomare el tiempo de explicarlo.

Funciones:

No voy a hablar de funciones matemáticas, eso ya se me olvido, les voy a hablar de funciones en AS, ¿que es una función?, es una instrucción o una serie de ellas que se ejecutan dependiendo de un evento, por ejemplo al presionar un botón, al cumplirse determinado tiempo, al llegar a un fotograma o cosas así. Las funciones cambian entre los 2 idiomas, así que aquí están los ejemplos:

en AS2

//se construye la funcion llamada mensaje
function mensaje(){
//que imprimirá un mensaje
trace("Mensaje de prueba");
}

Para llamar a la función solo basta con llamarla por su nombre:

mensaje();

En AS3 las funciones se pueden hacer del mismo modo, lo que difiere es la manera como se llama desde los eventos, ya que en AS3 es muy importante hacer uso de los objetos Listener (escuchadores) que se encargan de administrar los eventos de las aplicaciones.

Manejar eventos en AS

En AS2 para programar el evento de un botón se hacía de esta manera:

//se llama al botón por su nombre de instancia, se adjunta el evento que se va a programar
//en este caso onPress, y se iguala a una nueva función
nombreBoton_btn.onPress = function(){
trace("Mensaje de prueba");
}

En AS3 se requieren más lineas de código pero es mucho más ordenado y se pueden manejar muchos más elementos dentro de una función.

//se añade un Escuchador de evento (EventListener) al botón, luego se programa el tipo de evento
//en este caso el evento CLICK del Mouse y se añade el nombre de la función que se llamará
nombreBoton_btn.addEventListener(MouseEvent.CLICK, mensaje);

//se declara la función, pero esta vez se le especifica un parámetro de tipo MouseEvent y se
//especifica el valor que retorna la función, en este caso void quiere decir vacío, la función no
//retorna nada.
function mensaje(event:MouseEvent):void{
trace("Mensaje de prueba");
}

En general los cambios no son tan bruscos, como la mayoría de la gente cree, pero es importante adaptarse al uso del lenguaje AS3, que no es un lenguaje nuevo, y hay mucha información en la WEB.

Recuerden dejar sus comentarios.



2 comentarios:

  1. Hola Juan, muy buena la entrada de tu blog. Me gustaria saber si me puedes recomendar algun tutorial o manual que pueda bajar de la red para seguir aprendiendo mas de AS3.

    Graaax de antemano.

    Saludos

    ResponderEliminar
  2. Hola Monica,

    Creo que lo mejor es buscar libros de ActionScript3 los de la librería O'reilly son muy buenos, también lo son los de Friends of ED.

    En estas páginas también se encuentran muy buenos tutoriales:
    http://graphics-geek.blogspot.com/ http://tv.adobe.com
    http://gotoandlearn.com
    http://www.cristalab.com

    Algo que me ha servido mucho es no intentar encontrar información que tenga todo en un solo lugar, sino buscar la solución a problemas específicos, haz pequeños programas y en la medida que vayas haciendo varios iras aprendiendo con facilidad.

    Finalmente, intenta trabajar con Flex, Flash Builder 4 o Flex builder 3, ya que ayuda mucho más con el código que el entorno de desarrollo de Flash Professional.

    Si tienes preguntas no dudes en escribir y si quieres colaborar con el blog, todo es bienvenido!

    ResponderEliminar