Página inicial  

trans_770 trans_160

Unidad 19. Flash. Navegación (V).


Las Variables

 

Las variables son contenedores donde podremos almacenar información para trabajar con ella. Esta información puede ser modificada y leída.

Aunque parece un concepto muy complejo su uso es bastante sencillo.

En ActionScript existen 8 tipos diferentes de variables, los que más utilizaremos serán los siguientes:

  • Boolean: o booleano, puede almacenar sólo dos valores, o true (verdadero) o false (falso).


  • Number: puede almacenar números enteros o decimales, positivos o negativos. El signo decimal en ActionScript es el punto (.). Podrás realizar operaciones matemáticas con estas variables.


  • String: puede almacenar cadenas de caracteres, es decir, un conjunto de caracteres alfanuméricos. Las variables de tipo String deben ir entre comillas dobles (").

 

Para declarar (crear) una variable sólo tendrás que escribir la siguiente línea:

var nombreVariable:tipoVariable = valorVariable;



Veamos el ejemplo para verlo más claro. Haremos que el clic sobre el movieclip estrella sólo se ejecute si el detalle no está aún mostrado.

Y al revés. Que sólo se ejecute el código al hacer clic en el detalle si éste se encuentra fuera.

var estrella_activada:Boolean = true;



estrella.onPress = function() {

	if (estrella_activada == true) {

	estrella.gotoAndPlay("desaparece");

	detalle.gotoAndPlay("aparece");

	estrella_activada = false;

	}

}



detalle.onPress = function() {

	if (estrella_activada == false) {

		estrella.gotoAndPlay("aparece");

		detalle.gotoAndPlay("desaparece");

		estrella_activada = true;

	}

}

Fíjate en las dos primeras líneas, se declaran dos variables booleanas. Una dice que la estrella se encuentra activada y la otra que el detalle se encuentra desactivado.

ActionScript 3

import flash.events.*;

var estrella_activada:Boolean = true;

 

estrella.addEventListener(MouseEvent.CLICK, funcion_desaparece);

function funcion_desaparece(event:MouseEvent):void

{

if (estrella_activada == true) {

estrella.gotoAndPlay("desaparece");

detalle.gotoAndPlay("aparece");

estrella_activada = false;

}

}

 

detalle.addEventListener(MouseEvent.CLICK, funcion_aparece);

function funcion_aparece(event:MouseEvent):void

{

if (estrella_activada == false) {

estrella.gotoAndPlay("aparece");

detalle.gotoAndPlay("desaparece");

estrella_activada = true;

}

}

 

Al hacer clic en el movieclip estrella se evalúa la variable estrella_activada si ésta es verdadera (true) entonces permite que se realicen las acciones. En caso contrario, sale de la condición.

Al entrar en la condición se desplazan los cabezales y se modifica el valor de la variable a falso para que la próxima vez que intente entrar no puedan ejecutarse las acciones.

En el onPress del clip detalle se evalúa de nuevo la variable. Esta vez debería estar en false porque si el detalle está fuera es porque ya se ha hecho clic sobre la estrella y ha pasado por el anterior bloque.

 

A medida que vayamos avanzando iremos usando otras variables de diferentes tipos. Verás que su uso no difiere mucho al que hemos explicado ahora.

Antes de terminar con este tema deberíamos ver algo muy importante: el ámbito de las variables.

Esto es, el sitio donde puedan utilizarse las variables.

Nota: Para explicar el ámbito de las variables utilizaremos la función trace(variable) que envía el contenido de la variable al Panel Salida. Puedes abrir este panel desde VentanaSalida.

 

Exiten 3 ámbitos de variables: el local, el global y el de línea de tiempo.

 

Las variables declaradas en la línea de tiempo pueden utilizarse en cualquier fotograma posterior y su contenido se mantendrá intacto.

Por ejemplo, declaramos la siguiente variable en el fotograma 1:

var miVariable:String = "Esta es mi variable";

Y en el fotograma 15 colocamos las siguientes líneas en el Panel Acciones:

trace(miVariable);

stop();

Verás como al probar la película en el Panel de Salida aparece escrito el contenido de la variable.

Ten en cuenta que si declaras la variable en el fotograma 2 no estará disponible en fotogramas anteriores, es decir en el 1.

 

Las variables declaradas en un ámbito local sirven sólo para un bloque de función. Veamos este ejemplo:

function miFuncion() {

	var miVariable:Number = 1;

	trace(miVariable);

	miVariable = 2;

	trace(miVariable);

}



miFuncion();



trace(miVariable);

En el primer bloque definimos una función (hablaremos de ellas más a fondo en el siguiente apartado).

En esta función se declara una variable y se envía su contenido al Panel Salida. Luego modificamos el contenido de la variable y volvemos a enviar el contenido a Salida.

Observa que después llamamos a la función, esto hará que se ejecute su código, por lo que en el Panel Salida se mostrará 1 y 2.

Luego intentamos enviar el contenido de la variable a Salida y el resultado que obtenemos es undefined. Esto es porque la variable no está definida, pues solamente la habíamos declarado para el bloque de la función.

Utilizando las variables de esta forma sólo podremos acceder a ellas desde el bloque de función donde están declaradas. Una vez fuera de éste las variables dejan de existir.

 

Las variables de ámbito global son mucho más flexibles, están disponibles en cualquier fotograma y función.

Su modo de declaración es la siguiente:

_global.miVariable = "Esta es una variable global";

Podrás acceder a ella en cualquier momento.

Las variables globales no tienen tipo, y pueden tomar cualquier valor.

Nota: Si en algún sitio declaras una variable local con el mismo nombre que una variable global existente no podrás utilizar la global durante todo el ámbito en el que exista la local.

 

Comentaremos también la existencia de las variables de tipo matriz (o array). Éstas pueden almacenar diferentes variables en un solo objeto.

Veamos un ejemplo para verlo más claro:

var miMatriz:Array = new Array();

miMatriz[0] = "Lunes";

miMatriz[1] = "Martes";

miMatriz[2] = "Miércoles";

miMatriz[3] = "Jueves";

miMatriz[4] = "Viernes";

miMatriz[5] = "Sábado";

miMatriz[6] = "Domingo";

Así si escribimos:

Trace(miMatriz[5]);

Se mandará al Panel Salida el elemento 5 del array miMatriz en este caso Sábado.

Los arrays empiezan por 0, así que es conveniente que te acostumbres a rellenar la matriz a partir de este elemento. Verás que con el tiempo te ayudará a realizar algunas funciones.

Otras formas de declarar arrays son las siguientes:

var matriz2:Array = new Array("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");

o

var matriz3:Array= ["Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo"];

Puedes ver un ejemplo práctico de los arrays en este apartado básico.

 


Las Funciones

 

Como habrás visto en los ejemplos anteriores, una función es un bloque de código que podemos utilizar en cualquier parte del archivo SWF con sólo llamarla:

function miFuncion() {

	var miVariable:Number = 1;

	trace(miVariable);

}

En este ejemplo hemos creado una función que envía el contenido de la variable miVariable al Panel Salida.

Podemos escribir la siguiente línea en cualquier momento despué de haber pasado la función y esta se ejecutará:

miFuncion();

 

Como ves, crear funciones es bastante sencillo. Además podemos crear funciones un poco más complejas enviándole parámetros:

function enviaSalida(miVariable:String) {

	trace(miVariable);

}

Si en cualquier momento escribimos:

enviaSalida("Hola!");

Se mostrará el mensaje en el Panel Salida.

El modo de crear funciones con parámetros es bastante intuitivo. Al crear la función deberás indicar que tipo de variable le vas a enviar. En nuestro ejemplo hemos definido el parámetro como de tipo String.

De este modo podrás utilizar la variable miVariable dentro de la función y trabajar con ella como quieras.

Para llamar a la función sólo deberás escribir su nombre y indicarle el parámetro que le quieres enviar.

Puedes crear funciones con más de un parámetro, para ello sólo tendrás que separar éstos por comas:

function miFuncion(parametro1:String, parametro2:Number, parametro3:Boolean) {

	// código

}



miFuncion("hola", 2, false);

 



     


© aulaClic. Todos los derechos reservados. Free Computer tutorials. Prohibida la reproducción por cualquier medio.
Septiembre - 2007.