Nombrar instancias Sintaxis de punto

Anuncio
Material Flash
Nombrar instancias
Cuando piensas agregar ActionScript para dar funcionalidad a los botones y MovieClips de una
película, es una buena práctica nombrar las instancias. Las instancias en el escenario se nombran
utilizando el Panel de propiedades (Instance Name). Es muy importante que des a las instancias
un nombre que te permita identificarlas plenamente, ya que el nombre que des al objeto es el que
se usará en la programación.
En ActionScript se acostumbra agregar a todos ios nombres de instancias de botones la
terminación _btn, por ejemplo: optionl_btn o reproducir_btn.
Similarmente, se acostumbra agregar a todos los nombres de instancias de MovieClips la
terminación _mc, como avion_mc o corredor_mc.
A las instancias de texto se les da la terminación _txt.
Si sigues esta convención al nombrar las instancias de tus objetos, podrás además aprovechar la
ayuda que Flash presenta al programador, ya que reconoce las terminaciones y sugiere acciones
relacionadas con botones, MovieClips o textos, según corresponda.
Si sigues las convenciones para
nombrar instancias, Flash muestra
las propiedades y métodos del tipo
de objeto, en cuanto escribes el
punto.
A partir de esta sección, en explicaciones y actividades se usará la convención para nombrar las
instancias que se explicó en los párrafos anteriores. De esta manera, podrás identificar fácilmente
los nombres de instancias de cada tipo.
Es muy importante nombrar las instancias antes de escribir la primera línea de código. Si ya hay
código escrito y cambias el nombre de alguna instancia, el código no se actualiza para reflejar los
cambios y la aplicación no funcionará.
Al nombrar las instancias ten cuidado de no dejar espacios al final del nombre, no usar símbolos
internacionales (como acentos o ñ), ni signos de puntuación.
Sintaxis de punto
Las propiedades son atributos que definen un objeto. En ActionScript las propiedades se
identifican porque siempre llevan un guión bajo, antes de su nombre por ejemplo _x, _height,
_alpha o _visible.
Cada propiedad determina alguna característica del objeto como su posición, altura, transparencia
o si está o no visible en el escenario. Es posible consultar el valor de una propiedad o asignar a
una propiedad un valor.
Para referirnos a la propiedad de un objeto, ActionScript utiliza una sintaxis de punto que es
común en muchos lenguajes de programación orientados a objetos. Cuando se usa esta sintaxis,
una línea de instrucción siempre comienza con el nombre de un objeto seguido de un punto y de
alguna propiedad de dicho objeto:
objeto.propiedad;
Material Flash
Por ejemplo, la propiedad _x de un MovieClip se refiere a la posición horizontal del objeto en el
escenario (coordenada x). Si tenemos un objeto llamado pelota_mc, entonces podemos usar el
siguiente comando para que el objeto se ubique 50 píxeles a la derecha del extremo izquierdo del
escenario:
pelota_mc._x =50;
O bien, podemos usar esta instrucción para que el MovieClip se desplace 10 píxeles a la derecha
de su posición actual:
pelota_mc._x = pelota_mc ._x + 10;
O en su forma abreviada:
pelota_mc._x += 10;
La sintaxis de punto también se utiliza para expresar los métodos de un objeto. Los métodos son
cosas que puede realizar el objeto, como detener su reproducción, avanzar un cuadro o permitir
ser arrastrado por el ratón.
objeto.método;
Por ejemplo, si tenemos un MovieClip animado, llamado pelota_mc, entonces podemos usar el
siguiente comando para que el objeto detenga su reproducción:
pelota_mc.stop();
Este tipo de instrucciones se pueden asignar a un Keyframe o al evento de un objeto tal y como se
hizo en la actividad anterior.
Operadores
Los operadores se utilizan para trabajar con los valores de las propiedades o las variables y son
una parte fundamental del lenguaje ActionScript. F/ash permite utilizar una gran variedad de
operadores que se clasifican en tipos. En las siguientes tablas se enlistan los principales
operadores y su función. Casi todos son muy comunes y se utilizan en diferentes lenguajes de
computadora.
•
Operadores de asignación
OPERADOR
=
FUNCIÓN
Asigna el valor de una operación o una
expresión en una variable. La asignación
siempre es de derecha a izquierda.
EJEMPLO DE USO
pelota_mc._x =13;
+=
Asigna a una variable el valor de esa misma
variable más otro valor. Se usa para
incrementar
el valor de una variable.
pelota_mc._x +=1;
Costo +=unidad;
-=
Asigna a una variable, el valor de esa misma
menos otro valor. Se usa para decrementar el
valor descuento; de una variable.
pelota_mc._x -= 1;
Costo -=
*=
Asigna a una variable el valor de esa misma
variable multiplicado por otro valor.
pelota_mc._height *= 3;
/=
Asigna a una variable el valor de esa misma
variable dividido entre otro valor
pelota_mc._height /= 3;
++
--
Incrementa en uno, el valor de una variable
Decrementa en uno, el valor de una variable.
pelota_mc._rotation ++;
pelota_mc._rotation --;
Material Flash
•
Operadores Aritméticos
OPERADOR
+
EJEMPLO DE USO
Total= A+B;
-
Se emplea para restar valor o asignar
signo negativo a un número.
Total = A - 7;
*
Multiplica dos
numéricas.
Total = A*3;
/
Divide dos expresiones
generando decimales.
%
•
FUNCIÓN
Sirve para sumar dos expresiones o
conectar cadenas de texto.
expresiones
Devuelve el residuo de la división de
dos expresiones.
Este operador se llama módulo.
Total=A/2
Total = A%2
Operadores de Comparación
OPERADOR
==
FUNCIÓN
Regresa un valor verdadero (True) si dos
expresiones son iguales.
EJEMPLOS DE USO
if(A==B){
play();
}
!=
Regresa un valor verdadero (True) si dos
expresiones son diferentes.
if(A!=B){
play();
}
>
Regresa un valor verdadero (True) si la
expresión de la izquierda es mayor que la
de la derecha.
if (A>B){
play();
}
<
Regresa un valor verdadero (True) si la
expresión de la izquierda es menor que la
de la derecha.
if (A<B){
play();
}
>=
Regresa un valor verdadero (True) si la
expresión de la izquierda es mayor o igual
que la de la derecha.
if (A>=B){
play();
}
<=
Regresa un valor verdadero (True) si la
expresión de la izquierda es menor o igual
que la de la derecha.
if (A<=B){
play();
}
Control de líneas de tiempo
Imagina que creas un MovieClip con la imagen de una bicicleta sin ruedas. Puedes utilizar la linea
de tiempo de este MovieClip para crear un MotionTween que mueva la bicicleta de un extremo a
otro del escenario. Para las ruedas puedes crear un segundo MovieClip que represente una rueda
girando y colocar dos instancias del MovieClip de la rueda dentro del MovieClip de la bicicleta.
Material Flash
Utilizando instrucciones de ActionScript, sería posible iniciar o detener el giro de las ruedas o el
movimiento de la bicicleta, pero para lograrlo es necesario comprender cómo funcionan las
jerarquías de las líneas de tiempo.
Cuando colocas la instancia de un MovieClip dentro de la línea de tiempo de otro MovieClip, a la
instancia interior se le conoce como "hijo" (Child) y a la que la contiene se le conoce como "padre"
(Parent). En este esquema, la línea de tiempo principal sería padre de todas las instancias que se
coloquen sobre el escenario y naturalmente, la línea de tiempo principal no tiene padre.
Las relaciones entre padres e hijos son jerárquicas. Para comprender esta jerarquía, compárala
con la del disco duro de tu computadora. El disco duro tiene una raíz, a partir de la cual se pueden
crear carpetas y dentro de esas carpetas se pueden crear más carpetas, dando como resultado un
esquema de árbol. De la misma manera en una película Flash, la línea de tiempo principal es la
raíz y a partir de ella pueden existir MovieClips y dentro de éstos otros MovieClips, cada uno con
sus líneas de tiempo.
Las instancias y sus líneas de tiempo pueden enviarse mensajes entre sí, por medio de
ActionScript. La línea de tiempo que envía el mensaje (la que contiene las instrucciones en
ActionScript) se denomina Línea de tiempo de control (controlling timeline). La línea de tiempo
que recibe la acción se denomina Línea de tiempo destino (target timeline). Cuando una
instrucción debe efectuar una acción sobre un objeto que no está en la misma línea de tiempo, es
necesario especificar la ruta destino (target path), que puede ser absoluta o relativa.
Imagina que en la línea de tiempo principal (_root) se ha colocado una instancia del MovieClip
bici_mc, que a su vez contiene dos instancias de una rueda girando, llamadas ruedal_mc y
rueda2_mc. Cada MovieClip tiene su propia línea de tiempo que se reproduce de forma
independiente normalmente:
_root
bici_mc
rueda1_mc
rueda2_mc
Ahora imagina que desde un cuadro de la línea de tiempo principal, queremos hacer que se
detenga el giro de una rueda. La instrucción que hay que agregar al cuadro es:
Controlling timeline
Instrucciones con la ruta adecuada
_root
bici_mc
bici_mc.rueda1_mc.stop()
rueda1_mc
rueda2_mc
Veamos ahora otro
caso basado en el mismo esquema. Se requiere que al hacer clic sobre la instancia bici_mc, se
Material Flash
detenga la otra rueda. Ahora la acción no la controla la línea de tiempo principal, sino se escribe
dentro del objeto b¡ci_mc. La Instrucción quedaría así:
Controlling timeline
Instrucciones con la ruta adecuada
_root
bici_mc
on (release){
rueda2_ mc.stop()
}
rueda1_mc
rueda2_mc
Opcionalmente obtendrías el mismo resultado usando la ruta absoluta completa:
Controlling timeline
Instrucciones con la ruta adecuada
_root
bici_mc
on (release){
_root.bici_ mc.rueda2_ mc.stop()
}
rueda1_mc
rueda2_mc
Considerando el mismo esquema jerárquico, imagina ahora que desde la línea de tiempo de la
rueda 1, deseas detener la reproducción de la rueda 2. Puedes usar una ruta relativa:
Controlling timeline
Instrucciones con la ruta adecuada
_root
bici_mc
rueda1_mc
_parent.rueda2_mc.stop()
rueda2_mc
O bien una ruta absoluta:
Controlling timeline
Instrucciones con la ruta adecuada
_root
bici_mc
rueda1_mc
rueda2_mc
_root.bici_mc.rueda2_mc.stop()
Material Flash (segunda parte)
Variables
Una variable es un contenedor de información que se identifica con un nombre. Puede contener
cadenas de texto, números o valores booleanos (verdadero y falso).
Los nombres de las variables deben seguir algunas reglas:
1. El nombre de una variable no puede empezar con un número. El nombre tampoco puede
contener espacios, signos de puntuación o símbolos internacionales como @, ñ, ¿, #, entre otros.
2. El nombre de una variable no puede ser igual a una palabra reservada de ActionScript. Por
ejemplo, no puedes crear una variable que se llame release, on 0 True. Cuando escribes código en
el Panel de acciones, las palabras reservadas de ActionScript aparecen en azul y los nombres de
variables (entre otras cosas) aparecen en negro.
3. El nombre de una variable debe ser único en su ámbito de acción (explicaremos esto después
de la siguiente actividad). Por ejemplo, en un mismo MovieClip no puedes usar una variable que se
llame velocidad para guardar dos cosas diferentes.
Para poder utilizar una variable es importante "declararla", anteponiendo la palabra var al nombre
de la variable, por ejemplo:
var total; var puntos; var ancho;
Una variable puede ser inicializada o no, que quiere decir, asignarle un valor al momento de
declararla, por ejemplo:
var costo = 50; var puntos = 0; var nombre = "Marie";
Ámbitos de las variables
En la actividad anterior declaraste algunas variables en un Keyframe de la línea de tiempo.
También es posible declarar variables en códigos que se encuentren en MovieClips, botones o
incluso en archivos de código externos. Sin embargo, las variables tienen un ámbito de acción en
el que son reconocidas después de declararlas.
Variable Local. Está disponible sólo dentro del manejador (handler),
objeto o función en que se define. Por ejemplo, si declaras una variable dentro del código asignado
a un MovieClip, la variable no está disponible fuera de ese MovieClip.
Variable de la Línea de tiempo. Está disponible en cualquier instrucción en la línea de tiempo en
que se define, ya sea la línea de tiempo principal, la línea de tiempo de una escena o la línea de
tiempo de un MovieClip.
Material Flash (segunda parte)
Variable Global. Es reconocida en todas las líneas de tiempo de la película y en todos los objetos.
Para que una variable sea global, debe especificarse anteponiendo a su nombre la palabra
reservada _global. Por ejemplo, si en el frame 1 de la línea de tiempo principal defines la variable
var _global.puntos =0; puedes usarla en cualquier lugar de la película.
Estructuras Condicionales
Todos los lenguajes de programación tienen un condicional if que se utiliza para la toma de
decisiones. En ActionScript la sintaxis del condicional if es:
if (condición) { acciones,
}
Esto equivale a decir: "Si la condición se cumple (si es verdadera), se ejecutan todas las acciones
que estén entre las llaves. Si la condición no se cumple (si es falsa) las acciones son ignoradas."
El condicional if puede tener además una cláusula else con la siguiente sintaxis:
if (condición) }
acciones1;
}else{
acciones2;
}
El uso del else podría expresarse así: "Cuando la condición se cumple (si es verdadera) se
ejecutan las acciones1 y cuando la condición no se cumple (si es falsa) se ejecutan las acciones2"
Publicación de proyectos de Flash
Flash ofrece ocho formatos para la publicación de proyectos. Se pueden acceder utilizando el
Menú File/Publish Settings.
Un proyecto puede ser publicado en varios formatos
con un sólo comando, eligiendo los formatos deseados
desde este cuadro de diálogo. Al seleccionar formatos
de publicación, se crean fichas con opciones
relacionadas con cada tipo de formato.
Dependiendo del objetivo y destino final del proyecto, se
pueden elegir diferentes formas para publicar una
película de Flash.
• Flash (.swf): Genera el swf estándar, que
respeta todas las características de la película. Para ver
una película swf es necesario tener instalado el F/ash
Player, que normalmente viene incluido con los
navegadores de Internet como el Internet Explorer El
Flash Player también se puede descargar de forma
gratuita desde el sitio de Adobe.
• HTML (.html): Genera un archivo html que
permite ligar la película swf para visualizarla desde un
navegador de Internet. Para ver la película en Internet debes publicar tanto en swf como en
html y subir o distribuir ambos archivos.
•
Windows Projector (.exe): Genera un archivo ejecutable (.exe) para plataformas
Windows. Un archivo ejecutable de una película de Flash puede ejecutarse desde un CD o
en modo local, sin necesidad del Flash Player
Material Flash (segunda parte)
•
Macintosh Projector (.hqx): Genera un archivo ejecutable (.hqx) para plataformas
Macintosh. Es un video que puede ser tratado por programas de edición de video.
•
QuickTime (.mov): Genera un video en formato QuickTime. Sólo es una secuencia lineal y
se pierden todas las características de interactividad o programación.
•
GIF (.gif): Genera una secuencia de imágenes (cuadro por cuadro) de lo que se encuentra
en el escenario. El formato Gif tiene un máximo de 256 colores y se usa sólo para crear
pequeñas animaciones como las usadas en los emoticons de los programas de chat.
•
JPEG (.jpg): Genera una imagen única del frame de la película en el cual se encuentre la
cabeza lectora.
•
PNG (.png): Genera una imagen única del frame de la película en el cual se encuentre la
cabeza lectora. A diferencia del formato jpeg, éste puede contener áreas transparentes.
Sonido (Sound)
Para hacer más atractiva una película o una animación, Flash permite incorporar sonidos, que se
importan en formatos comunes como Wav, Aiff y MP3, entre otros, usando el Menú
File/Import/Import to Library... Una vez importado, un sonido queda como un elemento en la
biblioteca de símbolos y puede usarse colocándolo en un frame o accediendo a él por medio de
programación.
El sonido en un frame puede ejecutarse básicamente en dos modos de sincronía (Sync):
Event
El sonido se reproduce completo (de inicio a fin) en cuanto la reproducción de la película llega al
frame en el que se encuentra el sonido. Una vez iniciado, un evento de sonido continúa hasta
terminar independientemente de si la reproducción de la película sigue, se detiene o salta a un
lugar diferente, a menos que sea silenciado mediante programación.
Stream
Sincroniza el sonido con la línea de tiempo. Si la reproducción de la película se detiene, el sonido
también se detiene y si la reproducción salta a un lugar diferente, la secuencia del sonido también.
Cuando una película Flash se publica en Internet, un sonido del tipo Event debe descargar
completamente antes de que pueda ser reproducido. Un sonido de tipo Stream puede comenzar a
reproducirse conforme va descargando, de modo que es más conveniente para uso en Web.
A un sonido se le pueden incluir los siguientes efectos directamente en el Panel de propiedades:
1. Ninguno: el sonido no tiene ningún efecto y se reproduce tal como se importó.
2. Left Channel: el sonido se reproduce solamente por el altavoz izquierdo.
3. Right Channel: el sonido se reproduce solamente por el altavoz derecho.
4. Fade left to right: el sonido comienza a escucharse por el altavoz izquierdo y continúa por el
derecho.
5. Fade right to left: el sonido comienza a escucharse por el altavoz derecho y continúa por el
izquierdo.
6. Fade in: el sonido comienza a reproducirse con el volumen en O y aumenta hasta llegar al nivel
original con el que se importó.
7. Fade out: el sonido comienza a reproducirse tal como se importó y disminuye el volumen hasta
llegar al nivel 0.
8. Custom: puede modificarse la forma en que se escuchará en los altavoces.
Material Flash (segunda parte)
Instancias y propiedades
Para utilizar un símbolo en algún frame de la película, simplemente selecciona el frame en cuestión
y arrastra el símbolo desde la biblioteca hasta el escenario. Esto crea una Instancia del símbolo,
que es una imagen clon del símbolo original. Puedes crear todas las instancias que quieras de un
mismo símbolo, modificar cada instancia cambiando sus dimensiones o propiedades o aplicar
diferente comportamiento a cada una mediante programación.
Cuando modificas cualquier instancia, el símbolo original no se ve afectado. En el caso opuesto, si
modificas el símbolo original, todas sus instancias son afectadas.
Una vez en el escenario se pueden establecer los parámetros de una instancia usando el Panel de
propiedades.
Instance Name. Se utiliza para identificar la instancia de un símbolo. Es muy recomendable
asignar un nombre en cuanto se crea una instancia, ya que es necesario para la programación:
• X. Indica o asigna la posición horizontal en el escenario.
• Y. Indica o asigna la posición vertical en el escenario.
• W (Width). Muestra o determina el ancho de la instancia.
• H (Height). Muestra o determina el alto de la instancia.
• Rotate. Indica o asigna un ángulo de giro.
• Skew. Indica o determina la deformación oblicua de la instancia.
• Color. Permite asignar un aspecto especial como:
• Brightness. Ajusta el color a más blanco o negro.
• Tint. Pinta una instancia con un tono de la paleta de colores.
• Alpha. Aplica un porcentaje de transparencia a una instancia.
• Advanced. Ajusta con detalle los colores (Tint) y transparencia (Alpha).
Material Flash (segunda parte)
Descargar