30
Creando Script con ActionScript 2.0 [Adobe Flash CS2] 1 Docente: Aldo Salinas Encinas email: [email protected] Creando Script con Actionscript 2.0 Un Script es una instrucción o una serie de instrucciones que ejecutan tareas especificas. Estas instrucciones son líneas de código que se añaden a una instancia de un objeto de la biblioteca (botón, clip de película, video, sonido, etc.) o a un fotograma clave. Si dichas líneas de código se hallan dentro de una instancia del botón, estas se ejecutaran cuando el usuario actué con dicho botón, de igual manera se ejecutará si el código se encontrase dentro de un clip de película, etc. En caso de estar añadidas a un fotograma clave, este se ejecutara siempre y cuando la cabecera de reproducción de la línea de tiempo pase por dicho fotograma clave. Panel de Acciones Para mostrar el panel acciones debe realizar uno de los siguientes pasos: Seleccione menú Ventana/Acciones Presione F9 En cualquiera de los dos casos le mostrará la siguiente ventana: Menú despegable Titulo del panel acciones Caja de herramientas de las acciones Menú emergente área de Script Navegador de Script Lugar donde se coloca el Script Importante El lugar donde se coloca el Script es de suma importancia ya que ello nos dirá donde estamos colocando el código.

Creando Script Con Action Script

Embed Size (px)

Citation preview

Page 1: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

1 Docente: Aldo Salinas Encinas email: [email protected]

Creando Script con Actionscript 2.0

Un Script es una instrucción o una serie de instrucciones que ejecutan tareas especificas. Estas

instrucciones son líneas de código que se añaden a una instancia de un objeto de la biblioteca

(botón, clip de película, video, sonido, etc.) o a un fotograma clave.

Si dichas líneas de código se hallan dentro de una instancia del botón, estas se ejecutaran cuando el

usuario actué con dicho botón, de igual manera se ejecutará si el código se encontrase dentro de un

clip de película, etc.

En caso de estar añadidas a un fotograma clave, este se ejecutara siempre y cuando la cabecera de

reproducción de la línea de tiempo pase por dicho fotograma clave.

Panel de Acciones Para mostrar el panel acciones debe realizar uno de los siguientes pasos:

Seleccione menú Ventana/Acciones

Presione F9

En cualquiera de los dos casos le mostrará la siguiente ventana:

Menú despegable

Titulo del panel acciones

Caja de herramientas de las acciones

Menú emergente

área de Script

Navegador de Script Lugar donde se coloca el Script

Importante

El lugar donde se coloca el Script es de suma importancia ya que ello nos dirá donde estamos

colocando el código.

Page 2: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

2 Docente: Aldo Salinas Encinas email: [email protected]

Descripción del menú emergente

Este menú emergente sólo se genera para el panel acciones.

Añadir un nuevo elemento al Script

Buscar

Ayuda

Insertar una ruta de destino

Opciones de depuración

Revisar sintaxis

Mostrar consejos para el script

Formato automático

Inserción de script a un botón Para codificar de manera genérica un script se establecen los manejadores de eventos:

Cuando(ocurra el evento){

Ejecutar este código:

}

En este caso para los botones los eventos son:

-press ,se ejecuta al presionar el símbolo botón

-release , se ejecuta al liberar el símbolo botón

-releaseOutside , se ejecuta al liberar fuera del símbolo botón

-rollOver , se ejecuta al pasar sobre el símbolo botón

-rollOut , se ejecuta al pasar fuera del símbolo botón

-dragOver , se ejecuta al arrastrar sobre el símbolo botón

-dragOut , se ejecuta al arrastrar fuera del símbolo botón

-keyPress “<Left>” ,se ejecuta al presionar la flecha hacia la izquierda

-keyPress “<Right>” , se ejecuta al presionar la flecha hacia la derecha

-keyPress “<Home>” , se ejecuta al presionar el botón Home

-keyPress “<End>” , se ejecuta al presionar el botón End

-keyPress “<Insert>” , se ejecuta al presionar el botón Insert

-keyPress “<Delete>” , se ejecuta al presionar el botón Delete

-keyPress “<Backspace>” , se ejecuta al presionar el botón Backspace

-keyPress “<Enter>” , se ejecuta al presionar el botón Enter

-keyPress “<Up>” , se ejecuta al presionar la flecha hacia arriba

-keyPress “<Down>” , se ejecuta al presionar la flecha hacia abajo

-keyPress “<PageUp>” , se ejecuta al presionar el botón PageUp

-keyPress “<PageDown>” , se ejecuta al presionar el botón PageDown

-keyPress “<Tab>” , se ejecuta al presionar el botón Tab

-keyPress “<Escape>” , se ejecuta al presionar el botón Esc

-keyPress “<Space>” , se ejecuta al presionar la barra de desplazamiento

Por ejemplo dibuje un objeto (por ejemplo rectángulo), selecciónelo y haga clic derecho con el

mouse

Page 3: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

3 Docente: Aldo Salinas Encinas email: [email protected]

mostrándose el siguiente mensaje

seleccionando la opción Botón como se muestra. A continuación presione F9 y escriba el siguiente

código:

Nótese que el lugar donde se coloca el script muestre la siguiente figura:

Importante

Inserción de script a un fotograma Para insertar script a un fotograma es simple, porque lo único que debemos buscar es que el

fotograma sea un fotograma clave, si no es así no le permitirá insertar un script.

Por ejemplo seleccione el fotograma (es decir haga clic sobre el) al que desea insertarle un script.y

conviértalo en fotograma clave (F6).

fotograma clave vacío

Siempre un botón empezará con la acción on.

Page 4: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

4 Docente: Aldo Salinas Encinas email: [email protected]

Ahora inserte el siguiente script en el área de script

Cuando haya insertado el script el fotograma se notara en la línea de tiempo así:

fotograma con script

es recomendable que a un fotograma se le asigne un rótulo (nombre), para su mejor identificación,

el cual lo notara en la línea de tiempo así:

fotograma con rótulo

Nótese que el lugar donde se coloca el script muestre la siguiente figura

Control de la línea de tiempo

Para poder ver estas acciones debemos ubicarnos en la caja de las herramientas de las acciones ,

hacer clic en Funciones globales y elegir Control de la línea de tiempo ,dentro de ella se muestra

las diferentes acciones, tal como los analizaremos:

stop(),Detiene el archivo SWF que se está reproduciendo. El uso más común de esta acción es

controlar clips de película mediante botones. Esta acción no requiere parámetros.

play(), Mueve la cabeza lectora hacia delante en la línea de tiempo, es decir, si una animación esta

detenida esta acción hace que empiece a reproducirse. Esta acción no requiere parámetros.

gotoAndPlay(), Envía la cabeza lectora al fotograma especificado en una escena y reproduce

desde dicho fotograma. Si no se especifica ninguna escena, la cabeza lectora se desplaza al

fotograma especificado de la escena actual. Puede utilizar el parámetro scene únicamente en la línea

de tiempo de raíz, no en las líneas de tiempo de los clips de película u otros objetos del documento.

Esta acción si requiere parámetros obligatoriamente.

Sintáxis

gotoAndPlay([scene:Cadena], fotograma:Objeto)

Page 5: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

5 Docente: Aldo Salinas Encinas email: [email protected]

Parámetros

scene:Cadena [opcional] - Una cadena que especifica el nombre de la escena a la que se envía la

cabeza lectora.

fotograma:Objeto - Número que representa el número de fotograma o la cadena que representa el

rótulo del fotograma al que se envía la cabeza lectora.

gotoAndStop(), Envía la cabeza lectora al fotograma especificado en una escena y la detiene. Si

no se ha especificado ninguna escena, la cabeza lectora se envía al fotograma de la escena actual.

Puede utilizar el parámetro scene sólo en la línea de tiempo raíz, no en las líneas de tiempo de los

clips de película u otros objetos del documento. Esta acción si requiere parámetros

obligatoriamente.

Sintáxis

gotoAndStop([scene:Cadena], fotograma:Objeto)

Parámetros

scene:Cadena [opcional] - Una cadena que especifica el nombre de la escena a la que se envía la

cabeza lectora.

fotograma:Objeto - Número que representa el número de fotograma o la cadena que representa el

rótulo del fotograma al que se envía la cabeza lectora.

nextFrame(), Envía la cabeza lectora al siguiente fotograma. Esta acción no requiere parámetros.

prevFrame(), Envía la cabeza lectora al fotograma anterior. Si el fotograma actual es el

fotograma 1, la cabeza lectora no se mueve..Esta acción no requiere parámetros.

nextScene(),Envía la cabeza lectora al fotograma 1 de la siguiente escena.Esta acción no requiere

parámetros.

prevScene(),Envía la cabeza lectora al fotograma 1 de la escena anterior..Esta acción no requiere

parámetros.

stopAllSound(),Detiene todos los sonidos que se están reproduciendo en un archivo SWF sin

detener la cabeza lectora. Se reanudará la reproducción de los sonidos que deben transmitirse

mientras la cabeza lectora se mueve sobre los fotogramas donde se encuentran.

Ejemplo

Desarrollar un ejercicio el cual permita manejar la línea de tiempo mediante 3 botones.

Solución

Abrimos un nuevo documento de dimensiones 400x400, escogemos el color de fondo de su agrado.

Renombramos la capa1 por auto1 y la capa2 por auto2, como se muestra

Page 6: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

6 Docente: Aldo Salinas Encinas email: [email protected]

En la capa auto1 dibujar un automóvil el cual tiene una interpolación de movimiento desde el

fotograma “auto1” hasta el fotograma 26 y en la capa auto2 dibujar un automóvil a partir del

fotograma “auto2” hasta el fotograma 50, como se muestra

Ahora en el fotograma 1 colocar la acción stop(); en el fotograma 25 colocar la acción

gotoAndPlay(“auto1”); y en el fotograma 50 colocar la acción gotoAndPlay(“auto2”); debe crear

3 botones como se muestra

Asigne los siguientes códigos a los botones auto1, ir al inicio y auto2, en ese orden

Acciones de Navegador/Red

fscommand(),Permite que el archivo SWF se comunique con Flash Player o con el programa que

aloja Flash Player, por ejemplo, un navegador Web. También es posible utilizar la función

fscommand() para pasar mensajes a Macromedia Director o a Visual Basic (VB), Visual C++ y

otros programas que puedan alojar controles ActiveX.

La función fscommand() permite que un archivo SWF se comunique con un script en una página

Web.

Page 7: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

7 Docente: Aldo Salinas Encinas email: [email protected]

Sintaxis

fscommand(commando:Cadena, parámetros:Cadena)

Los valores de estos comandos y parámetros se muestran en una tabla siguiente:

Dejar la tabla igual que la página 104 inclusive el ejemplo dado

getURL(), Carga un documento de una URL específica en una ventana o pasa variables a otra

aplicación en una URL definida. Para probar esta función, asegúrese de que el archivo que se va a

cargar se encuentra en la ubicación especificada. Para utilizar una URL absoluta (por ejemplo,

http://www.cevatec.edu.pe), se necesita una conexión de red.

Sintaxis

getURL(url:Cadena, [window:Cadena, [metodo:Cadena]])

Parámetros

url:Cadena - URL del cual se obtiene el documento.

window:Cadena [opcional] - Especifica la ventana o marco HTML donde debería cargarse el

documento. Puede introducir el nombre de una ventana específica o seleccionarlo de entre los

siguientes nombres de destino reservados:

_self especifica el fotograma actual en la ventana actual.

_blank especifica una nueva ventana.

_parent especifica el elemento principal del fotograma actual.

_top especifica el fotograma de nivel superior de la ventana actual.

metodo:Cadena [opcional] - Un método GET o POST para enviar variables. Si no hay ninguna

variable, omita este parámetro. El método GET añade las variables al final de la URL y se utiliza

para números reducidos de variables. El método POST envía las variables en un encabezado HTTP

independiente y se utiliza para enviar cadenas de variables largas.

Ejemplo:

loadMovie(),Carga un archivo SWF, JPEG, GIF o PNG en un clip de película en Flash Player

mientras se reproduce el archivo SWF original. En Flash Player 8 se ha añadido compatibilidad con

archivos GIF no animados, archivos PNG y archivos JPEG progresivos. Si carga un archivo GIF

animado, sólo se mostrará el primer fotograma.

La función loadMovie() permite mostrar varios archivos SWF simultáneamente y cambiar entre

archivos SWF sin cargar otro documento HTML. Sin la función loadMovie(), Flash Player

muestra un solo archivo SWF.

Page 8: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

8 Docente: Aldo Salinas Encinas email: [email protected]

Sintaxis

loadMovie(url:Cadena, target:Objeto, [metodo:Cadena])

loadMovie(url:Cadena, target:cadena, [metodo:Cadena])

Parámetros

url:Cadena - URL absoluto o relativo del archivo SWF o JPEG que se va a cargar. Una ruta

relativa debe ser relativa al archivo SWF en el nivel 0. Las URL absolutas deben incluir la

referencia al protocolo, como http:// o file:///.

target:Objeto - Referencia a un objeto de clip de película o a una cadena que representa la ruta de

acceso a un clip de película de destino. El clip de película de destino se sustituye por el archivo

SWF o la imagen que se carga.

metodo:Cadena [opcional] - Especifica un método HTTP para enviar variables. El parámetro debe

ser la cadena GET o POST. Si no hay ninguna variable para enviar, omita este parámetro. El método

GET añade las variables al final de la URL y se utiliza para números reducidos de variables. El

método POST envía las variables en un encabezado HTTP independiente y se utiliza para cadenas de

variables largas.

Ejemplos

1. El ejemplo siguiente carga el archivo SWF circulo.swf desde el mismo directorio y reemplaza un

clip de película llamado micuadrado que ya existe en el escenario:

loadMovie("circulo.swf", micuadrado);

es equivalente a usar:

loadMovie("circulo.swf", _level0.micuadrado);

loadMovie("circulo.swf", "micuadrado");

2. El ejemplo siguiente carga el archivo SWF circulo.swf desde el mismo directorio, pero reemplaza

el clip de película principal en lugar del clip micuadrado:

loadMovie("circulo.swf", this);

es equivalente a usar

loadMovie("circulo.swf", "_level0");

3. La siguiente sentencia loadMovie() carga el archivo SWF circulo.swf desde el mismo directorio

en un clip de película nuevo llamado logo_mc que se crea empleando createEmptyMovieClip():

this.createEmptyMovieClip("logo_mc", 999);

loadMovie("circulo.swf", logo_mc);

loadMovieNum(),Flash Player tiene un orden de apilamiento de niveles a partir del nivel 0.

Estos niveles son como capas de acetato: son transparentes, excepto en los objetos de cada nivel.

Cuando utilice loadMovieNum(), debe especificar un nivel en Flash Player donde se cargará el

archivo SWF. Cuando se carga un archivo SWF en un nivel, puede utilizar la sintaxis _level N ,

donde N es el número de nivel, para buscar el archivo SWF.

Page 9: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

9 Docente: Aldo Salinas Encinas email: [email protected]

Cuando cargue un archivo SWF, puede especificar cualquier número de nivel y puede cargar

archivos SWF en un nivel que ya tenga un archivo SWF cargado. De esta forma, el nuevo archivo

SWF sustituirá al archivo SWF existente. Si carga un archivo SWF en el nivel 0, se descargarán

todos los niveles de Flash Player y se sustituirá el nivel 0 por el nuevo archivo.

Sintaxis

loadMovieNum(url:Cadena, level:Número, [metodo:Cadena])

level:Número - Entero que especifica el nivel de Flash Player en el que se cargará el archivo SWF.

Ejemplo

El ejemplo siguiente carga la imagen JPEG image1.jpg en el nivel 2 de Flash Player:

loadMovieNum("http://www.helpexamples.com/flash/images/image1.jpg", 2);

unLoadMovie(), Elimina un clip de película que se cargó mediante loadMovie() desde Flash

Player. Para descargar un clip de película cargado mediante loadMovieNum(), use

unloadMovieNum() en lugar de unloadMovie().

Sintaxis

unloadMovie(target:ClipdePelícula)

unloadMovie(target:Cadena)

Parámetros

target:Objeto - Ruta de destino de un clip de película. Este parámetro puede ser una cadena (por

ejemplo, "my_mc") o una referencia directa a la instancia de clip de película (por ejemplo, my_mc).

Los parámetros que pueden aceptar más de un tipo de datos se engloban en el tipo Objeto.

Nota

tellTarget(), Aplica las instrucciones especificadas en las sentencias a la línea de tiempo

especificada en el parámetro target . La acción tellTarget() resulta útil para los controles de

navegación. Asigne tellTarget() a botones que detengan o inicien clips de película en otros

lugares del escenario. También puede hacer que los clips de película pasen a un determinado

fotograma de ese clip. Por ejemplo, puede asignar tellTarget() a botones que detienen o inician

clips de película en el escenario o que hacen que clips de película pasen a un determinado

fotograma.

Esta acción tellTarget() ya esta desfasada pero todavía tiene su uso, aunque desde Flash 5 o

versiones posteriores, puede utilizar la notación de puntos (.) en lugar de la acción tellTarget().

Puede utilizar la acción with para emitir múltiples acciones en la misma línea de tiempo. Puede

utilizar la acción with para referirse a cualquier objeto, mientras que la acción tellTarget() sólo

puede referirse a clips de película.

En el caso de unloadMovieNum() hay que especificar el nivel donde se cargo la película

Page 10: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

10 Docente: Aldo Salinas Encinas email: [email protected]

Ejemplo

Cree un símbolo clip de película

y asígnele un nombre de instancia denominado circulo

Dentro del clip de película miClip cree una interpolación de movimiento (puede ser otra), por

ejemplo de 30 fotogramas, al primer fotograma asígnele la acción stop().

note que tiene la acción stop()

Ahora cree un botón y colóquelo en la parte inferior del símbolo

Asigne el siguiente código al botón

Page 11: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

11 Docente: Aldo Salinas Encinas email: [email protected]

Finalmente Ctrl.+Enter.

Variables Cuando se declara una variable por primera vez, se recomienda asignarle un valor. La asignación de

un valor inicial se conoce como inicializar la variable, acción que normalmente se realiza en el

fotograma 1 de la línea de tiempo o desde dentro de una clase que se carga cuando el archivo SWF

comienza a reproducirse.

Introducción de datos Para insertar datos en flash debemos trabajar con introducción de texto

y para mostrar datos ya sea de una carga de dato externo o una evaluación de una operación de

variables se debe utilizar texto dinámico. En ambos casos es necesario asignarle un nombre de

instancia

nombre de la caja de texto

Ejemplo

Cree un nuevo documento de 300x200px y cree tal como se muestra:

Texto estático

Texto estático

Texto dinámico

Botones

Page 12: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

12 Docente: Aldo Salinas Encinas email: [email protected]

Los nombres de instancias son en ese orden texto1, texto2, texto3.

Asigne el siguiente código para el primer botón

Asigne el siguiente código para el siguiente botón

trace(), es un depurador que nos brinda Flash para poder manejar el trabajo con variables, su uso

de importancia porque nos sirve como un compilador y poder verificar donde ocurre el error.

Number(),Convierte el parámetro expression en un número y devuelve un valor.

Sintaxis Number(expression) : Number

parseInt(), . Convierte una cadena en un entero. Si la cadena especificada en los parámetros no

puede convertirse en un número

Sintaxis parseInt(expression:Cadena) : Number

parseFloat(),Convierte una cadena en un número de coma flotante.

Sintaxis

parseFloat(string:Cadena) : Number

isNaN(),Evalúa el parámetro y devuelve true si el valor es NaN (no es un número). Esta función es

útil para comprobar si una expresión matemática da como resultado un número.

Sintaxis

isNaN(expression:Objeto) : Boolean

Page 13: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

13 Docente: Aldo Salinas Encinas email: [email protected]

loadVariables(), Lee datos de un archivo externo, como un archivo de texto o texto generado por

ColdFusion, un script CGI, páginas Active Server (ASP), script PHP o Perl, y establece los valores

de las variables en un clip de película de destino. Esta acción se puede utilizar además para

actualizar las variables del archivo SWF activo con nuevos valores.

Sintaxis

loadVariables(url:Cadena, target:Objeto, [method:Cadena])

loadVariablesNum(),Si desea cargar variables en un nivel específico.

Sintaxis

loadVariablesNum(url:Cadena, level:Número, [method:String])

Ejemplo

El ejemplo siguiente carga información desde un archivo de texto llamado params.txt en el clip de

película target_mc que se crea utilizando createEmptyMovieClip().. El script busca en el

archivo params.txt una variable denominada valor. En el primer fotograma coloque el siguiente

script.

this.createEmptyMovieClip("target_mc",1);

loadVariables("params.txt", target_mc);

trace(target_mc.valor);

El archivo externo, params.txt, incluye el texto siguiente:

var1="hello"&var2="goodbye"&valor="nada en especial"

De manera similar se utiliza la acción loadVariablesNum(), sólo que hay que extraerlo de un nivel..

Creación de una barra de desplazamiento

Existen varios métodos para crear texto desplazable en Flash. Puede permitir el desplazamiento en

los campos de texto dinámico y de introducción de texto seleccionando la opción Desplazamiento

permitido del menú Texto o del menú contextual o haciendo doble clic en el selector del campo con

la tecla Mayús presionada.

Puede utilizar las propiedades scroll y maxscroll del objeto TextField para controlar el

desplazamiento vertical, y las propiedades hscroll y maxhscroll para controlar el desplazamiento

horizontal en un campo de texto. Las propiedades scroll y hscroll especifican las posiciones de

desplazamiento vertical y horizontal actuales respectivamente; puede leer y escribir estas

propiedades. Las propiedades maxscroll y maxhscroll especifican respectivamente las posiciones

de desplazamiento vertical y horizontal máximas; estas propiedades son de sólo lectura.

Crearemos un texto dinámico denominado mitexto (nombre de instancia), de un color negro. Debajo

de el un rectángulo de color verde.

Además necesitamos 2 botones para que sirvan de desplazamiento, tal como se muestra:

Page 14: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

14 Docente: Aldo Salinas Encinas email: [email protected]

texto dinámico

asignemos el siguiente código al primer fotograma

mitexto.text=”este es mí país y nadie me va a sacar de aquí, por que yo si se lucha”;

mitexto.text+=mitexto.text;

el código para el botón hacia arriba y hacia abajo son respectivamente:

Sentencias condicionales

Sentencia if()/else if, Evalúa una condición para determinar la siguiente acción en un archivo SWF.

Si la condición es true, Flash ejecuta las sentencias que hay entre llaves {}, a continuación de la

condición. Si la condición es false, Flash omite las sentencias entre llaves y ejecuta las sentencias

que hay a continuación. Utilice la sentencia if junto con las sentencias else y else if para crear una

lógica ramificada en los scripts.

Las llaves {} que se utilizan para incluir el bloque de sentencias que se ejecutarán con la sentencia

if no son necesarias si sólo se va a ejecutar una sentencia.

Sintaxis

if(condition) {

sentencia(s);

}else{

sentencia(s);

}

bucles,

los cuales pueden ser de:

sentencia for(),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 statement y se

evalúa la expresión next . La secuencia de reproducción indefinida se inicia nuevamente con la

evaluación de la expresión condition .

Las llaves {} que se utilizan para incluir el bloque de sentencias que se ejecutarán con la sentencia

for no son necesarias si sólo se va a ejecutar una sentencia.

Page 15: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

15 Docente: Aldo Salinas Encinas email: [email protected]

Sintaxis

for(init; condition; next) {

statement(s);

}

sentencia while(),Evalúa una condición y, si ésta da como resultado true, ejecuta una sentencia o

serie de 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 omite la sentencia o serie de sentencias y

finaliza el bucle.

La sentencia while ejecuta la siguiente serie de pasos. Cada repetición de pasos del 1 al 4 se

denomina repetición del bucle. Al principio de cada repetición se vuelve a probar la condición

condition , tal y como se muestra en los siguientes pasos:

Se evalúa la expresión condition.

Si condition da como resultado true o un valor que se convierte en el valor booleano true,

por ejemplo, un número distinto de cero, vaya al paso 3. De lo contrario, se completa la

sentencia while y se reanuda la ejecución en la sentencia que hay a continuación del bucle

while.

Ejecute el bloque de sentencias statement(s).

Vaya al paso 1.

Sintaxis

while(condition) {

sentencia(s); }

Sentencia do..while, 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

esto también puede realizarse 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 creen 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.

Sintaxis

do {

sentencia(s)

} while (condition)

Page 16: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

16 Docente: Aldo Salinas Encinas email: [email protected]

Sentencia switch(), Crea una estructura ramificada para sentencias de ActionScript. Al igual que la

sentencia if, la sentencia switch prueba una condición y ejecuta sentencias si la condición devuelve

un valor true. Todas las sentencias switch deberían incluir un caso predeterminado. El caso

predeterminado debería incluir una sentencia break para evitar un error de paso al siguiente caso si

se añade posteriormente otro caso. Cuando se pasa al siguiente caso, no se incluye una sentencia

break.

Sintaxis

switch (expression){

caseClause:

[defaultClause:]

}

Sentencia break, Aparece en un bucle (for, for..in, do..while owhile) o en un bloque de sentencias

asociadas con un determinado caso de una sentencia switch. Cuando se utiliza en un bucle, la

sentencia break ordena a Flash que omita el resto del cuerpo del bucle, detenga la acción de bucle y

ejecute la sentencia a continuación de la sentencia de bucle. Cuando se utiliza en una sentencia

switch, la sentencia break ordena a Flash que omita el resto de sentencias en ese bloque de

sentencias case y que salte a la primera sentencia que vaya a continuación del bloque switch.

Sintaxis

break;

Jerarquía de los clips de películas

Rutas absolutas

Una ruta absoluta comienza con el nombre del nivel en el que está cargado el documento y continúa

a lo largo de la lista de visualización hasta que alcanza la instancia de destino. También puede

utilizar el alias _root para hacer referencia a la línea de tiempo situada más arriba del nivel actual.

Por ejemplo, una acción del clip de película bolita que hace referencia al símbolo botón simbolo3

usa la ruta absoluta _root.bolita.simbolo3

El primer documento que se abre en Flash Player se carga en el nivel 0. Debe asignar un número de

nivel a cada documento adicional que se cargue. Si utiliza una referencia absoluta en ActionScript

para hacer referencia a un documento cargado, utilice la sintaxis _levelX, siendo X el número de

nivel en el que está cargado el documento. Por ejemplo, el primer documento abierto en Flash

Player se llama _level0; un documento cargado en el nivel 3 se llama _level3.

Para establecer comunicación entre documentos de niveles distintos, debe utilizar el nombre de

nivel en la ruta de destino.

Rutas relativas

Una ruta relativa depende de la relación entre la línea de tiempo de control y la línea de tiempo de

destino. Las rutas relativas sólo pueden referirse a destinos que se encuentren dentro de su propio

nivel de Flash Player. Por ejemplo, no puede utilizar una ruta relativa en una acción en _level0

que especifica una línea de tiempo en _level5 como destino.

En una ruta relativa, utilice la palabra clave this para hacer referencia a la línea de tiempo actual

del nivel activo; utilice el alias _parent para indicar la línea de tiempo principal de la línea de

tiempo actual. El alias _parent puede utilizarse repetidamente para subir un nivel en la jerarquía

Page 17: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

17 Docente: Aldo Salinas Encinas email: [email protected]

de clips de película dentro del mismo nivel de Flash Player. Por ejemplo, _parent._parent

controla un clip de película dos niveles más arriba en la jerarquía. La línea de tiempo situada más

arriba en cualquier nivel de Flash Player es la única línea de tiempo que no tiene definido el valor

_parent.

Programación de rutas de destino

Para controlar un clip de película, una película cargada o un botón, es preciso especificar una ruta

de destino. Para especificar una ruta de destino de un clip de película o botón, debe asignar un

nombre de instancia al clip de película o botón. Un documento cargado no requiere un nombre de

instancia, puesto que se utiliza el número de nivel como nombre de instancia (por ejemplo, _level5).

Ejemplo 1

Vamos a desarrollar el siguiente ejemplo, para ello dibuje como se muestra:

Donde los dos primeros campos de texto son de introducción de texto, instanciados como texto1,

texto2.

Los siguientes dos son campos de texto pero dinámico cuyas instancias son: texto3 y texto4.

El código para el primer botón es:

Page 18: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

18 Docente: Aldo Salinas Encinas email: [email protected]

Ejemplo 2

Vamos a mejorar el ejemplo anterior ahora, solo colocaremos componentes, para ello vamos a

menú Ventana/componentes (Control+F7)

Vamos a insertar alguno de los componentes la idea es la misma para cualquiera de los

componentes y seleccionamos y lo arrastramos a nuestro escenario.

Debemos colocar los datos

tanto en [data] como en

[label], aunque en data

podemos elegir diferente

Page 19: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

19 Docente: Aldo Salinas Encinas email: [email protected]

Colocamos nombre de instancia a cada uno de nuestras componentes, como se muestra en la

imagen anterior.

El código a colocar en el botón Aceptar será:

El código a colocar en el botón Cancelar será:

FUNCIONES

Flash tiene muchas funciones predefinidas, el cual se muestra a continuación:

Además podemos crear nuestras propias funciones, veamos como:

Sintaxis

function nombre_funcion(ingreso de datos [opcional]){

//sentencia de la función

}

Page 20: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

20 Docente: Aldo Salinas Encinas email: [email protected]

Ejemplo

Cree un nuevo documento de 300x400, dibujar un botón y dos textos dinámicos instanciados con

los nombres: muestra y valor. El código a colocar en el botón está en la segunda figura.

Observación

startDrag()

Se utiliza para poder arrastrar un clip de película, el cual maneja la siguiente sintaxis

Sintaxis

startDrag( fuente ,[bloqueo,izquierda,superior,derecha,abajo] )

stopDrag()

Se utiliza para detener el arrastre generado por startDrag() , su sintaxis es:

Sintaxis stopDrag()

Ejemplo

Crearemos un nuevo documento de dimensiones 500x400px en cual dibujaremos un circulo al cual

le convertiremos en un símbolo botón (hay que instanciarlo con el nombre objeto) además le

colocaremos el siguiente código dentro del botón.

hitTest()

Evalúa el clip de película para comprobar si se superpone o corta con el área activa de otro clip de

película.

Si se coloca el comando Math delante de la función random se obtendrá números que varía

desde 0 hasta 1.

Page 21: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

21 Docente: Aldo Salinas Encinas email: [email protected]

Sintaxis

mc_clip1.hitTest(mc_clip2):Boolean;

Evalúa los recuadros de delimitación del destino (mc_clip2) y la instancia especificada mc_clip1 y

devuelve true si se solapan o cortan en algún punto, caso contrario false.

Ejemplo

Primero crearemos un nuevo documento de dimensiones 300x400px, ahora crearemos dos clips de

película denominados bolita y cuadradito como se muestra, recuerde estos nombres son nombres de

instancia

nombre de instancia

Ahora al clip de película bolita hacer doble clic, ingresaras dentro del clip, al objeto seleccionado

conviértalo en símbolo botón

Clip de película (bolita)

Símbolo botón

Page 22: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

22 Docente: Aldo Salinas Encinas email: [email protected]

Dentro del símbolo botón colocar el siguiente código

Ya está finalizado nuestro ejercicio, haga Control +Enter

Eventos de los clips de películas

Para controlar los clips de películas tal como se realizan con los botones debemos utilizar la acción

onClipEvent.

Sintaxis

onClipEvent(evento){

sentencias;

}

Nota Tenga presente que este código se debe efectuar dentro del clip de película

Importante fijarse aquí (instancia clip de película)

Page 23: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

23 Docente: Aldo Salinas Encinas email: [email protected]

Los eventos para tener presente son:

load (cargar), este evento se ejecuta cuando el clip se ha cargado.

unload (Descargar), este evento se ejecuta después de la descarga.

enterFrame (pasar por fotograma), este evento se ejecuta cada vez que pase por el fotograma.

mouseDown (hacer clic), este evento se ejecuta al realizar clic con el mouse.

mouseUp (soltar clic), este evento se ejecuta al soltar el clic del mouse.

mouseMove (mover mouse), este evento se ejecuta al realizar un movimiento con el mouse.

keyDown (presionar tecla), este evento se ejecuta al presionar una tecla determinada.

keyUp (liberar tecla), este evento se ejecuta al dejar de presionar una tecla determinada.

data (datos), este evento ocurre cuando se reciben datos de una acción loadVariables o loadMovie.

duplicateMovieClip()

Esta acción crea una instancia de un clip de película durante la reproducción del archivo SWF de

manera dinámica. En los clips de película duplicados, la cabeza lectora siempre empieza en el

fotograma 1, independientemente del lugar en el que se encuentre la cabeza lectora del clip de

película original. Las variables del clip de película original no se copian en el clip de película

duplicado

Sintaxis

duplicateMovieClip(destino:Objeto,nuevoNombre:Cadena,profundidad:número);

Parámetros

destino - la ruta de destino del clip de película que se va a duplicar. Este parámetro puede ser una

cadena (por ejemplo, "mi_clip") o una referencia directa a la instancia de clip de película (por

ejemplo, mi_clip). Los parámetros que pueden aceptar más de un tipo de datos se engloban en el

tipo Objeto.

nuevoNombre - identificador exclusivo del clip de película duplicado.

profundidad - nivel de profundidad exclusivo del clip de película duplicado. El nivel de

profundidad es el orden de apilamiento de los clips de película duplicados. Debe asignar a cada clip

de película duplicado un nivel de profundidad exclusivo para evitar la sustitución de archivos SWF

en niveles de profundidad ocupados.

removeMovieClip()

Esta acción elimina un clip de película especificado de manera dinámica.

Sintaxis

removeMovieClip(destino:Objeto);

Parámetros

destino - la ruta de destino de una instancia de clip de película creada con duplicateMovieClip().

Page 24: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

24 Docente: Aldo Salinas Encinas email: [email protected]

attachMovie()

Esta acción localiza un símbolo de la biblioteca y lo asocia al clip de película de manera dinámica.

Sintaxis

attachMovie(id:Cadena,nuevoNombre:Cadena,profundidad:número,inicial:Objeto);

Parámetros

id - nombre de vinculación del símbolo de clip de película de la biblioteca que va a asociarse a un

clip de película del escenario. Es el nombre de instancia del cuadro de diálogo Propiedades de

vinculación.

nuevoNombre - nombre de instancia exclusivo del clip de película que va a asociarse al clip de

película.

profundidad - nivel de profundidad en el que está situado el archivo SWF.

inicial – (opcional) objeto que contiene propiedades con las que rellenar el clip de película recién

asociado. Este parámetro permite a los clips de película creados dinámicamente recibir parámetros

de clip. Si inicial no es un objeto, se omite. Todas las propiedades de inicial se copian en la

nueva instancia. Las propiedades especificadas con inicial están disponibles para la función

constructora.

Ejemplo

Vamos a crear un nuevo documento de 500x500px, ahora se crea un nuevo clip de película con el

nombre mi_clip, además colocamos el siguiente código en el primer fotograma de la escena

1er fotograma de la escena

Se carga un duplicado del clip mi_clip, este clip duplicado se llama mi_clip1 el cual mantiene sus

mismas propiedades y código (si los hubiese), pero esta se superpone a la original, es por ello se le

ha agregado el código anterior (startDrag() y stopDrag()); después de ejecutar (CTRL.+ ENTER) y

arrastrar el clip se mostrará así:

Page 25: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

25 Docente: Aldo Salinas Encinas email: [email protected]

createEmptyMovieClip ()

Crea un clip de película vacío como elemento secundario de un clip de película existente. Este

método se comporta de forma similar al método attachMovie(), aunque no es necesario

proporcionar un identificador de vinculación externo para el nuevo clip de película. El punto de

registro de un clip de película vacío recién creado es la esquina superior izquierda. Este método

falla si falta cualquiera de los parámetros.

Sintaxis

createEmptyMovieClip(nombre:Cadena, profundidad:Numero);

Parámetros

nombre - cadena que identifica el nombre de instancia del nuevo clip de película.

Profundidad - entero que especifica la profundidad del nuevo clip de película.

Propiedades de Flash

Las propiedades predefinidas de Flash, son propiedades de los objetos, fotogramas, clips, mouse,

etc. Estas propiedades pueden modificarse dinámicamente, es decir, mientras la película se está

reproduciendo.

SetProperty()

Esta acción cambia un valor de propiedad de un clip de película durante la reproducción del clip de

película.

Sintaxis

setProperty(destino:cadena, propiedad:Objeto, expresión:Cadena)

Parámetros

destino - ruta al nombre de instancia del clip de película cuya propiedad va a establecerse.

propiedad - propiedad que va a establecerse.

expresión- el nuevo valor literal de la propiedad o una ecuación que da como resultado el nuevo

valor de la propiedad.

Ejemplo

El código ActionScript siguiente crea un clip de película nuevo y carga una imagen en él. Se

establecen las coordenadas _x e _y para el clip utilizando setProperty().

Page 26: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

26 Docente: Aldo Salinas Encinas email: [email protected]

colocar en el 1er fotograma

Cuando lo ejecuten resultara así:

Todas las propiedades, cuando se utilizan con ActionScript van precedidas de un guión ( _ ).

La propiedad _alpha (transparencia Alfa) Esta propiedad ya se ha utilizado, su uso es bajar la transparencia de un clip de película.

Sintaxis

NombredeInstancia ._alpha=valor;

Donde valor debe variar desde 0 (no visible) hasta 100 (visibilidad normal)

La propiedad _x (coordenadas x) Esta propiedad establecen y devuelven el valor de la coordenada x de un clip.

Sintaxis

Page 27: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

27 Docente: Aldo Salinas Encinas email: [email protected]

NombredeInstancia ._x=valor;

Donde valor representa un número en píxeles el cual puede ser positivo y negativo

La propiedad _y (coordenadas y), esta propiedad establecen y devuelven el valor de la coordenada

y de un clip.

Sintaxis

NombredeInstancia ._y=valor;

Donde valor representa un número en píxeles el cual puede ser positivo y negativo

La propiedad _rotation (rotación) Esta propiedad establecen el grado de rotación de un clip de película.

Sintaxis

NombredeInstancia ._rotation=valor;

Donde valor representa un ángulo el cual puede ser positivo y negativo

La propiedad _xscale (escalar en x) Esta propiedad devuelve y ayuda a modificar la escala del clip de película en el sentido horizontal.

Sintaxis

NombredeInstancia ._xscale=valor;

Donde valor representa un número en píxeles.

La propiedad _yscale (escalar en y) Esta propiedad devuelve y ayuda a modificar la escala del clip de película en el sentido vertical.

Sintaxis

NombredeInstancia ._yscale=valor;

Donde valor representa un número en píxeles.

La propiedad _xmouse (coordenadas x del mouse ) Esta propiedad es de solo lectura y devuelve las coordenadas del puntero del mouse.

Sintaxis

valor=NombredeInstancia ._xmouse;

Donde valor representa un número en píxeles donde se encuentra el mouse en la posición de la

coordenada x.

Page 28: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

28 Docente: Aldo Salinas Encinas email: [email protected]

La propiedad _ymouse (coordenadas y del mouse ) Esta propiedad es de solo lectura y devuelve las coordenadas del puntero del mouse.

Sintaxis

valor=NombredeInstancia ._ymouse;

Donde valor representa un número en píxeles donde se encuentra el mouse en la posición de la

coordenada y.

La propiedad _height (altura ) Esta propiedad establece, recupera y modifica el alto de un clip de película.

Sintaxis

NombredeInstancia ._height; //para recuperar

NombredeInstancia ._height= valor;

Donde valor representa un número en píxeles que se establecerá para modificar el alto de un clip de

película.

La propiedad _width (ancho ) Esta propiedad establece, recupera y modifica el ancho de un clip de película.

Sintaxis

NombredeInstancia ._width; //para recuperar

NombredeInstancia ._width= valor;

Donde valor representa un número en píxeles que se establecerá para modificar el ancho de un clip

de película.

La propiedad _visible (visibilidad ) Esta propiedad permite manipular o conocer la visibilidad de un clip de película.

Sintaxis

NombredeInstancia ._visible= valor;

Donde valor representa un valor booleano, si el false el clip queda oculto, si es true (por defecto) el

clip esta visible.

La propiedad _framesloaded. Esta propiedad permite estableces si un determinado fotograma ya ha sido cargado.

Sintaxis

valor =_framesloaded; //para la película principal

valor= NombredeInstancia ._framesloaded;

Donde valor representa el número de fotogramas que se han cargado en un momento determinado.

Page 29: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

29 Docente: Aldo Salinas Encinas email: [email protected]

La propiedad _totalframes. Esta propiedad devuelve el número de fotogramas de un clip, esta propiedad es de solo lectura.

Sintaxis

valor =_framesloaded; //para la película principal

valor= NombredeInstancia ._framesloaded;

Donde valor representa el número total de fotogramas que se necesitan para ser cargado el clip de

película determinado.

Ejemplos

(colocar los ejemplos desarrollados desde la página 112 hasta la página 117)

getBytesLoaded()

Devuelve el número de bytes que se han cargado (reproducido sin interrupción) para el clip de

película.

Sintaxis

Objeto.getBytesLoaded();

Donde objeto es el que se va ha indicar el número de bytes cargados.

GetBytesTotal()

Devuelve el tamaño en bytes del clip de película.

Sintaxis

Objeto.getBytesTotal();

Donde objeto es el que se va ha indicar el número de bytes cargados.

ifFrameLoaded() Esta función comprueba si el contenido de un fotograma específico está disponible localmente.

Utilice la función ifFrameLoaded para comenzar a reproducir una animación sencilla mientras se

descarga el resto del archivo SWF en un equipo local. También puede utilizar la propiedad

framesloaded comprobar el progreso de descarga de un archivo SWF externo. La diferencia entre

framesloaded y ifFrameLoaded radica en que_ framesloaded permite añadir sentencias if o else

personalizadas.

Sintaxis

ifFrameLoaded([escena,] frame) {

sentencia(s);

}

Parámetros

Page 30: Creando Script Con Action Script

Creando Script con ActionScript 2.0 [Adobe Flash CS2]

30 Docente: Aldo Salinas Encinas email: [email protected]

escena, una cadena opcional que identifica el nombre de la escena que se va a cargar.

frame es necesario cargar el número de fotograma o la etiqueta de fotograma antes de ejecutar

la sentencia siguiente.

sentencia(s), las instrucciones que se deben ejecutar si se carga el fotograma, o escena y fotograma.

Ejemplo

En este caso vamos a crear una animación de barra de precarga dentro de un movie clip que dure

exactamente 100 frames, así cada frame será puesto en pantalla de acuerdo al porcentaje de carga,

en nuestro caso nos ha quedado así:

He creado entonces una animación dentro de un movie clip cuyo

largo seran 100 frames; en mi caso es una barrita que se va llenando

hasta llegar a 100, como el ejemplo tradicional

La pongo dentro de un movie clip para dejar lo mas despejada la

línea de tiempo principal, además, así será mas fácil controlar sus

cambios; para terminar le pongo a ese movie clip el nombre

barra_mc.

Ahora solo falta ponerle un nombre a nuestro Campo de Texto

(texto dinámico), lo llamaremos porcentaje_txt, este nombre lo

colocan en la barra de propiedades seleccionando el campo de texto, en un área que dice <Instance

Name>.