Operadores de comparación
Los operadores de comparación comparan los valores de las expresiones y
devuelven un valor Booleano (true o false). Estos operadores se utilizan con mayor frecuencia
en los bucles y en las sentencias condicionales. En el ejemplo siguiente, si la
variable score es 100, se carga un película
determinada; en caso contrario, se carga una película diferente:
if (score > 100){ loadMovieNum("winner.swf", 5);} else { loadMovieNum("loser.swf", 5);}
En la tabla siguiente se enumeran los operadores de
comparación de ActionScript:
|
Operador |
Operación
realizada |
|
|
Menor que |
|
|
Mayor que |
|
|
Menor o igual que |
|
|
Menor o igual que |
Operadores lógicos
Los operadores lógicos comparan los valores booleanos (true y false) y devuelven un tercer valor
booleano. Por ejemplo, si ambos operandos son true, el operador lógico AND (&&) devuelve true. Si uno o ambos operandos
son true, el operador lógico OR (||) devuelve true. Los operadores lógicos se
utilizan con frecuencia junto con los operadores de comparación para determinar
la condición de una acción if. Por ejemplo, en el siguiente script, si ambas
expresiones son verdaderas, la acción if se ejecutará:
if (i > 10 && _framesloaded > 50){play();
}
En la tabla siguiente se enumeran los operadores lógicos
de ActionScript:
|
Operador |
Operación
realizada |
|
|
AND lógico |
|
|
OR lógico |
|
|
NOT lógico |
Utilización
de acciones
Las acciones son sentencias de
ActionScript o comandos. Si se asignan varias acciones al mismo fotograma u
objeto se crea un script. Las acciones pueden actuar independientemente unas de
otras, como se muestra en las siguientes sentencias:
mc1.swapDepths(mc2);gotoAndPlay(15);
También puede anidar acciones
utilizando una acción dentro de otra, lo que permite que las acciones afecten unas
a las otras. En el siguiente ejemplo, la acción if indica a la acción gotoAndPlay cuándo debe ejecutarse:
if (i >= 25) { gotoAndPlay(10);}
Las acciones pueden mover la
cabeza lectora en la línea de tiempo (gotoAndPlay), controlar el flujo de un script creando
bucles (do
while) o
lógica condicional (if), o crear nuevas funciones y variables (function, setVariable).
En la siguiente tabla se muestra una lista de las acciones de ActionScript:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (password == null || email == null) { gotoAndStop("reject");} else if (password == userID){gotoAndPlay("startMovie");
}
Utilización
de funciones incorporadas
Una función es un bloque de código ActionScript que puede volver a
utilizarse en cualquier parte de una película. Si pasa valores a una función
como parámetros, la función actuará sobre esos valores. Una función también
puede devolver valores.
Flash incorpora funciones que permiten acceder a un tipo determinado de
información y realizar determinadas tareas, tales como obtener el número de
versión de Flash Player que alberga la película (getVersion). Las funciones que
pertenecen a un objeto se denominan métodos. Las
funciones que no pertenecen a un objeto se denominan funciones
de nivel superior y se encuentran en la categoría Funciones del panel
Acciones.
Cada función tiene sus propias características y algunas necesitan que
se le pasen determinados valores. Si se pasan a la función más argumentos de
los que necesita, se pasarán por alto los valores. Si no se le pasa un
argumento necesario, los argumentos vacíos se asignarán al tipo de datos undefined, que puede causar errores
cuando exporte un script. Para llamar a una función, ésta debe encontrase en un
fotograma al que haya llegado la cabeza lectora.
En la tabla siguiente se indican las funciones de nivel superior
incorporadas en Flash.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definición de una función
Las funciones, al igual que las variables, están asociadas a la línea de
tiempo del clip de película que las define, y para llamarlas debe utilizarse
una ruta de destino. Al igual que con las variables, puede utilizarse el
identificador _global para declarar una función
global que está disponible para todas las líneas de tiempo sin utilizar una
ruta de destino. Para definir una función global, debe anteponer el
identificador _global al nombre de la función,
como se muestra a continuación:
_global.myFunction = function (x) {
return (x*2)+3;
}
Para definir una función de
línea de tiempo, utilice la acción function seguida del nombre de la función, los parámetros que
va a pasar a la función y las sentencias de ActionScript que indican qué acción
lleva a cabo la función.
A continuación se muestra una
función denominada areaOfCircle
con el
argumento radius:
function areaOfCircle(radius) { return Math.PI * radius * radius;}
Nota: la palabra clave this, utilizada en el cuerpo de
una función, hace referencia al clip de película al que pertenece la función.
También puede definir una
función creando un literal de función, es decir, una
función sin nombre que se declara en una expresión, no en una sentencia. Puede
utilizar la expresión literal de una función para definir una función, para
devolver su valor y asignarlo a una variable en una expresión, como se muestra
a continuación:
area = (function() {return Math.PI * radius *radius;})(5); Cuando se vuelve a definir una función, la nueva definición sustituye a la definición anterior.
Devolución de valores de una función
Puede utilizar la acción return para devolver valores desde las funciones. La acción
return detiene la función y la
sustituye por el valor de la acción return. Si Flash no encuentra una acción return antes del final de una
función, devolverá una cadena vacía. Por ejemplo, la siguiente función devuelve
el cuadrado del parámetro x:
function sqr(x) {
return x * x;}
Algunas funciones realizan
una serie de tareas sin devolver un valor. Por ejemplo, la siguiente función
inicializa una serie de variables globales:
function initialize() { boat_x = _root.boat._x; boat_y = _root.boat._y; car_x = _root.car._x;car_y = _root.car._y;
}
Información general sobre
los clips de película y los botones
Un clip de película es como una minipelícula de Macromedia Flash MX: tiene su propia línea de tiempo y sus propiedades.
Un símbolo de clip de película de la biblioteca puede utilizarse varias veces
en un documento de Flash; cada vez que se utiliza un clip se lo denomina instancia del clip de película. Para distinguir una
instancia de otra, es necesario asignar un nombre a cada instancia. Las
instancias de clip de película pueden anidarse unas dentro de otras para crear
una jerarquía.
Cada clip de película tiene una posición en el árbol
jerárquico de líneas de tiempo que recibe el nombre de lista de visualización. Las películas que se cargan
en Flash Player con la acción loadMovie también tienen líneas de tiempo independientes y una
posición en la lista de visualización. Puede utilizar ActionScript para enviar
mensajes entre clips de película para que puedan controlarse entre sí. Por
ejemplo, una acción en el último fotograma de la línea de tiempo de un clip de
película podría indicar a otro clip de película que se reproduzca.
Puede controlar clips de película mediante las acciones y los
métodos del objeto MovieClip. Para controlar un clip de película, debe referirse
al clip utilizando una ruta de destino, que indica su
ubicación exclusiva en la lista de visualización. Puede
utilizar los métodos del objeto MovieClip para arrastrar un clip de película,
agregar de forma dinámica un clip de película a un
documento, convertir un clip de película en
una máscara y dibujar líneas y rellenos en el
escenario.
Al igual que las instancias de clip de película, cada instancia de botón es un objeto de ActionScript con sus
propios métodos y propiedades. Puede asignar un nombre de instancia
a un botón y manipularlo con ActionScript. Cada clip de película y botón de un
documento de Flash son objetos con propiedades y métodos que se pueden cambiar
a través de ActionScript para crear animaciones no
lineales complejas e interacciones avanzadas.
Líneas
de tiempo múltiples
Flash Player tiene un orden de apilamiento con varios niveles. Todas las
películas Flash tienen una línea de tiempo principal situada en el nivel 0 en Flash Player. Puede utilizar la acción loadMovie para cargar otras
películas Flash (archivos SWF) en Flash Player en distintos niveles. Si carga películas
en niveles superiores al nivel 0, las películas se colocarán una encima de
otra, como si se tratara de dibujos en papel transparente; cuando no haya
contenido en el escenario, podrá ver el contenido de los niveles inferiores a
través de éste. Si carga una película en el nivel 0,
ésta sustituirá la línea de tiempo principal. Cada película cargada
en un nivel de Flash Player tiene su propia línea de tiempo.
Las películas Flash de cualquier nivel pueden tener instancias de clips
de película en sus líneas de tiempo. Cada instancia
de clip de película también tiene una línea de tiempo y puede contener otros
clips de película que también tienen líneas de tiempo. En Flash
Player, los niveles y las líneas de tiempo están ordenados jerárquicamente para
que pueda organizar y controlar fácilmente los objetos de la película.

Jerarquía de niveles y de
clips de película de Flash Player
En Flash, esta jerarquía de niveles y de clips de película recibe el
nombre de lista de visualización. Si realiza tareas de
edición en Flash, puede ver la lista de visualización en el explorador de
películas; al reproducir la película en modo de prueba, en el reproductor
autónomo de Flash o un navegador Web, podrá ver la lista de visualización en el
depurador.

El explorador de películas muestra la lista de
visualización.
Las líneas de tiempo guardan una relación específica entre ellas en
función de su ubicación en la lista de visualización. Una línea de tiempo secundaria
anidada dentro de otra línea de tiempo se verá afectada por los cambios
realizados en la línea de tiempo principal. Por ejemplo, si portland es un elemento secundario de
oregon y se cambia la propiedad _xscale de oregon, portland también cambiará de escala.
Las líneas de tiempo también se pueden enviar mensajes entre sí. Por
ejemplo, una acción del último fotograma de un clip de película puede indicar a
otro clip de película que se reproduzca.
Jerarquía de clips de película
Si coloca una instancia de clip de película en la línea de tiempo de
otro clip de película, el clip de película colocado es el secundario
y el otro clip de película es el principal. La
instancia principal contiene la instancia secundaria. La línea de tiempo raíz
de cada nivel es el elemento principal de todos los clips de película de su
nivel y, puesto que es la línea de tiempo situada más arriba, no tiene ningún
elemento principal.
Las relaciones principal-secundario de los clips de película son
jerárquicas. Para entender esta jerarquía, tome como
ejemplo la jerarquía de un equipo: la unidad de disco duro tiene un directorio raíz (o carpeta) y subdirectorios. El directorio raíz es análogo a la línea de tiempo principal
de una película Flash: es el nivel principal de todo lo demás. Los
subdirectorios son análogos a los clips de película.
Puede utilizar la jerarquía de clips de película Flash para organizar
los objetos visuales relacionados. Cualquier cambio que realice en un clip de
película principal también se llevará a cabo en sus clips secundarios.
Por ejemplo, puede crear una película Flash
con un coche que se mueve por el escenario. Utilice un símbolo de
clip de película para representar el coche y establecer una interpolación de
movimiento para moverlo a través del escenario.

Una interpolación de movimiento mueve el clip de
película del coche en la línea de tiempo principal.
Si desea agregar ruedas que giren, cree un clip de película para una
rueda del coche y dos instancias de este clip de película, denominadas frontWheel y backWheel. A continuación, coloque las ruedas en la línea de tiempo del clip de película
del coche, no en la línea de tiempo principal. Al ser instancias secundarias de car, frontWheel y backWheel se ven afectadas
por los cambios realizados en car, lo que significa que se
moverán con el coche a medida que éste se interpole a través del escenario.

Las instancias de rueda se colocan en la línea de
tiempo del clip de película principal del coche
Para hacer que ambas instancias giren, debe establecer una
interpolación de movimiento que gire el símbolo de rueda. Incluso después de
haber cambiado frontWheel y backWheel, éstas seguirán viéndose
afectadas por la interpolación del clip de película principal, car; las ruedas giran, pero también
se mueven con el clip de película principal car por el escenario.

Símbolo de rueda en modo de edición de símbolos
Rutas de destino absolutas y relativas
Puede utilizar acciones para enviar mensajes de una línea de
tiempo a otra.
La línea de tiempo que contiene la acción se denomina línea de tiempo de control y la línea de
tiempo que recibe la acción se denomina línea de tiempo de destino.
Por ejemplo, puede haber una acción en el último fotograma de una línea de
tiempo que indique a otra línea de tiempo que se reproduzca. Para hacer referencia a una línea de tiempo de destino,
debe utilizar una ruta de destino que indique la
ubicación de un clip de película en la lista de visualización.

Lista de visualización de clips de película en modo de
edición
La jerarquía de los clips de película de esta lista de visualización es
la siguiente:
_level0 westCoast california sanfrancisco bakersfield oregon portland ashlandwashington
olympia ellensburg
Al igual que en un servidor
Web, puede hacer referencia a cada línea de tiempo de Flash de dos maneras
distintas: con una ruta absoluta o con una ruta
relativa. La ruta absoluta de una instancia corresponde siempre a la
ruta completa de un nombre de nivel, independientemente de qué línea de tiempo
llame a la acción; por ejemplo, la ruta absoluta a la instancia california será _level0.westCoast.california. Una ruta relativa es
diferente cuando se llama desde diferentes ubicaciones; por ejemplo, la ruta
relativa para california desde sanfrancisco es _parent, pero desde portland, es _parent._parent.california.
Una ruta absoluta comienza con el nombre del
nivel en el que está cargada la película 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 california que hace referencia al clip
de película oregon puede utilizar la ruta
absoluta _root.westCoast.oregon.
La primera película que se va
a abrir en Flash Player se carga en el nivel 0.
Debe asignar un número de nivel a cada película que se cargue adicionalmente.
Si utiliza una referencia absoluta en ActionScript para hacer referencia a una
película cargada, utilice la sintaxis _levelX, siendo X el número de nivel
en el que está cargada la película. Por ejemplo, la primera película abierta en
Flash Player se llama _level0; una película cargada en el nivel 3 se llama _level3.
En el ejemplo siguiente, se
han cargado dos películas en el reproductor: TargetPaths.swf en el nivel 0 e
EastCoast.swf en el nivel 5. Los niveles están indicados en el depurador, con
el nivel 0 indicado como _root.

Para comunicarse entre
películas en diferentes niveles, debe utilizar el nombre de nivel en la ruta de
destino. Por ejemplo, la instancia portland se referiría a la instancia atlanta como se muestra a
continuación:
_level5.georgia.atlanta
Puede utilizar el alias _root para hacer
referencia a la línea de tiempo principal del nivel actual. Para la línea de tiempo
principal, el alias _root significa _level0 cuando se selecciona como
destino desde un clip que también está en _level0. Para una película cargada en _level5, _root es igual a _level5 cuando se selecciona como
destino desde un clip de película que también se encuentra en el nivel 5. Por
ejemplo, puesto que southcarolina y florida se han cargado en el mismo nivel, una acción llamada
desde la instancia southcarolina podría utilizar la ruta
absoluta siguiente para seleccionar la instancia florida como destino:
_root.eastCoast.florida
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 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.
En el ejemplo siguiente, cada
ciudad (charleston, atlanta y staugustine) es un nivel secundario de
una instancia de estado y cada estado (southcarolina, georgia y florida) es un nivel secundario de
la instancia eastCoast.

Una acción en la línea de
tiempo de la instancia charleston podría utilizar la ruta de destino siguiente para
seleccionar la instancia southcarolina como destino:
_parent
Para especificar la instancia
eastCoast como destino desde una
acción en charleston, podría utilizar la ruta
relativa siguiente:
_parent._parent
Para especificar la instancia
atlanta como destino desde una
acción en la línea de tiempo de charleston, podría utilizar la ruta relativa siguiente:
_parent._parent.georgia.atlanta
Las rutas relativas son
útiles para volver a utilizar scripts.
Por ejemplo, podría adjuntar
un script a un clip de película que aumenta el clip de película principal en un
150%, como se muestra a continuación:
onClipEvent (load) {_parent._xscale = 150;
_parent._yscale = 150;
}
A continuación, puede volver
a utilizar este script adjuntándolo a cualquier instancia de clip de película.
Tanto si utiliza una ruta
absoluta como una ruta relativa, puede identificar una variable en una línea de
tiempo o una propiedad de un objeto con un punto (.) seguido del nombre de la
variable o propiedad. Por ejemplo, la sentencia siguiente establece la variable
name de la instancia form en el valor "Gilbert":
_root.form.name = "Gilbert";
Utilización
de acciones y métodos para controlar clips de película
Puede utilizar las acciones de ActionScript o
los métodos del objeto MovieClip para llevar a cabo tareas en clips de
película.
Algunos métodos de MovieClip realizan las mismas tareas que las acciones que
tienen el mismo nombre; otros métodos del objeto MovieClip, tales como hitTest y swapDepths, no tienen acciones
correspondientes.
Cuando una acción y un método ofrecen comportamientos similares, puede
controlar los clips de película con cualquiera de ellos. La elección depende de
lo que prefiera y de lo familiarizado que esté con la creación de scripts en
ActionScript. Independientemente de que se utilice una acción o un método, la
línea de tiempo de destino deberá estar cargada en Flash Player cuando se llame
a la acción o al método.
Las acciones siguientes seleccionan clips de película como
destino: loadMovie, unloadMovie, loadVariables, setProperty, startDrag, duplicateMovieClip y removeMovieClip. Para utilizar estas
acciones, debe introducir una ruta de destino en el parámetro de destino de la acción para indicar el
destino de la acción.
Los siguientes métodos de MovieClip pueden controlar clips de película o
niveles cargados y no tienen acciones equivalentes: attachMovie, createEmptyMovieClip, createTextField, getBounds, getBytesLoaded, getBytesTotal, getDepth, globalToLocal, localToGlobal, hitTest, setMask y swapDepths.
Para utilizar un método, debe invocarlo indicando la ruta de destino del
nombre de instancia seguida de un punto y, después, el nombre del método y los
parámetros, como en las sentencias siguientes:
myMovieClip.play();
parentClip.childClip.gotoAndPlay(3);
En la primera sentencia, el
método play mueve la cabeza lectora de
la instancia myMovieClip. En la segunda sentencia, el
método gotoAndPlay envía la cabeza lectora de childClip (que es secundaria de la
instancia parentClip) al fotograma 3 y continúa
moviendo la cabeza lectora.
Las acciones que controlan
una línea de tiempo tienen un parámetro de destino que permite especificar la
ruta de destino a la instancia que desea controlar. Por ejemplo, en el script
siguiente la acción startDrag selecciona como destino a la instancia customCursor y hace que se pueda
arrastrar:
on(press){ startDrag("customCursor");}
En el ejemplo siguiente se
ilustra la diferencia entre utilizar un método y utilizar una acción. Ambas
sentencias duplican la instancia myMovieClip, asignan el nombre newClip al nuevo clip y lo colocan a
una profundidad de 5.
myMovieClip.duplicateMovieClip("newClip", 5);duplicateMovieClip("myMovieClip", "newClip", 5);
Llamada a varios métodos en un solo clip de película
Puede utilizar la acción with para referirse a un clip de película como destino
una vez y después ejecutar una serie de métodos en ese clip. La acción with funciona en todos los
objetos de ActionScript (por ejemplo, Array, Color y Sound), no solamente en
clips de película.
La acción with toma un objeto como
parámetro. El objeto que especifique se agregará al final de la ruta de destino
actual. Todas las acciones anidadas dentro de una acción with se llevan a cabo dentro de
la nueva ruta de destino, o ámbito. Por ejemplo, en el siguiente script, a la
acción with se le pasa el objeto donut.hole para cambiar las propiedades
de hole:
with (donut.hole){_alpha = 20;
_xscale = 150; _yscale = 150;}
Es como si las sentencias
dentro de la acción with se llamaran desde la línea de tiempo de la instancia hole. El código anterior equivale
al siguiente:
donut.hole._alpha = 20;donut.hole._xscale = 150;donut.hole._yscale = 150;
El código anterior también equivale al siguiente:
with (donut){ hole._alpha = 20; hole._xscale = 150; hole._yscale = 150;}
Carga y descarga de películas adicionales
Para reproducir películas adicionales sin cerrar Flash Player, o pasar
de una película a otra sin cargar otra página HTML, puede utilizar la acción o
el método loadMovie. Puede utilizar loadMovie para enviar variables a un
script CGI que genera un archivo SWF como resultado del CGI. Cuando carga una película, puede especificar un nivel o un
clip de película de destino en el que se cargará la película. Si
carga una película en un destino, la película cargada heredará las propiedades
del clip de película de destino. Una vez que se ha cargado la película, puede
cambiar dichas propiedades.
La acción y el método unloadMovie eliminan una película cargada previamente con
loadMovie. La descarga de películas de
modo explícito con unloadMovie asegura una transición
gradual entre las películas y puede reducir la memoria requerida por Flash
Player.
Utilice la acción loadMovie para realizar cualquiera de las acciones siguientes:
|
|
Reproducir una secuencia de anuncios publicitarios en forma de
archivos SWF colocando una acción |
|
|
Desarrollar una interfaz de bifurcación que permita al usuario elegir
entre distintos archivos SWF. |
|
|
Crear una interfaz de navegación con controles de navegación en el
nivel 0 que carguen otros niveles. Cargar niveles produce transiciones más
suaves que cargar nuevas páginas HTML en un navegador. |
Carga de imágenes y sonidos de forma dinámica
Puede utilizar la acción o el método loadMovie para cargar archivos de
imagen JPEG en una película Flash mientras ésta se reproduce. Puede utilizar el
método loadSound del objeto Sound para cargar archivos de sonido MP3 en una película
Flash mientras ésta se reproduce.
Al cargar una imagen, la esquina superior izquierda de la imagen se
sitúa en el punto de registro del clip de película. Dado que este punto suele
ser el centro del clip de película, la imagen cargada no aparecerá en el
centro. Además, cuando se carga una imagen en una línea de tiempo raíz, la
esquina superior izquierda de la imagen se sitúa en la esquina superior
izquierda del escenario. La imagen cargada hereda la rotación y la escala del
clip de película, pero el contenido original del clip de película se elimina.
Modificación de la posición y el aspecto de clips de película
Para cambiar las propiedades de un clip de
película a medida que se reproduce, escriba una sentencia que asigne
un valor a una propiedad o utilice la acción setProperty. Por ejemplo, en el código
siguiente se establece la rotación de la instancia mc en 45:
mc._rotation = 45;
Esto es equivalente al código
siguiente, en el que se utiliza la acción setProperty:
setProperty("mc", _rotation, 45);
Algunas propiedades, llamadas
propiedades de sólo lectura, tienen valores que se
pueden leer pero no establecer (estas propiedades están especificadas como
propiedades de sólo lectura en las entradas correspondientes del diccionario de
ActionScript). Las propiedades siguientes son de sólo lectura: _currentframe, _droptarget, _framesloaded, _parent, _target, _totalframes, _url, _xmouse e _ymouse.
Puede escribir sentencias
para establecer cualquier propiedad que no sea de sólo lectura. La sentencia
siguiente establece la propiedad _alpha de la instancia de clip de película wheel, que es secundaria de la
instancia car:
car.wheel._alpha = 50;
Además, puede escribir
sentencias que obtienen el valor de una propiedad de clip de película. Por
ejemplo, la sentencia siguiente obtiene el valor de la propiedad _xmouse de la línea de tiempo del
nivel actual y establece la propiedad _x de la instancia customCursor en ese valor:
onClipEvent(enterFrame){ customCursor._x = _root._xmouse;}
Esto es
equivalente al código
siguiente, en el que se utiliza la función getProperty:
onClipEvent(enterFrame){ customCursor._x = getProperty(_root, _xmouse);}
Las propiedades _x, _y, _rotation, _xscale, _yscale, _height, _width, _alpha y _visible se ven afectadas por las
transformaciones del elemento principal del clip de película y modifican el
clip de película y cualquiera de los elementos secundarios del clip. Las
propiedades _focusrect, _highquality, _quality y _soundbuftime son globales, solamente
pertenecen al nivel 0 de la línea de tiempo principal. Todas las demás propiedades
pertenecen a cada clip de película o nivel cargado.
Clips de película que se pueden arrastrar
Puede utilizar la acción o el método startDrag para hacer que se pueda
arrastrar un clip de película mientras se reproduce una película. Por ejemplo, puede crear un clip de película que se pueda arrastrar
para juegos, funciones de arrastrar y soltar, interfaces personalizables,
barras de desplazamiento y controles deslizantes.
Un clip de película se puede arrastrar hasta que esta acción se detenga
explícitamente con stopDrag, o hasta que se seleccione otro clip de película
como destino de startDrag. Sólo un clip de película
puede arrastrarse al mismo tiempo.
Para crear comportamientos de arrastrar y soltar más
complejos, puede probar la propiedad _droptarget del clip de película que se
está arrastrando. Por ejemplo, puede examinar la propiedad _droptarget para ver si la película se
arrastró a un clip de película específico (como un clip de película de tipo
"papelera") y, a continuación, desencadenar otra acción.
Duplicación y eliminación de clips de película
Para duplicar o eliminar instancias de clip de película mientras se
reproduce una película, utilice duplicateMovieClip o removeMovieClip, respectivamente. La acción y
el método duplicateMovieClip crean en forma dinámica una
nueva instancia del clip de película, le asignan un nuevo nombre de instancia y
le proporcionan una profundidad. Un clip de
película duplicado siempre comienza en el fotograma 1, aunque el clip de
película original se encontrase en otro fotograma cuando se duplicó,
y siempre se encuentra encima de todos los clips de película definidos
anteriormente situados en la línea de tiempo.
Para borrar un clip de película creado con duplicateMovieClip, utilice removeMovieClip. Los clips de película
duplicados se eliminan si el clip de película principal se borra.
Adición dinámica de un clip de película o un sonido al escenario
Para recuperar una copia de un clip de película o de un sonido
de la biblioteca y reproducirla como parte de su película, puede utilizar el
método attachMovie del objeto MovieClip o el
método attachSound del objeto Sound. El método attachMovie carga un clip de película
como elemento secundario del clip que lo carga y lo reproduce mientras se
ejecuta la película. El método attachSound adjunta un sonido a una instancia del objeto
Sound.
Si desea utilizar ActionScript para adjuntar un clip de película o un
sonido desde la biblioteca, debe asignar un
identificador exclusivo de vínculo al clip de película o sonido.
Puede asignar este nombre en el cuadro de diálogo
Propiedades de vinculación.
Al reproducirse una película, Flash carga todos los clips de película y
sonidos agregados con attachMovie o attachSound antes del primer fotograma de la película.
Esto puede producir cierta demora en la reproducción del primer fotograma. Cuando asigne un identificador de vínculo a un elemento,
también puede especificar si este contenido debe agregarse antes del primer
fotograma. Si no se agrega en el primer fotograma, debe incluir una instancia
de éste en algún otro fotograma de la película; de lo contrario, el elemento no
se exportará al archivo SWF.
Para asignar un nombre a un clip de película:
|
1 |
Elija Ventana > Biblioteca para abrir el panel Biblioteca. |
|
2 |
Seleccione un clip de película del panel Biblioteca. |
|
3 |
En el panel Biblioteca, elija Vinculación
en el menú de opciones. |
|
|
Aparecerá el cuadro de diálogo Propiedades de vinculación. |
|
4 |
En Vinculación, seleccione Exportar para
ActionScript. |
|
5 |
En Identificador, introduzca un ID para
el clip de película. |
|
6 |
Si no desea que el clip de película o sonido se cargue antes del
primer fotograma, anule la selección de la opción
Exportar en primer fotograma. |
|
7 |
Haga clic en Aceptar. |
Para adjuntar un clip de película a otro clip de película:
|
1 |
Con el panel Acciones abierto, seleccione un fotograma de la línea de
tiempo. |
|
2 |
En la caja de herramientas Acciones (en la parte izquierda del panel
Acciones), haga clic en la categoría Objetos, la
categoría Película y la categoría Clip de película, y haga doble
clic en el método |
|
3 |
En el parámetro para el |
|
4 |
Introduzca valores para los parámetros siguientes: |
|
|
En |
|
|
En |
|
|
En |
|
|
myMovieClip.attachMovie("calif", "california", 10); |
Creación dinámica de un clip de película vacío
Para crear un clip de película vacío en el escenario mientras se
reproduce la película, utilice el método createEmptyMovieClip del objeto MovieClip. Este método crea un clip de
película como elemento secundario del clip que llama al método. El punto de
registro de un clip de película vacío recién creado se encuentra en la esquina
superior izquierda. Aunque el método createEmptyMovieClip se comporta de forma
parecida al método attachMovie, no es necesario
proporcionar un identificador de vínculo, ya que no se está agregando un símbolo de la biblioteca.
Para crear un clip de película vacío:
|
1 |
Seleccione un fotograma, un botón o un clip
de película al que desee asignar la acción. |
|
2 |
Elija Ventana > Acciones para abrir el panel Acciones si aún no
está abierto. |
|
3 |
En la caja de herramientas Acciones (en la parte izquierda del panel
Acciones), haga clic en la categoría Objetos, la categoría Película, la
categoría Clip de película y la categoría Métodos, y haga doble clic en el
método |
|
4 |
En el parámetro para el |
|
5 |
Introduzca valores para los parámetros siguientes: |
|
|
En |
|
|
En |
|
|
myMovieClip.createEmptyMovieClip("newMC", 10); |
Dibujo de formas con ActionScript
Puede utilizar los métodos del objeto MovieClip para dibujar
líneas y rellenos en el escenario mientras se reproduce la película. Esto permite crear
herramientas de dibujo para los usuarios y dibujar formas en la película como
respuesta a los eventos. Los métodos de dibujo son los siguientes: beginFill, beginGradientFill, clear, curveTo, endFill, lineTo, lineStyle y moveTo.
Puede utilizar estos métodos de dibujo con cualquier clip de película.
Sin embargo, si utiliza los métodos de dibujo con un clip de película que se ha
creado en modo de edición, los métodos se ejecutarán antes de dibujar el clip.
Es decir, el contenido creado en modo de edición se dibuja encima del contenido
dibujado con los métodos de dibujo.
Puede utilizar clips de película con métodos de dibujo como máscaras;
sin embargo, al igual que en todas las máscaras de clip de película, los trazos
se pasan por alto.
Para dibujar una forma:
|
1 |
Utilice el método |
|
|
El nuevo clip de película es un elemento secundario de un clip de
película existente o de la línea de tiempo principal, tal como se muestra a
continuación: |
|
|
_root.createEmptyMovieClip ("triangle", 1); |
|
2 |
Utilice el clip de película
vacío para llamar a los métodos de dibujo. |
|
|
En el ejemplo siguiente se
dibuja un triángulo con líneas de color magenta de 5 puntos y sin relleno: |
|
|
with (_root.triangle) { lineStyle (5, 0xff00ff, 100); moveTo (200, 200);lineTo (300, 300); lineTo (100, 300); lineTo (200, 200);} |