Programación Flash Introducción

16
1. EL LENGUAJE ACTIONSCRIPT. PRIMER PROGRAMA ActionScript es el lenguaje de programación propio de Flash. Es, un lenguaje de script, esto quiere decir que no hará falta crear un programa completo para conseguir resultados, normalmente la aplicación de fragmentos de código ActionScript a los objetos existentes en nuestras películas nos permiten alcanzar nuestros objetivos. Tiene similitudes, por tanto, con lenguajes tales como los usados en el Microsoft Visual Basic, en el Borland Delphi etc. La sintaxis ActionScript presenta muchísimos parecidos con el JavaScript, C o PHP. Nuestro primer programa:Nos podemos plantear hacer un programa que presente al usuario un formulario con dos cajas de texto donde escribir y un botón en el que ponga “Sumar”. Suponemos que se escribe un número en cada una de las cajas y al hacer clic en el botón mostramos el resultado de sumar ambos números. Como esto es demasiado difícil por ahora para nosotros vamos a hacer un programa que simplemente calcule la suma de dos números elegidos por nosotros, los programadores, y almacene el resultado. var numero1,numero2, resultado : Number; numero1=5; numero2=3; resultado=numero1+numero2; En la primera parte del programa le decimos a flash que vamos a utilizar tres contenedores para almacenar números (Number) que se llamarán numero1, numero2 y resultado. Esta primera sección podemos decir que no contiene instrucciones sino declaraciones, declaramos los contenedores que utilizaremos más adelante. Después escribimos tres instrucciones que realmente hacen algo. La primera introduce el valor 5 en el contenedor numero1. La segunda hace lo mismo con el valor 3 y el contenedor numero2. La tercera instrucción hace tres cosas. Primero recupera los valores almacenados en los dos contenedores, después los suma y finalmente almacena el valor calculado en el contenedor resultado. Un detalle importante es que cada línea de programación termina en punto y coma. Este programa es perfectamente inútil porque no muestra el resultado en pantalla así que al ejecutarse en una ventana de Windows el usuario no ve nada en absoluto. Solo hemos operado con la memoria central y con la ALU pero no hemos utilizado en la ningún dispositivo de entrada/salida. 2. VARIABLES Las variables son contenedores donde podremos almacenar información para trabajar con ella. Esta información puede ser modificada y leída. Una variable dentro de un programa debe tener un nombre fácil de recordar y significativo, por ejemplo si utilizamos una variable para almacenar la nota media de un grupo de alumnos lo lógico es que a la variable le demos el nombre de ‘media’. Normas para nombrar las variables Los nombres de variables sólo pueden contener letras, números y el carácter de subrayado. Deben empezar con una letra. Los nombres de variable son sensibles a las mayúsculas. Esto significa que Nombre, nombre o NOMBRE serán variables distintas. No podemos utilizar como nombre de variable el nombre de un elemento del lenguaje. Por ejemplo: var, Number, etc. Ejemplos de nombres de variables legales: Nombre_Usuario; FECHA12; Lenguajes de Programación 1

Transcript of Programación Flash Introducción

Page 1: Programación Flash Introducción

1. EL LENGUAJE ACTIONSCRIPT. PRIMER PROGRAMA ActionScript es el lenguaje de programación propio de Flash. Es, un lenguaje de script, esto quiere decir que no hará falta crear un programa completo para conseguir resultados, normalmente la aplicación de fragmentos de código ActionScript a los objetos existentes en nuestras películas nos permiten alcanzar nuestros objetivos. Tiene similitudes, por tanto, con lenguajes tales como los usados en el Microsoft Visual Basic, en el Borland Delphi etc. La sintaxis ActionScript presenta muchísimos parecidos con el JavaScript, C o PHP. Nuestro primer programa:Nos podemos plantear hacer un programa que presente al usuario un formulario con dos cajas de texto donde escribir y un botón en el que ponga “Sumar”. Suponemos que se escribe un número en cada una de las cajas y al hacer clic en el botón mostramos el resultado de sumar ambos números. Como esto es demasiado difícil por ahora para nosotros vamos a hacer un programa que simplemente calcule la suma de dos números elegidos por nosotros, los programadores, y almacene el resultado. var numero1,numero2, resultado : Number; numero1=5; numero2=3; resultado=numero1+numero2; En la primera parte del programa le decimos a flash que vamos a utilizar tres contenedores para almacenar números (Number) que se llamarán numero1, numero2 y resultado. Esta primera sección podemos decir que no contiene instrucciones sino declaraciones, declaramos los contenedores que utilizaremos más adelante. Después escribimos tres instrucciones que realmente hacen algo. La primera introduce el valor 5 en el contenedor numero1. La segunda hace lo mismo con el valor 3 y el contenedor numero2. La tercera instrucción hace tres cosas. Primero recupera los valores almacenados en los dos contenedores, después los suma y finalmente almacena el valor calculado en el contenedor resultado. Un detalle importante es que cada línea de programación termina en punto y coma. Este programa es perfectamente inútil porque no muestra el resultado en pantalla así que al ejecutarse en una ventana de Windows el usuario no ve nada en absoluto. Solo hemos operado con la memoria central y con la ALU pero no hemos utilizado en la ningún dispositivo de entrada/salida.

2. VARIABLES

Las variables son contenedores donde podremos almacenar información para trabajar con ella. Esta información puede ser modificada y leída. Una variable dentro de un programa debe tener un nombre fácil de recordar y significativo, por ejemplo si utilizamos una variable para almacenar la nota media de un grupo de alumnos lo lógico es que a la variable le demos el nombre de ‘media’.

Normas para nombrar las variables Los nombres de variables sólo pueden contener letras, números y el carácter de subrayado. Deben empezar con una letra. Los nombres de variable son sensibles a las mayúsculas. Esto significa que Nombre, nombre o

NOMBRE serán variables distintas. No podemos utilizar como nombre de variable el nombre de un elemento del lenguaje. Por ejemplo:

var, Number, etc.

Ejemplos de nombres de variables legales: Nombre_Usuario; FECHA12;

Lenguajes de Programación 1

Page 2: Programación Flash Introducción

AlturaDeLaNaveEspacialMarciana;

Ejemplos de nombres de variable no permitidos: _NombreUsuario; Nombre-Usuario; 123FECHA;

Tipos de variables

Hay tres tipos de variables según la información que almacenan: 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 ‘.’. String: puede almacenar cadenas de caracteres, es decir, un conjunto de caracteres

alfanuméricos. Las variables de tipo String deben ir entre comillas dobles ("cadena") o ('cadena'). Declaración de variables

Antes de utilizar una variable, tenemos que declararla. Para declarar (crear) una variable y darle un valor inicial se emplea esta sintáxis:

var nombreVariable:tipoVariable [= valorVariable]; La información situada entre corchetes es opcional, es decir, podría no aparecer. No es necesario utilizar sangría, incluso se podría situar toda la expresión en la misma línea dejando un espacio en blanco entre var y el nombre de la variable. Sin embargo seguir la sintaxis que se presenta facilita la legibilidad de los programas. Ejemplo: var miVariable:String = "Esta es mi variable"; Realmente, ActionScript no es muy restrictivo en la declaración de variables. Se permite, por ejemplo: var altura = 5; var ancho= 4.35; var apellidos = "Moreno García" ; var altura, ancho, apellidos, x; Si declaramos una variable mediante var y no especificamos su tipo, la variable tomará el tipo del valor que se le asigne. En diferentes momentos una misma variable puede contener datos de distinto tipo, por ejemplo number y string. Ámbito de las variables El ámbito de las variables es el sitio donde puedan utilizarse. Existen 2 ámbitos de variables: el local 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.

Aún no hemos estudiado las funciones, que son bloques de instrucciones a las que se les asigna un nombre y se comportan como pequeños programas que realizan una tarea concreta. Si una variable se declara dentro de una función sólo será accesible dentro de ella misma, se dice que tiene un ámbito local

Por tanto, las variables declaradas dentro de la función son locales, y sólo existen dentro de ésa función. Si dentro de una función queremos emplear una variable definida en la línea de tiempo simplemente tenemos que acceder a su contenido utilizando su nombre.

3. OPERADORES Y EXPRESIONES

Un operador es un símbolo que realiza una acción dentro de una expresión de ActionScript. Una expresión es un conjunto de operadores, variables y constantes relacionados entre sí de un cierto modo.

Lenguajes de Programación 2

Page 3: Programación Flash Introducción

Por ejemplo:

i = 3 ; --> Es una expresión cuyo resultado será asignarle a la variable ' i ' el valor 3 (que es una constante). A partir de este punto, la variable i vale 3.

j = 5 + i ; --> Es una expresión cuyo resultado será asignarle a la variable ' j ' la suma de la constante 5 y la variable ' i ' que sabemos que vale 3 (porque le hemos asignado este valor antes). Por tanto, el resultado de esta expresión es asignarle 8 a j. También se puede considerar como asignar a j el valor de la expresión 5 + i

Operador de asignación = Asigna a la variable de la izquierda el valor de la derecha

Operadores aritméticos: suma +, resta - , multiplicación *, división / y módulo %.

El operador módulo calcula el resto de realizar la división entera entre dos números. Por ejemplo 5 % 2 daría como resultado 1.

4. Instrucciones de entrada-salida. Respuesta a eventos. Introducción del código

En los primeros tiempos de la informática los usuarios lanzaban los programas escribiendo el nombre del mismo en la línea de comandos. C:\>programa. Entonces el sistema operativo buscaba el programa en el disco y lo cargaba en memoria principal. Entonces el programa se iba ejecutando de desde la primera instrucción escrita por el programador hasta la última ordenadamente. Lo habitual era que en las primeras instrucciones el programa solicitara por teclado los datos necesarios, después realizara los cálculos y finalmente mostraba los resultados. Las posibles variantes eran que los la entrada-salida se realizara mediante ficheros y que los resultados se imprimieran.

Desde la aparición de los entornos gráficos como Windows la programación es guiada por eventos. Esto significa que el programador ya no tiene que controlar el qué momento pide datos al usuario. Por el contrario, se diseñan ventanas con botones, cajas de texto, botones de opción, etc… y se indica qué hay que hacer cuando ocurra un evento como por ejemplo hacer clic sobre un botón, o pasar el ratón sobre una imagen.

Nosotros trataremos la entrada de datos mediante formularios de manera que al hacer clic en un botón, cogemos los datos de las cajas de texto. La salida de datos la realizaremos en etiquetas (label).

Línea de tiempo: Colocamos una capa para el formulario y otra capa para la programación

Lenguajes de Programación 3

Page 4: Programación Flash Introducción

Formulario: En el menú Ventana debemos hacer visibles las ventanas propiedades, inspector de propiedades y

En componentes utilizaremos Button, TextInput y Label

En propiedades asignamos nombres significativos a los objetos: txtOperando1, txtOperando2, labelResultado y btnSuma.

Operando1 y Operando 2 son objetos Label pero no nos preocupamos por sus nombres porque no vamos a realizar con ellos ninguna operación.

Arriba tenemos un objeto Label sin texto al que asignaremos el nobre labelResultado.

Lenguajes de Programación 4

Page 5: Programación Flash Introducción

Para introducir el código de programación ActionScript hacemos clic con el botón derecho sobre la capa programación y elegimos Acciones. Escribimos este código

btnSuma.addEventListener(MouseEvent.CLICK,sumar);

Al objeto btnSuma le añadimos un escuchador de eventos. ¿Qué evento? hacer clic con el ratón. ¿Qué hacemos cuando ocurra ese evento? ejecutamos la función sumar.

function sumar(event:MouseEvent)

{

……………………………

} Esta estructura delimita mediante llaves un grupo de instrucciones. En el interior del paréntesis decimos que la función se ejecuta como respuesta a un evento de ratón.

op1=Number(txtOperando1.text); Number() es una función propia de ActionScript que a partir de una cadena de caracteres que tenemos dentro de la caja de texto, genera un número. txtOperando1.text permite acceder al texto que hay en la caja que siempre es de tipo String. El problema es que el número que teclea el usuario, por ejemplo 78, tienen formato de cadena de caracteres ‘78’ y necesitamos convertirlo en número para poder realizar una operación matemática con ese valor.

labelMensaje.text = String(resultado); El contenido de un objeto Label debe ser de tipo String, por eso utilizamos esta función que opera de forma opuesta a Number. Una vez introducido el código debemos asegurarnos de que no hemos cometido ningún error de sintaxis. Menú Depurar/Depurar película

Si hemos cometido algún error, nos aparece un mensaje en la ventana ERRORES DEL COMPILADOR. Finalmente podemos publicar la película.

Lenguajes de Programación 5

Page 6: Programación Flash Introducción

5. Objetos. Propiedades y métodos Los Objetos son instancias de una determinada clase. Esto es, son representantes de una clase ya definida. Cada objeto tiene las propiedades y métodos propios de la clase. Así, son objetos, por ejemplo, un botón, un clip de película, un gráfico o un sonido... es decir, que prácticamente todo es un objeto en Flash CS4. Cada objeto tiene una serie de Propiedades (que veremos después), unos Métodos y eventos, que dan funcionalidad a los objetos. Cada objeto reacciona ante los Métodos y eventos que tiene definidos. Podemos encontrar una lista con todas las propiedades, métodos y eventos de un objeto en el panel Acciones.

Los objetos que se visualizan en Flash, pertenecen a la clase DisplayObject.

Para usar las propiedades, se debe colocar el nombre de la instancia del objeto seguido de un punto (.) y después la propiedad y su valor (objeto.propiedad = valor). Propiedades de DisplayObject, comunes a todos los objetos que se visualizan.

alpha Hace referencia a la opacidad del objeto al que afecte. La opacidad se puede definir como la no-transparencia. De modo que un 100% de transparencia equivale a un 0 de opacidad, o a un 0 de alpha.

height Devuelve o establece la altura del objeto en píxeles.

width Propiedad idéntica a la anterior, pero devuelve o establece la anchura.

visible Determina si el objeto está o no visible en nuestra película. Cuando vale 1 o True, lo está, cuando vale 0 o False, pasa a ser invisible.

x Con esta propiedad obtenemos o establecemos las coordenadas del objeto respecto del eje de las X (horizontal). Sirve para averiguar la posición o para asignarla de forma dinámica (durante la ejecución de nuestra película Flash)

y Con esta propiedad obtenemos las coordenadas del objeto respecto del eje de las Y (vertical). Sirve para averiguar la posición o para asignarla de forma dinámica (durante la ejecución de nuestra película Flash).

rotation Con esta propiedad obtenemos o establecemos el giro del objeto, su rotación, expresado en grados.

name Con esta propiedad obtenemos o estabecemos el nombre de la instancia.

En nuestro ejemplo hemos utilizado la propiedad text de los objetos Operando1, Operando2 y labelMensaje. En cuanto a métodos hemos utiizado el addEventListener del objeto btnSumar.

Lenguajes de Programación 6

Page 7: Programación Flash Introducción

6. Comentarios Los programas que hacen cosas útiles suelen tener miles de líneas de código. Las instrucciones de los lenguajes de programación están formadas por palabras en inglés y las expresiones tienen una sintaxis particular que no tiene nada que ver con la construcción de frases en ningún idioma. Por este motivo es fundamental documentar el código de los programas mediante comentarios que faciliten la comprensión de los mismos por parte de otras programadores o incluso la del propio autor al cabo del tiempo.

//: Comentario de línea. Indica que el texto a partir de ahí, y en esa línea, es un comentario, y no se ejecutará como código.

/* ....... */: Comentario de bloque. Cualquier texto de una o más líneas encerrado entre estos caracteres es un comentario, y no se ejecutará como código.

7. FUNCIONES 1 Definición: Una función es un bloque de código que podemos utilizar en cualquier parte del archivo, siempre que haya sido definida en el mismo o en un fotograma anterior. Las funciones se definen con la palabra function. function sumar() { var n; n=4+2; labelMensaje.text=String(n); } Para que se ejecute la función, debemos de llamarla en alguna parte del código: sumar(); 2 Parámetros o argumentos Podemos crear funciones un poco más complejas enviándole parámetros: function saludar(nombre:String) { labelMensaje.text='Hola '+nombre; } Observa que en el parámetro hemos indicado el tipo de dato que será, es este caso del tipo String. Ahora para llamarla usaríamos por ejemplo: saludar("Bruno"); //Escribiría: Hola Bruno Podemos enviar varios parámetros separados por comas. Si al parámetro le damos un valor, este se convertirá en un parámetro opcional, y podemos enviarlo al llamar a la función o no. Por ejemplo: function saludar(nombre:String, pregunta:String='¿qué tal?') { labelMensaje.text= ('Hola '+nombre+' '+pregunta); } Ahora podemos llamarla de dos formas: enviando todos los parámetros, o no enviando los parámetros opcionales, por lo que tomará el valor por defecto: saludar("Bruno"); //Escribiría: Hola Bruno ¿qué tal?saludar("Bruno", "¿te gusta TICO tanto como a mi?"); //Escribiría: Hola Bruno ¿te gusta TICO ….?

Lenguajes de Programación 7

Page 8: Programación Flash Introducción

3 Devolver valores. En vez de que la función realice una acción, también podemos utilizarla para que devuelva valores u objetos. Por ejemplo: function saludar(nombre:String):String { return 'Hola '+nombre; } Observa que hemos indicado detrás de la función el tipo de valor a devolver, en este caso devolverá un String, tal como hacíamos con las variables. En muchos ejemplos el tipo indicado es :void. Esto no es un tipo de datos, si no todo lo contrario. :void indica que esa función no devuelve ningún valor. El valor que devuelve es lo indicado la instrucción return. En el ejemplo anterior la función no realiza ninguna acción, sólo devuelve un valor En la llamada escribimos: labelMensaje.text=saludar(“Juanjo”);

Lenguajes de Programación 8

Page 9: Programación Flash Introducción

8. INSTRUCCIÓN CONDICIOAL IF-ELSE

En muchas ocasiones es necesario que una o varias instrucciones se ejecuten en función de una condición. Por ejemplo en un programa para dividir dos números deberíamos comprobar que el divisor es distinto de cero antes de realizar la división porque en este caso la división no se puede realizar.

btnDividir.addEventListener(MouseEvent.CLICK,divir);

function dividir(event:MouseEvent)

{ var op1, op2, resultado: Number; op1=Number(txtOperando1.text); op2=Number(txtOperando2.text); if (op2==0) { labelMensaje.text = “No se puede divider entre cero”; } else { resultado=op1/op2; labelMensaje.text = String(resultado); }

} La sintaxis de la sentecia if es:

if (condición) { bloque if: instrucciones si se cumple la condición ; } [else { bloque else: instrucciones si no se cumple la condición; }]

codición: debe ser una expresión cuyo resultado debe ser true o false. El bloque else puede no estar presente Las llaves no son necesarias si el bloque contiene una sola instrucción. Se podría haber escrito:

if (op2==0) labelMensaje.text = “No se puede dividir entre cero”; else { resultado=op1/op2; labelMensaje.text = String(resultado); }

Las llaves no tienen que estar obligatoriamente situadas en líneas independientes, sería válido:

if (op2==0) labelMensaje.text = “No se puede dividir entre cero”; else { resultado=op1/op2; labelMensaje.text = String(resultado); }

No utilizaremos este estilo porque no favorece la legibilidad de los programas. Cuando ambos bloques tenga una sola instrucción sí escribiremos: if (condición) instrucción A; else instrucción B;

Lenguajes de Programación 9

Page 10: Programación Flash Introducción

Es importante tener en cuenta que dentro del bloque de instrucciones if o else puede habar cualquier instrucción, incluso otra estructura if-else independiente:

if (condición) { ………………………………….. if (codición) { ………………………..

} else { …………………. }

…………………………….. } else { ……………………………….. }

Es fundamental en estos casos utilizar el sangrado para poder identificar fácilmente los distintos. bloques if y else. Operadores de ComparaciónEmpleados en expresiones decondicionales, devuelven un valor lógico, verdadero (TRUE o 1) si la comparación es cierta, o falso (FALSE o 0) si no lo es.

Operador Descripción Ejemplo

> Mayor que 6 > 5 es verdadero.

< Menor que 6 < 5 es falso.

>= Mayor o igual que 6 >= 5 es verdadero.

<= Menor o igual que 6 >= 6 es verdadero.

== Igual 'hola' == 'hola' es verdadero.

!= Distinto 'hola' != 'hola' es verdadero.

Operadores lógicos.

Evalúan valores lógicos. Normalmente se emplean para comparar dos expresiones con operadores relacionales, y devuelve verdadero o falso.

Operador Descripción Ejemplo

&& And (Y) Devuelve verdadero si los dos valores son verdaderos

(6 > 5) && (1==1) devuelve verdadero

(6 > 5) && (1==0) devuelve falso

|| Or (O) Devuelve verdadero si alguno de los valores es verdadero

(6 > 5) || (1==1) devuelve verdadero(6 > 5) || (1==0) devuelve verdadero

(6 > 6) || (1==0) devuelve falso

! Not (Negado) Devuelve verdadero si el valor era falso, y al revés.

!(9 > 2) devuelve falso !(9 ==9) devuelve falso

Lenguajes de Programación 10

Page 11: Programación Flash Introducción

Vamos a ver ejemplos de utilización de estos operadores: Saber si un número está comprendido entre 5 y 10: n ∈ [5,10]

if ((n>4) && (n<11)) texto=”Está entre 5 y 10”; else texto=”Está entre 5 y 10”; labelMensaje.text=texto; también es válido: if ((n>=5) && (n=<10)) texto=”Está entre 5 y 10” ; else texto=”Está entre 5 y 10”; labelMensaje.text=texto;

Determinar si un número cumple o no esta condición: “está comprendido entre 100 y 200 pero no es el 120”.

if ((n>=100) && (n<=200) && (n!=120)) texto=”cumple la condición” else texto=”no cumple la condición” labelMensaje.text=texto;

Determinar si un número cumple o no esta condición: “es menor que 10 o mayor que 20 o es el 15”.

if ((n<10) || (n>200) || (n==15)) texto=”cumple la condición” else texto=”no cumple la condición” labelMensaje.text=texto;

9. El objeto MATH

El objeto Math permite manejar funciones matemáticas elementales. Por ejemplo si quiero calcular la raiz cuadrada de un número puedo escribir:

i=34.56; x=Math.sqrt(i)

sin(x:Number) : Number Calcula y devuelve el seno del ángulo especificado en radianes.

cos(x:Number) : Number Calcula y devuelve el coseno del ángulo especificado en radianes.

pow(x:Number, y:Number) : Number

Calcula y devuelve x elevado a la potencia de y.

random() : Number Devuelve un número n seudo-aleatorio, donde 0 <= n < 1.

log(x:Number) : Number Devuelve el logaritmo del parámetro x.

sqrt(x:Number) : Number

Calcula y devuelve la raíz cuadrada del número especificado.

tan(x:Number) : Number Calcula y devuelve la tangente del ángulo especificado.

Lenguajes de Programación 11

Page 12: Programación Flash Introducción

10. Bucles

Un bucle es un bloque de instrucciones que se repiten dependiendo que se cumpla una condición. Cada vez que el bloque de instrucciones se ejecuta se evalúa la condición que controla el bucle para ver si debe repetirse o no el proceso. Para realizar pruebas rápidas de programas utilizaremos la ventana ‘salida F2’ del entorno de flash en lugar de objetos label. Si queremos que nuestro programa escriba en ellas utilizamos trace(‘hola’). En la mayoría de los lenguajes de programación existen tres estructuras de bucle: for, while y do-while. BUCLE while while (condition) { sentencia(s)

} Evalúa una condición y, si ésta da como resultado true, ejecuta una o varias sentencias antes de volver a ejecutar el bucle para evaluar la condición nuevamente. Después de que la condición dé como resultado false, se omiten las sentencias y finaliza el bucle y el programa continúa ejecutándose por la instrucción que sigue a la llave de cierre ya fuera del bucle. Las llaves ({}}) que encierran las sentencias que va a ejecutar while no son necesarias si sólo se va a ejecutar una sentencia. En el ejemplo siguiente, la sentencia while se utiliza para comprobar una expresión. Cuando el valor de i es menor que 20, se realizará un seguimiento de dicho valor i. Cuando la condición deja de ser true, el bucle finaliza.

var i:Number = 0; while (i < 20) { trace(i); i += 3; } 0 3 6 9 12 15 18

BUCLE do-while do { statement(s) } while (condition)

Similar al bucle while, con la diferencia de que las sentencias se ejecutan una vez antes de la evaluación inicial de la condición. Las sentencias a continuación sólo se ejecutan si la condición da como resultado true. Un bucle do..while garantiza que el código dentro del bucle se ejecutará al menos una vez. Aunque también puede lograr esto con un bucle while colocando una copia de las sentencias que se van a ejecutar antes de que se inicie el bucle while, muchos programadores consideran que es más fácil leer los bucles do..while. Si la condición da siempre como resultado true, el bucle do..while es infinito. Si se introduce un bucle infinito, habrá problemas con Flash Player y finalmente se obtendrá un mensaje de advertencia o se bloqueará el reproductor. Siempre que sea posible, utilice un bucle for si sabe el número de veces que desea ejecutar el bucle. Aunque es fácil leer y depurar los bucles for, no siempre pueden sustituir a los bucles do..while. Ejemplo

Lenguajes de Programación 12

Page 13: Programación Flash Introducción

Cómo utilizar los ejemplos El ejemplo siguiente utiliza un bucle do..while para evaluar si una condición es true, y realiza un seguimiento de myVar hasta que myVar sea 5 o un valor superior. CuandomyVar llega a 5 o un valor superior, el bucle finaliza.

var myVar:Number = 0; do { trace(myVar); myVar++; } while (myVar < 5); 0 1 2 3 4

BUCLE for

for ([init]; [condition]; [next]) { sentencia(s) }

Evalúa la expresión init (inicializar) una vez y, a continuación, inicia una secuencia de reproducción indefinida. La secuencia de reproducción indefinida se inicia evaluando la expresión condition. Si la expresión condition da como resultado true, se ejecuta sentencia(s) y se evalúa next. La secuencia de reproducción indefinida se inicia nuevamente con la evaluación de la expresión condition. Las llaves ({}) que encierran el bloque de sentencias que va a ejecutar la sentencia for no son necesarias si sólo se va a ejecutar una sentencia. El ejemplo siguiente utiliza for para realizar la misma acción repetidamente. En el código, el bucle for añade los números de 1 a 100.

var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) { sum += i; } trace(sum); // 5050

El ejemplo siguiente muestra que las llaves ({}}) no son necesarias si sólo se va a ejecutar una sentencia:

var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) sum += i; trace(sum); // 5050

Lenguajes de Programación 13

Page 14: Programación Flash Introducción

11. Control de la reproducción de la película mediante ActionScript Hasta ahora nuestras películas tenían un solo fotograma con el formulario y el código en su capa correspondiente. A partir de una presentación que tenga una interpolación clásica podemos incluir en la capa de programación, en un fotograma cualquiera: gotoAndPlay(4); gotoAndStop(30); play(); stop(); En lugar de escribir el número del fotograma al que vamos a saltar es útil crear una nueva capa que llamaremos “etiquetas”. En esta capa, en los fotogramas que serán destino de saltos en la reproducción insertamos un fotograma clave vacío y en el panel ‘propiedades’ label, escribimos un nombre como ‘inicio’ o ‘final’ que nos facilite la comprensión de la película. Vamos a crear una animación

En la capa de programación introducimos: En el fotograma 1: var contador:Number=1; En el fotograma 100:

contador++; if (contador<4) gotoAndPlay("inicio"); else stop();

Es muy importante que la etiqueta ‘inicio’ esté situada en el fotograma 2 porque si la ponemos en el fotograma 1 estaremos poniendo a 1 el contador en cada reproducción con lo que no parará el bucle. Ejercicio: incluir un número en la escena que vaya incrementándose de 1 hasta 3 con cada repetición.

Lenguajes de Programación 14

Page 15: Programación Flash Introducción

12. Controlar propiedades de clips de película con ActionScript. Hasta ahora hemos trabajado sobre la propiedad text de las cajas de texto y las etiquetas (label). Cualquier elemento de nuestra presentación que sea un clip de película, como un botón, una imagen o un texto convertidos en símbolos tienen estas propiedades sobre las que podemos actuar desde ActionScript.

Propiedad Significado Valores Interpretación x Posición horizontal 0 en adelante 0 significa pegado a la izquierda y Posición vertical 0 en adelante 0 significa arriba del todo rotation Rotación -180 a 180 En grados alpha Trasparencia Entre 0 y 1 0 es transparente scaleX Escala horizontal 0 en adelante 0.5 es el 50%, la mitad del tamaño scaleY Escala vertical 0 en adelante 2 es el 200%, el doble del tamaño visible Visibilidad true o false false oculta el objeto

Podemos situar una imagen en el escenario y mediante botones podemos modificar estos valores:

imagen.x=imagen.x+1; o bien imagen.x++; texto.rotation+=5;

13. Crear interpolaciones con ActionScript

Hasta ahora hemos creado interpolaciones mediante el interfaz, vamos crear ahora una interpolación mediante ActionScript. Asociado al evento CLIC de un botón etiquetado ‘Desvanecer’ llamamos a la función desvanece: function desvanece(e:MouseEvent) { var interpolacionDesvanece:Tween= new Tween (nombreimagen, “alpha”, None.easeIn, 0, 1, 3, true); }

nombreImagen: es el nombre del símbolo que vamos a desvanecer “alpha”: es la propiedad que vamos a modificar 1: es el valor inicial opaco 0: es el valor final transparente None.easeIn: establece el modo de aceleración, consulta la ayuda: fl.transitions.easing 3: el tiempo que se tardará true: indica que el tiempo se medirá en segundos, no en microsegundos.

Lenguajes de Programación 15

Page 16: Programación Flash Introducción

14. Ejercicios

1. Mostrar la suma de dos números introducidos por el usuario a través de dos cajas de texto. Cuando se pulsa el botón Sumar, se muestra el resultado.

2. Pedir al usuario dos números mediante cajas de texto y mostrar la suma, resta, producto, cociente y

módulo en función del botón pulsado.

3. Mostrar la media de tres números introducidos por el usuario mediante cajas de texto

4. Pedir un número al usuario e indicar si es positivo, negativo o cero.

5. Pedir la edad al usuario e indicar si corresponde a edad escolar (menor que 16), laboral (entre 17 y 54) o de jubilación.

6. Pedir dos números al usuario e indicar cual es el mayor o bien si los tres son iguales.

7. Programa que resuelve ecuaciones de segundo grado a partir de los valores de a, b y c.

8. Mostrar los números de 1 al 20.

9. Mostrar los números del 20 al 1.

10. Sumar los números del 1 al 25.

11. Mostrar los números pares del 1 al 40.

12. Preguntar al usuario cuantas veces quiere ser insultado n, y mostrar n veces la palabra ‘malandrín’

13. Mostrar los números del 1 al n introducido por el usuario, excepto los múltiplos de 4.

14. Función que calcula el doble de un número.

15. Calcular la suma de una serie de números introducidos por el usuario que va pulsando un botón

‘Siguiente’, cuando se pulsa el botón ‘Suma’ se muestra este resultado.

16. Igual que el anterior para calcular la media.

17. Pedir un número al usuario. Si es menor que 1 mostramos un mensaje de error. Si el mayor o igual que 1 llamamos a una función que calcula la suma de los números de 1 al número dado.

18. Pedir números al usuario, cuando se pulsa en botón fin, se indican cuantos eran pares, cuantos

impares y cuantos mayores que 10.

19. Pedir al usuario que adivine una palabra, por ejemplo ‘juanjo’. Cada vez que falle se le muestra un mensaje de error y se le indican los intentes que ha realizado.

20. Igual que anterior pero en esta ocasión limitamos el número de intentos a 5. En el momento que

comente el quinto error inhabilitamos la caja de texto en la que se introducen las palabras.

21. Utilizar una función para la potenciación de dos números (base y exponente) mediante multiplicaciones sucesivas.

22. Utilizar una función para calcular el factorial de un número.

Lenguajes de Programación 16