En este curso llamamos sentencias a lo que tradicionalmente en Flash se ven�a llamando acciones. Las sentencias ordenan a una pel�cula las acciones que debe realizar durante su reproducci�n.
Las sentencias pueden actuar individualmente:
gotoAndStop (35);
O anidarse unas dentro de otras para actuar conjuntamente:
with (color) {
gotoAndStop (35);
}
En AS tenemos dos tipos de sentencias: Condicionales y bucles (loops)
En casi todos los programas, utilizamos condicionales para a�adir l�gica a nuestros programas y bucles para realizar tareas repetitivas.
�Condicionales
Uno de los aspectos gratificantes de Flash es crear pel�culas inteligentes. Con inteligente queremos decir: Suponga una ni�a llamada Alicia a la que no le gusta mojarse la ropa. Antes de salir de su casa cada ma�ana, Alicia mira por la ventana para comprobar el tiempo y, si est� lloviendo, coger un paraguas. Alicia es inteligente. Utiliza la l�gica para ver una serie de opciones y construir una decisi�n sobre lo que hacer basada en las circunstancias. Nosotros utilizaremos la misma l�gica b�sica cuando creemos pel�culas interactivas en flash.
Ejemplos de l�gica en una pel�cula flash:
- Suponga que tenemos tres secciones en una pel�cula. Cuando un usuario va a cada secci�n, utilizamos la l�gica para decidir si mostrarle la introducci�n de dicha secci�n. Si ha estado antes en la secci�n, saltaremos la introducci�n. En caso contrario, ense�aremos la introducci�n.
- Suponga que tenemos una secci�n de una pel�cula restringida. Para entrar en la zona restringida, el usuario debe entrar una contrase�a. Si el usuario entra la contrase�a correcta, le ense�aremos el contenido restringido. En caso contrario, no.
- Suponga que estamos moviendo una pelota a trav�s de la pantalla y queremos que rebote en un muro. Si la pelota cruza cierto punto, cambiaremos la direcci�n de la pelota. En caso contrario, dejaremos que la pelota contin�e viajando en su direcci�n.
Estos ejemplos de l�gica requieren el uso de un especial tipo de sentencias llamado condicional. Las condicionales nos permiten especificar los t�rminos bajo los que una secci�n de c�digo deber�a o no ser ejecutado.
Ejemplo de sentencia condicional
if (userName == "James Bond") {
trace ("Bienvenido a mi website, 007");
}
la estructura gen�rica de una condicional es:
if (condicion) {
sentencias
}
Una condicional permite a Flash crear decisiones l�gicas.
�Repitiendo tareas (bucles)
No solo queremos que las pel�culas tomen decisiones, tambi�n queremos que hagan tareas tediosas y repetitivas por nosotros. Suponga que quiere visualizar una secuencia de cinco n�mero en la pantalla de salida y quiere que la secuencia empiece en cualquier n�mero. Si el n�mero para empezar es 10, puede mostrar la siguiente secuencia:
trace(10); trace(11); trace(12); trace(13); trace(14);
Pero si quiere que empiece en la secuencia 513, tendr� que repetir todos los n�meros:
trace(513); trace(514); trace(515); trace(516); trace(517);
Podemos evitar la repetici�n haciendo que la sentencia trace dependa de una variable, tal que as�:
var x = 1; trace(x); x = x +1; x = x +1; x = x +1; x = x +1; x = x +1;
Esto facilita la tarea, porque si queremos cambiar el n�mero, basta con cambiar el valor de x. Como el resto de c�digo se basa en el valor de x, al funcionar el programa cambiar� la secuencia entera. Esto resulta una mejora respecto a la situaci�n anterior y funciona bien, pero se hace in�til si queremos contar hasta 500. Para realizar tareas muy repetitivas utilizamos una sentencia bucle que haga que un bloque de c�digo se repita un n�mero arbitrario de veces.
Hay muchos tipos de bucles, cada uno con su propia sintaxis. Uno de los m�s comunes es el bucle while. Nuestro ejemplo puede verse como un ejemplo de bucle de una serie de instrucciones que se repiten:
var x = 1;
while (x<=5) {
trace(x);
x = x +1;
}
La palabra clave while indica que queremos empezar un bucle. La expresi�n (x <= 5) indica las veces que el bucle debe repetirse y las sentencias del bloque, son lo que se ejecuta en cada repetici�n del bucle.
Como las condicionales, los bucles son uno de los tipos de sentencias m�s utilizados en programaci�n.
�La sentencia var
Se utiliza para declarar variables.
Sintaxis
var variable1 [= valor1] [...variableN [= valorN];
Argumentos
variableN: El valor de la variable a declarar
valorN: El valor que se asigna a la variable
Comentario
Aunque se puede declarar variables en cualquier lugar y sin la palabra clave var, es muy interesante acostumbrase a declarar todas las variables en el primer fotograma de la pel�cula (despu�s del preload) o por lo menos, utilizar var, para identificar r�pidamente las variables.
Ejemplos
var x; var x, y, z; var x = "texto";
�La sentencia set (set Variable)
Sirve para asignar un valor a una variable.
Sintaxis
set (variable.expresion);
Argumentos
variable: Cualquier variable.
expresion: cualquier valor que se le asigna a la variable.
Comentario
El valor almacenado en una variable puede cambiar y podemos utilizar la sentencia set para asignar el valor a la variable.
Ejemplo
Podemos escribir igualmente:
x = "texto"; que set (x, "texto");
�La sentencia function
Define un bloque de sentencias que ejecuta unas tareas determinadas.
Sintaxis
function nombreFuncion (argumento0,...,argumentoN) {
sentencias
}
Argumentos
nombreFuncion: Cualquier nombre.
argumentoN: cero o m�s valores para pasar a la funci�n. Estos valores pueden ser recogidos por las sentencias para su posterior manipulaci�n.
Comentarios
Para devolver un valor, utilice return dentro de una funci�n.
Ejemplos
Sin return, recogiendo el resultado en una variable, por ejemplo:
function areaTriangulo(base,altura) {
area = (base*altura)/2;
}
Con return, devolviendo el valor a la llamada de la funci�n:
function areaTriangulo(base,altura) {
area = (base*altura)/2;
}
�La sentencia call
Incorpora al c�digo actual el script que contiene el fotograma al que se llama.
Sintaxis
call(fotograma);
Argumentos
fotograma: Cualquier nombre o n�mero de fotograma.
Comentario
Puede llamar a funciones para que se ejecuten y devuelvan valores.
�La sentencia with
Cambia temporalmente la ruta de destino utilizada para evaluar expresiones. Activa la l�nea de tiempo del objeto que contiene entre par�ntesis.
Sintaxis
with (objeto) {
sentencias
}
Argumentos
objeto: Cualquier objeto o clip de pel�cula.
Sentencias: Bloque de instrucciones que se ejecutar�n en la l�nea de tiempo del objeto.
Comentarios
Esta sentencia sustituye al popular tellTarget de flash4.
Ejemplo
Establecer la propiedad visible a true en un clip de pel�cula llamado clip3 y mover la pel�cula hasta el fotograma 50 de su l�nea de tiempo:
with (clip3) {
_visible = true;
gotoAndPlay(50);
}
Esto mismo se puede hacer con el punto:
clip3._visible = true;
clip3.gotoAndPlay(50);
O con tellTarget:
tellTarget ("clip3") {
_visible = true;
gotoAndPlay(50);
}
Acceder a dos l�neas de tiempo secundarias, dentro de un clip principal:
with (clip3) {
with (boton31) {
_visible = true;
}
with (boton32) {
_visible = false;
}
�La sentencia ifFrameLoaded
Esta sentencia comprueba si el contenido de un fotograma est� disponible localmente.
Sintaxis
ifFrameLoaded (escena, fotograma) {
sentencias
}
Argumentos
escena: Cualquier n�mero o nombre de escena.
fotograma: El n�mero o nombre de fotograma que se va a controlar.
Comentario
Se utiliza para reproducir una pel�cula sencilla mientras se descarga el grueso de la pel�cula.