ActionScript Permite agregar interactividad a una película cuando se presionan los botones
del ratón y las teclas. El panel Acciones se utiliza en 2 modos: a) Modo Normal.- Los scripts se crean eligiendo las opciones
de los menús y las listas. Con el. y permite asignar código a los fotogramas,
a los eventos de botones
y eventos de los clip de película,
Para
revisar la sintaxis, utilice uno de los procedimientos siguientes:
Para establecer las opciones del estilo de formato de Flash, utilice
uno de los procedimientos siguientes:
Utilización del panel Referencia Puede utilizar
el panel Referencia para ver descripciones detalladas de las acciones
que se muestran en la caja de herramientas Acciones. El panel también
muestra un código de ejemplo, que puede copiarse y pegarse en el panel
Script del panel Acciones. También puede ajustar el tamaño de fuente
e imprimir el contenido del panel Referencia.
Utilización
de los consejos de códigos Cuando se trabaja en el panel Acciones, Flash puede detectar la acción
que se está introduciendo y puede mostrar un consejo sobre códigos (información sobre herramientas
que contiene la sintaxis completa de esa acción o un menú emergente
que muestra los posibles nombres de métodos o de propiedades). En
modo Experto, aparecen consejos sobre código para parámetros, propiedades
y eventos cuando se introducen ciertos caracteres en el panel Script.
En modo Normal, al seleccionar el cuadro Expresión, aparecen consejos
sobre códigos para parámetros y propiedades (pero no para eventos)
en los cuadros de texto de parámetros.
Muchos objetos ActionScript obligan a crear una nueva instancia del objeto
a fin de utilizar sus métodos y propiedades. Por ejemplo, en el código
El método Si desea que el panel Acciones muestre consejos sobre códigos de instancias
de objeto, debe agregar un sufijo de clase
especial a cada nombre de instancia. Por ejemplo, para
ver consejos sobre códigos de la clase MovieClip, debe incluir en
el nombre de todos los objetos MovieClip el sufijo Circle_mc.gotoAndPlay(1);
Sqaure_mc.stop();
Block_mc.duplicateMovieClip("NewBlock_mc", 100);
En la tabla siguiente se muestran
los sufijos y sus clases de objeto correspondientes:
También puede utilizar comentarios de ActionScript para especificar una
clase de objeto para los consejos sobre códigos. En el ejemplo siguiente
se indica a ActionScript que la clase de la instancia // Object theObject; // Array theArray; // MovieClip mc;
Asignación de acciones a fotogramas Para que una película lleve a cabo una acción cuando la cabeza lectora
llegue a un fotograma de la línea de tiempo, debe asignar una acción
al fotograma. Por ejemplo, para crear un
bucle en la línea de tiempo entre los fotogramas 20 y 10,
debe agregar una acción al fotograma 20 que envíe la cabeza lectora
al fotograma 10, como se muestra a continuación: gotoAndPlay (10);
Algunas acciones se asignan normalmente al primer fotograma
de una película:
Asignación
de acciones a un botón Para que una película lleve a cabo una acción cuando se hace clic en un
botón o se sitúa el cursor sobre él, debe asignar una acción a dicho
botón. Es necesario asignar acciones a una instancia del botón; las
demás instancias del símbolo no se ven afectadas. Para probar una acción de botón:
Al asignar una acción a un clip de película, puede hacer que una película
realice una acción cuando el clip de película se carga o recibe datos.
Debe asignar acciones a una instancia del clip de película; las demás
instancias del símbolo no se ven afectadas. Para probar una acción de clip de película: ActionScript tiene sus propias reglas sintácticas, palabras
clave, proporciona operadores y permite utilizar variables
para almacenar y recuperar información. ActionScript incluye
funciones y objetos incorporados y permite crear los suyos propios.
Cuando haya determinado lo que desea, puede utilizar el código ActionScript
que necesite para realizar las tareas. Para lograr que los scripts se comporten del modo deseado se tiene que invertir una cantidad
considerable de tiempo, ya que en ocasiones es necesario pasar más
de una vez por el ciclo de escritura, pruebas
y depuración. Creación de scripts orientados a objetos La información se organiza en grupos denominados clases. Puede crear
varias instancias de una clase, denominadas objetos,
para utilizarlas en los scripts. Puede crear sus propias clases y
utilizar las clases incorporadas de ActionScript. Estas
últimas se encuentran en la carpeta Objetos del panel Acciones. Al crear una clase, es preciso definir todas las propiedades (características)
y métodos
(comportamientos) de cada objeto que ésta crea, igual como se definen los
objetos en el mundo real. Por ejemplo, una persona tiene determinadas
propiedades, como el sexo, la altura y
el color de pelo, y determinados métodos, como hablar,
caminar y lanzar. En este ejemplo, "persona"
sería una clase, y cada persona sería un objeto o una instancia
de dicha clase. Los objetos en ActionScript pueden ser meros contenedores de datos, o estar
representados gráficamente en el escenario como clips de película, botones o campos de texto. Todos los clips de película son instancias de la clase incorporada MovieClip, y todos los botones son instancias de
la clase incorporada Button.
Cada instancia de clip de película contiene todas las propiedades
(por ejemplo, Para definir una clase, debe crear una función especial denominada función constructora (constructor). Las clases incorporadas
tienen funciones constructoras incorporadas. Por ejemplo, si se desea obtener información acerca de un ciclista que aparece
en la película, puede crearse una función constructora, function Ciclista(t, d) {
this.time = t;
this.distance = d;
this.getSpeed = function() {return this.time / this.distance;};
}
En este ejemplo, se crea una
función que necesita dos elementos de información, o parámetros, para
realizar su tarea: emma = new Ciclista(30, 5);
hamish = new Ciclista(40, 5);
En la creación de scripts orientados
a objetos, las clases pueden recibir propiedades y métodos de ellas
mismas, de acuerdo a un orden determinado; esta función se denomina
herencia. La herencia puede utilizarse
para ampliar o redefinir las propiedades y métodos de una clase.
Una clase que hereda propiedades y métodos de otra clase recibe el
nombre de subclase. Una clase que pasa propiedades y métodos a otra
clase recibe el nombre de superclase.
Una clase puede ser a la vez subclase y superclase.
En el panel Acciones, las clases incorporadas de ActionScript se denominan
objetos. Un objeto es como una instancia
de clase que permite acceder a un tipo determinado de información.
Un objeto Date, por ejemplo, tiene métodos que permiten
leer información del reloj del sistema (por ejemplo, Los clips de película son los objetos más importantes de una
película Flash, puesto que son minipelículas Flash
y contienen líneas de tiempo que se ejecutan en forma independiente.
Por ejemplo, si la línea de tiempo principal sólo tiene un fotograma,
y un clip de película de dicho fotograma tiene diez fotogramas, cuando
se reproduzca la película principal se reproducirán todos los fotogramas
del clip de película. Esto permite que cada instancia de un clip de
película se comporte como objeto autónomo con capacidad de comunicación
con los demás. Cada instancia de un clip de película tiene un nombre exclusivo,
de modo que es posible controlarlas a través de acciones. Por ejemplo,
puede tener varias instancias de una etapa (por ejemplo,
Durante la reproducción de una
película también se pueden duplicar, eliminar y arrastrar instancias
de uno o varios clips de película mediante su nombre de instancia.
Los clips de película poseen propiedades cuyos valores pueden establecerse
y recuperarse en forma dinámica mediante ActionScript. La modificación
y lectura de estas propiedades puede cambiar el aspecto e identidad
de un clip de película y es la clave para crear la interacción. Por
ejemplo, el siguiente script utiliza la acción setProperty("navigationBar", _alpha, 10);
Los botones y los campos de
texto de una película Flash también son objetos que pueden manipularse
con ActionScript. Flujo de los scripts Flash ejecuta las sentencias de ActionScript empezando por la primera y
continuando secuencialmente hasta llegar a la última o a una sentencia
que indique una bifurcación a otro script u otra parte del mismo script.
Algunas de las acciones que envían a ActionScript a un punto que no es
la sentencia siguiente son las sentencias
Gráfico de flujo de la acción
if (myNumber <= 10) {
alert = "El número es menor o igual que 10";
}
También se pueden incluir sentencias
if (number <= 10) {
alert = "El número es menor o igual que 10";
} else {
alert = "El número es mayor que 10";
}
Los bucles repiten una acción
un determinado número de veces, o hasta que se cumpla cierta condición.
En el siguiente ejemplo se duplica cinco veces un clip de película:
i = 0;
do {
duplicateMovieClip ("myMovieClip","newMovieClip" + i, i);
newName = eval("newMovieClip" + i);
setProperty(newName,_x,getProperty("myMovieClip",_x)+(i*5));
i = i + 1;
} while (i <= 5);
Control de la ejecución de ActionScript Los scripts asociados a un fotograma se ejecutan
cuando la cabeza lectora entra en el fotograma en cuestión. No obstante,
es posible que los scripts que se asocian
al primer fotograma de una película se comporten de forma distinta
de los que se asocian a los fotogramas subsiguientes, porque
el primer fotograma de una película se genera de forma gradual (es
decir, los objetos se representan en el escenario a medida que se
descargan en Flash Player), y esto puede afectar a las acciones que
se ejecutan. Todos los fotogramas que aparecen después del primer
fotograma se generan de una vez cuando todos los objetos del fotograma
están disponibles. Los scripts asociados a los clips de película o a los botones
se ejecutan cuando se produce un evento. Un evento representa algún tipo de actividad en la
película, como el movimiento del ratón, la pulsación de una tecla
o la carga de un clip de película. Puede utilizar ActionScript para
saber cuándo se producen dichos eventos y ejecutar scripts determinados
en función del evento. Las acciones asociadas a un botón o a un clip de película
están encerradas en acciones especiales denominadas controladores. Las acciones La acción Los eventos de los clips de película y los eventos de botón también pueden
controlarse mediante los métodos de los objetos MovieClip y Button.
Debe definir una opción y asignarla al método de controlador de eventos;
la función se ejecuta cuando se produce el evento. Los
métodos de evento también pueden utilizarse para controlar los eventos
de los clips de película creados de forma dinámica. Los
eventos de método también son útiles para controlar todos los eventos
de una película en un script: no es necesario asociar el script al
objeto cuyo evento se está controlando. Por ejemplo, si tiene un botón en el escenario y utiliza el panel Acciones
para agregar una acción on (release) {
trace("Ha hecho clic aquí");
}
Si lo desea, puede utilizar
un método para crear el mismo efecto, como se muestra a continuación:
myMovieClip.onRelease = function() {
trace("Ha hecho clic aquí"); }
En la tabla siguiente se indican
los controladores de eventos de botón y
los métodos correspondientes:
En la tabla siguiente se enumeran
los métodos y los controladores de eventos
de clips de película:
ActionScript también permite
controlar eventos para los campos de texto
y los objetos de ActionScript.
Terminología
de ActionScript Al igual que cualquier lenguaje de creación de scripts, ActionScript utiliza
su propia terminología. A continuación se presenta una lista de términos
importantes de ActionScript. Acción:
sentencia que indica a una película que debe llevar a cabo alguna
acción durante su reproducción. Por ejemplo, Booleano: un valor booleano es un valor verdadero (true) o falso (false). Clase:
tipo de datos que puede emplearse para definir un nuevo tipo de objeto.
Para definir una clase, debe crearse una función constructora. Constante: elemento cuyo valor no cambia. Por ejemplo, la constante Constructor: función que se utiliza para definir las propiedades y métodos de una clase.
Por ejemplo, el siguiente código crea un nueva clase Circle mediante
una función constructora denominada function Circle(x, y, radius){
this.x = x;
this.y = y; this.radius = radius; }
Tipo de datos: conjunto de valores y las operaciones
que pueden realizarse sobre ellos. Los tipos de datos de ActionScript
son: cadena, número, valor booleano, objeto,
clip de película, función, nulo y no definido.
Evento: acción que tiene lugar durante
la reproducción de una película. Por ejemplo, cuando se carga un clip
de película se generan diferentes eventos: la cabeza lectora accede
a un fotograma, el usuario hace clic en un botón o clip de película,
o el usuario introduce información mediante el teclado.
Controlador de eventos: acción especial que gestiona
eventos como
Expresión: cualquier combinación válida
de símbolos de ActionScript que representan un valor. Una expresión
está formada por operadores y operandos.
En la expresión
Función: bloque de código reutilizable
que acepta parámetros y puede devolver un valor. Por ejemplo, la función
Identificador: nombre que se utiliza para
identificar una variable, una propiedad,
un objeto, una función o un método. El primer carácter
debe ser una letra, un carácter de subrayado (
Instancia: objeto que pertenece a una
determinada clase. Cada instancia de una clase contiene todas las
propiedades y métodos de dicha clase. Todos los clips de película
son instancias con propiedades (por ejemplo, Los nombres de instancia
son nombres exclusivos que permiten dirigir instancias de clips de
película a través de scripts. Utilice el inspector de propiedades
para asignar nombres de instancia a las instancias del escenario.
Por ejemplo, un símbolo maestro de la biblioteca podría denominarse
_root.scorePlayer1.score += 1;
_root.scorePlayer2.score -= 1;
Palabra clave: palabra reservada que tiene
un significado especial. Por ejemplo,
Método: función que ha sido asignada
a un objeto. Una vez que se ha asignado una función, se la puede llamar
como método de ese objeto. Por ejemplo, en el código siguiente,
function reset(){
this.x_pos = 0;
this.x_pos = 0;
}
controller.clear = reset;
controller.clear();
Objeto: conjunto de propiedades y métodos;
cada objeto tiene su propio nombre y es una instancia de una clase
determinada. Los objetos incorporados están predefinidos en el lenguaje
ActionScript. Por ejemplo, el objeto incorporado Date ofrece información
procedente del reloj del sistema.
Operador: término que calcula un nuevo
valor a partir de uno o más valores. Por ejemplo, el operador suma
(
Parámetro: (denominado también argumento) un marcador de posición que permite pasar valores
a las funciones. La siguiente función
function welcome(firstName, hobby) {
welcomeText = "Hola, " + firstName + "Veo que te gusta " + hobby; }
Propiedad: atributo que define un objeto.
Por ejemplo,
Ruta de destino: dirección jerárquica de nombres
de instancias de clips de película, variables y objetos de una película.
El nombre de una instancia de clip de película se asigna en el inspector
de propiedades del clip de película. La
línea de tiempo principal siempre se denomina
_root.stereoControl.volume
Variable: identificador que almacena
valores de cualquier tipo de datos. Las variables pueden crearse,
modificarse y actualizarse. Los valores almacenados en una variable
pueden recuperarse para ser utilizados en scripts. En el siguiente
ejemplo, los identificadores situados a la izquierda de los signos
igual son variables:
x = 5;
name = "Lolo";
customer.address = "66 7th Street";
c = new Color(mcinstanceName);
Análisis
de un script de ejemplo En la película de muestra zapper.swf, cuando
un usuario arrastra el insecto hasta la toma eléctrica, el insecto
cae y la toma empieza a vibrar. La línea de tiempo principal
sólo tiene un fotograma y contiene tres objetos: la mariquita,
la toma eléctrica y un botón de restablecimiento. Cada
uno de estos objetos es una instancia del clip de película.
Panel Acciones con el script
asociado a la instancia El nombre de instancia
del insecto es Existen dos controladores onClipEvent(load) Se definen dos variables, onClipEvent (load) {
initx = _x;
inity = _y;
_root.Reset.onRelease = function() {
zapped = false;
_x = initx;
_y = inity;
_alpha = 100
_rotation = 0; };
}
onClipEvent(enterFrame) Una sentencia Si el método Si el método
Existen dos controladores
on(press) Una acción
on (press) {
this.startDrag();
}
on(release) Una acción
on (release) {
stopDrag();
}
Palabras clave ActionScript reserva palabras para usarlas específicamente en su lenguaje
de programación, de modo que no se pueden utilizar como nombres de
variables, de funciones ni de etiquetas. En la siguiente tabla se
muestra una lista de las palabras clave de ActionScript:
Constantes Una constante es una propiedad cuyo valor nunca cambia. Por ejemplo, las constantes if(Key.getCode() == Key.ENTER) {
alert = "¿Está listo para jugar?"; controlMC.gotoAndStop(5);
}
Tipos
de datos Un tipo de datos describe la clase de información
que puede contener una variable o el elemento de ActionScript.
Existen dos clases de tipos de datos: primitivos
y de referencia. Los tipos de datos primitivos (cadenas, números y booleanos) tienen un valor constante
y, por consiguiente, pueden contener el valor real del elemento que
representan. Los tipos de datos de referencia (clip
de película y objeto) tienen
valores que pueden cambiar y, por consiguiente, contienen referencias
al valor real del elemento. Las variables que contienen datos de tipo
primitivo se comportan de modo diferente en ciertas situaciones que
las que contienen datos de tipo referencia. También existen dos tipos
de datos especiales: nulos y no definidos. Cada tipo de datos tiene sus propias reglas y está definido en los temas
siguientes:
Cadena Una cadena es una secuencia de caracteres tales como letras, números y
signos de puntuación. Las cadenas se introducen en una sentencia de
ActionScript entre comillas simples o dobles. Las cadenas se tratan
como caracteres, no como variables. Por ejemplo, en la siguiente sentencia,
favoriteBand = "L7";
Puede utilizar el operador de
suma (+
greeting = "Bienvenido," + firstName;
Aunque ActionScript no distingue
entre mayúsculas y minúsculas en las referencias a variables, los
nombres de instancia y las etiquetas de fotogramas, en las cadenas
literales sí las distingue. Por ejemplo, las dos sentencias siguientes
colocan texto diferente en las variables de campo de texto especificadas,
ya que
invoice.display = "Hello";
invoice.display = "HELLO";
Para incluir un signo
de interrogación en una cadena, ponga delante el carácter de barra
inversa (\).
A esto se le llama "utilizar una
secuencia de escape" en un carácter. Existen otros
caracteres que no pueden representarse en ActionScript, a menos que
se utilice una secuencia de escape especial. La siguiente tabla muestra
todos los caracteres de escape de ActionScript:
Número El tipo de datos numérico es un número de coma flotante de doble precisión.
Puede manipular los números mediante los operadores aritméticos de
suma ( Math.sqrt(100);
Booleano Un valor Booleano puede ser true o false. ActionScript también convierte
los valores onClipEvent(enterFrame) {
if (userName == true && password == true){
play(); }
}
Objeto Un objeto es un conjunto de propiedades. Cada propiedad tiene un nombre
y un valor. El valor de la propiedad puede ser cualquier tipo de datos
de Flash, incluso el tipo de datos de objeto. Esto permite organizar
los objetos unos dentro de otros o "anidarlos". Para especificar
objetos y sus propiedades, debe utilizar el operador punto ( employee.weeklyStats.hoursWorked
Puede utilizar los objetos incorporados
de ActionScript para acceder y manipular tipos de información específicos.
Por ejemplo, el objeto Math
tiene métodos que realizan operaciones matemáticas con los números
que le pasan. En este ejemplo se utiliza el método
squareRoot = Math.sqrt(100);
El objeto MovieClip de ActionScript tiene métodos que permiten controlar
las instancias del símbolo de clip de película en el escenario. En
este ejemplo se utilizan los métodos
mcInstanceName.play();
mc2InstanceName.nextFrame();
También puede crear sus propios
objetos para organizar la información de la película. Para agregar
interacción a una película mediante ActionScript, necesitará distintos
datos: por ejemplo, puede necesitar el nombre
del usuario, la velocidad de una pelota, el
nombre de los artículos de una canasta de compras,
el número de fotogramas que se han cargado,
el código postal del usuario, o el
nombre de la última tecla que se ha presionado. La creación
de objetos personalizados permite organizar esta información en grupos,
simplificando la creación de scripts y su reutilización.
Clip de película Los clips de película son símbolos que pueden
contener y ejecutar una animación en una película Flash.
Son el único tipo de datos que hace referencia a elementos
gráficos. El tipo de datos de clip de película permite
controlar los símbolos del clip de película mediante los métodos del
objeto MovieClip. Puede llamar a los métodos mediante el operador
punto ( myClip.startDrag(true);
parentClip.getURL("http://www.macromedia.com/support/" + product);
Nulo El tipo de datos nulo tiene únicamente un valor:
No definido El tipo de datos no definido tiene un valor, Variables Una variable es un contenedor que almacena información. El contenedor en sí es siempre
el mismo, pero el contenido puede cambiar. La modificación del valor
de una variable a medida que se reproduce la película permite registrar
y guardar información sobre las acciones del usuario, registrar valores
que se modifican conforme se reproduce la película, o comprobar si
una condición es verdadera o falsa. Cuando se define una variable por primera vez, se recomienda asignarle
un valor conocido. Esta acción se conoce como inicializar
una variable y suele realizarse en el primer fotograma de la
película. Inicializar las variables permite realizar un seguimiento
y comparar el valor de la variable a medida que se reproduce la película.
Las variables pueden contener cualquier tipo de datos: número, cadena,
booleano, objeto o clip de película. El tipo de datos que contiene
una variable afecta al modo en el que cambia el valor de la variable
cuando se le asigna en un script. El tipo de información normal que suele guardarse en una variable incluye
un URL, un nombre de usuario, el resultado de una operación matemática,
el número de veces que ocurre un evento, o si se ha hecho clic en
un botón. Cada película e instancia de clip de película tiene su propio
conjunto de variables, cada una de ellas con su prop A continuación se muestra un ejemplo en el que se pasa un valor por referencia: var myArray = ["tom", "dick"];
var newArray = myArray;
myArray[1] = "jack";
trace(newArray);
function zeroArray (theArray){ var i;
for (i=0; i < theArray.length; i++) {
theArray[i] = 0;
}
}
var myArray = new Array();
myArray[0] = 1;
myArray[1] = 2;
myArray[2] = 3;
zeroArray(myArray);
La función Operadores numéricos Los operadores numéricos realizan sumas, restas, multiplicaciones, divisiones
y otras operaciones aritméticas. El uso más común del operador de incremento es if (++age >= 30)
En el ejemplo siguiente, se
aumenta el valor de
if (age++ >= 30)
En la tabla siguiente se enumeran
los operadores numéricos de ActionScript:
|