Manual Users - Flash Master, conocimientos preliminares.pdf

26
Conocimientos preliminares MovieClips 16 Génesis 16 Anatomía 17 Comunicación 18 Orden de apilamiento 19 Remoción 20 Variables 21 DataTypes 22 Operaciones con variables 24 Strings 25 Representación de strings 25 Numbers 27 Operaciones numéricas 27 Funciones matemáticas 28 Arrays 29 Estructuras de control 32 Funciones 38 Capítulo 1 Antes de comenzar cualquier proyecto de Flash, debemos conocer sus nociones fundamentales, tales como tipos de datos, operaciones, arrays y estructuras. El objetivo de este apartado tiene como función aclarar estos conceptos primordiales, que serán utilizados a lo largo del libro. FLASH MASTER SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

Transcript of Manual Users - Flash Master, conocimientos preliminares.pdf

  • Conocimientospreliminares

    MovieClips 16Gnesis 16Anatoma 17Comunicacin 18Orden de apilamiento 19Remocin 20

    Variables 21DataTypes 22Operaciones con variables 24

    Strings 25Representacin de strings 25

    Numbers 27Operaciones numricas 27Funciones matemticas 28

    Arrays 29Estructuras de control 32Funciones 38

    Captulo 1

    Antes de comenzar cualquier

    proyecto de Flash, debemos conocer

    sus nociones fundamentales,

    tales como tipos de datos,

    operaciones, arrays y estructuras.

    El objetivo de este apartado tiene

    como funcin aclarar estos

    conceptos primordiales, que sern

    utilizados a lo largo del libro.

    FLASH MASTER

    SERVICIO DE ATENCIN AL LECTOR: [email protected]

    01_FlashMaster.qxd 6/2/05 16:56 Page 15

  • MOVIECLIPSFlash est basado en una estructura de pelculas: todo transcurre en un escenario(stage) regido bajo las leyes del tiempo. Cada actor que arrastramos al rea de tra-bajo (texto, grfico, fotografa, etc.) se posa sobre una lnea de tiempo, a la par quetoma su nueva condicin de pelcula.

    En otras palabras, hay que pensar en Flash como una gran animacin capaz de con-tener infinitas animaciones de menor calibre dentro de l; en un escenario repletode actores con vida propia que pueden ser manipulados a travs del ActionScript.Es justamente esta ltima condicin de pelculas manipuladas a travs de cdigoque otorgan a Flash la etiqueta de herramienta de interactividad, y al MovieClip(pelcula), en la columna vertebral de la aplicacin.

    GnesisUn MovieClip puede ser generado de varias maneras:

    Drag & Drop: encapsulando el contenido grfico del escenario y transformndo-lo como smbolo MC.

    Rplica: mediante la funcin duplicateMovieClip(), realiza una copia de un MCexistente en el escenario.

    // instancia_mc.duplicateMovieClip(nuevo_nombre, profundidad)

    // suponiendo que cuento con mc1 en el escenariovar mc1:MovieClip;mc1.duplicateMovieClip(mc2,1);

    Generacin espontnea: se da origen a un nuevo MC vaco, que nos permitirincorporar contenidos en su interior.

    // instancia_mc.createEmptyMovieClip(nuevo_nombre, profundidad)

    // cuento con una imagen archivo.jpg en la misma ruta del .swfthis.createEmptyMovieClip(foto,1);foto.loadMovie(archivo.jpg);foto._rotation=70;

    FLASH MASTER

    16

    01_FlashMaster.qxd 6/2/05 16:56 Page 16

  • Linkage: rplica de un MC no existente en el escenario.

    // suponiendo que el identificador de linkage es rentonthis.attachMovie(renton,nuevo_mc,1);

    Figura 1. Cuando se le asocia un identificador a un MovieClip (linkage), ste puede

    ser instantneamente referido sin necesidad de que exista fsicamente en el escenario.

    AnatomaUna vez que un elemento ha sido situado en el escenario y convertido en Movie-Clip, adquiere una composicin dada por tres partes fundamentales: nombre ni-co, propiedades y mtodos capaces de realizar.

    El nombre de instancia permite identificar al MovieClip para su posterior refe-renciacin/comunicacin a travs del cdigo.

    Las propiedades nos brindan la funcin de describir fsicamente al objeto, per-mitindonos indicarle qu posicin debe ocupar en el escenario (x, y), establecersus dimensiones (_height, _width), su grado de rotacin (_rotation) o su posicinrelativa al mouse (_xmouse, _ymouse).

    Los mtodos son tareas especficas realizables por el MovieClip, entre las que en-contramos gotoAndStop() (detenerse en cierto punto), startDrag() (desplazarsejunto al mouse), o duplicateMovieClip() (clonarse).

    MovieClips

    17

    01_FlashMaster.qxd 6/2/05 16:56 Page 17

  • ComunicacinLos lenguajes orientados a objetos (OOP, como lo es ActionScript) poseen una par-ticular sintaxis de referenciacin denominada sintaxis de puntos. Esto se debe yaque un punto (.) separa la referencia del objeto (instancia) de aquello que desea ha-ceser con l (manipular sus propiedades o mtodos).

    instancia_mc._rotation=90;instancia_mc.nombre_variable=Macromedia;instancia_mc.otra_instancia_mc.attachMovie(pelcula.swf);

    Como sealamos al comienzo, un MovieClip puede englobar dentro suyo textos,imgenes, sonidos, botones, variables... o bien otros MovieClips. Cada vez que in-cluimos un MovieClip dentro de otro, nos encontramos frente a una tarea de ani-dacin, generando relaciones de parentezco entre dichos objetos involucrados: unMovieClip pasa a tener la condicin de hijo, en tanto que un segundo MovieClip(ahora convertido en padre) lo encapsula.

    Figura 2. En este grfico vemos la estructura de parentesco.

    La estructura de anidacin de MovieClips determina las relaciones de parentezcoentre cada uno de dichos objetos (padre, hijo, hermano, abuelo...).

    FLASH MASTER

    18

    Al utilizar este tipo de comunicacin, no precisamos saber el lugar de emisin del mensaje;

    siempre partimos de un MovieClip existente y conocido por el resto de los MovieClips (_root). No

    existe manera que un desarrollo cobre vida si ste carece de un escenario.

    ORIGEN DEL MENSAJE EN UNA COMUNICACIN ABSOLUTA

    01_FlashMaster.qxd 6/2/05 16:56 Page 18

  • Esta anidacin nos da indicios que para llegar de un punto a otro en la estructu-ra de comunicacin; deberemos optar por distintos caminos por reccorrer.

    // posibles caminos para ejecutar el mtodo play()// partida: _root - llegada: padreabuelo.padre.play();this.abuelo.padre.play();_root.abuelo.padre.play();_level0.abuelo.padre.play();

    // partida: abuelo - llegada: hijopadre.hijo.play();this.padre.hijo.play()_root.abuelo.padre.hijo.play();_level0.abuelo.padre.hijo.play();

    // partida: hijo - llegada: abuelo_parent._parent.play();this._parent._parent.play();_root.abuelo.play_leve0.abuelo.play();

    Existen dos tipos de comunicacin que nos permiten zurcar a travs del rbol deanidacin y alcanzar nuestro destino: relativa y absoluta. La primera de ellas siem-pre toma como punto de partida el MovieClip desde donde se ejecuta el cdigo(this), mientras que la segunda (_root, _leveln) parte desde el tronco/inicio del r-bol y de all comienzan a descender hasta el objeto de destino.

    Orden de apilamientoFlash est basado en un sistema de pelculas dispuestas en capas que permiten to-do tipo de combinaciones de apilamiento/profundidad.Esto determina que un MovieClip pueda estar por encima o debajo de otro, y culo cules de ellos responden a la suerte que les depara a sus superiores (anidacin).

    - Un _level (capa) est compuesto por una nica lnea de tiempo principal (_root),a la par que es capaz de alojar infinitos MovieClips.

    - El _level0 (cero) es el ms importante de todos los levels, ya que todos se posan so-bre su superficie. Si ste es removido, la misma suerte sucede con todos los restantes.

    - Cuanto mayor sea el nivel de apilamiento, ms arriba se encontrar.

    MovieClips

    19

    01_FlashMaster.qxd 6/2/05 16:56 Page 19

  • Figura 3. Orden de apilamiento de pelculas.

    RemocinDe la misma manera que un MovieClip puede ser generado a travs de cdigo, tam-bin puede ser removido. La nica condicin necesaria para que esto ocurra es quehaya sido creado por cualquier mtodo que no sea el manual (es decir, mediantecreateEmptyMovieClip(), duplicateMovieClip() o bien attachMovie()).

    /*removeMovieClip()para aquellas instancias de MC creadas mediante duplicateMovieClip(),

    attachMovie() y createEmptyMovieClip()*/instancia_dinamica_mc.removeMovieClip();

    /*unloadMovie()NO remueve al MC, tan slo elimina sus contenidos.Para aquellas instancias de MC creadas manual o dinmicamente */instancia_mc.unloadMovie();

    /*unloadMovieNum()remueve al nivel indicado entre parntesis*/instancia_mc.unloadMovieNum(n);

    FLASH MASTER

    20

    01_FlashMaster.qxd 6/2/05 16:56 Page 20

  • VARIABLESUna variable es un contenedor de datos, una porcin de recuerdos grabados en lacomputadora que posteriormente podrn ser reinvocados y reutilizados de acuerdocon las necesidades del programador.Se trata de una caja etiquetada capaz de alojar diferentes contenidos a lo largo desu vida. Si bien los elementos dentro de s pueden alternarse, la referenciacin a lamisma permanece constante.

    var texto; // A) declaracin variabletexto=Brainmotion; // B) asignacin inicial de contenidotexto=123; // C) nuevo contenidotexto=macromedia; // D) nuevo contenidotrace(texto); // => macromedia (en ventana Output)texto=; // E) elimino datos; no el indicadordelete texto; // F) elimino variabletrace(texto); // => undefined (en ventana Output)

    Figura 4. Posibles variaciones en los contenidos de una variable a lo largo de toda su vida.

    DataTypesUna variable es capaz de almacenar en su seno datos de diferente ndole y caracte-rsticas (texto, nmero, booleano...), capacidad que se ve determinada por el Da-taType con el que se asocia a la misma en el momento de su gnesis.

    MovieClips

    21

    01_FlashMaster.qxd 6/2/05 16:56 Page 21

  • Principales DataTypes:

    var nombre_variable:DataType// declaracionvar a:String;var b:Number;var c:Boolean;var d:MovieClip;var e:Function;var f:Object;var g:Array;var h:Color;var i:Date;var j:Sound;

    // asignacina=Mediarythmic;b=12345;c=true;

    d=mi_mc; // referencia a un MovieClip mi_mc function e(){};f=new Object();g=new Array();h=new Color();i=new Date();j=new Sound();

    Este DataType que acompaa a la variable determina la especificidad de los valo-res que ella puede almacenar, as como las operaciones que pueden hacerse conlos mismos. En otras palabras: determina qu datos pueden existir dentro delcontenedor y cules no.

    FLASH MASTER

    22

    Si bien se aconseja asignar un DataType a una variable al inicializarse, esta tarea no es excluyen-

    te. En ambos casos, la variable texto contendr el mismo valor y se comportar de igual modo.

    var texto=texto;

    var texto:String= texto;

    DECLARACIN DE VARIABLES

    01_FlashMaster.qxd 6/2/05 16:56 Page 22

  • // (A) ERROR !!var texto:String;texto=Brainmotion;texto=123; // => ERROR// (B) ERROR !!var musica:Sound;musica=Brainmotion; // => ERROR

    En el caso (A), la variable texto es designada como un String. Es por ello que antela intencin del programador de asignarle posteriormente otro tipo de datos a lamisma (un valor numrico), el intrprete de Flash puntualiza que se ha realizadouna operacin errnea. Con distintos valores, lo mismo sucede en el caso (B):

    Figura 5. El intrprete de Flash se encarga de sealar (ventana de Output) que el dato asociado a una variable no corresponde al DataType predefinido.

    La funcin typeof() permite consultar el tipo de dato existente en una expresin:

    typeof (macromedia); // => stringtypeof (98789); // => number

    MovieClips

    23

    Array(), Boolean(), Number(), Object() y String() nos permiten forzar la conversin de valores

    entre diferentes DataTypes;

    123 + 456; // => 123456

    123 + Number (456); // => 579

    CONVERSIN DE DATATYPES

    01_FlashMaster.qxd 6/2/05 16:56 Page 23

  • Operaciones con variablesLa operatoria de variables est determinada por las capacidades inherentes al valoro los valores que sta transporta.

    // - String + Stringvar a:String, b:Stringa= Apple;b=Macintosh;trace (a + + b); // => Apple Macintoshtrace (Apple + Macintosh) // => Apple Macintosh

    // - Number + Numbervar a:Number, b:Number;a= 12345;b= 11111;trace (a + b); // => 23456trace (12345 + 11111); // => 23456

    // - String + Numbervar a:String, b:Number, c:String;a= Agente;b= 007; // nmero 7c= James Bondtrace (a + + b + : + c); // => Agente 7: James Bond

    // String + String (Number)var a:String, b:String, c:String;a= Agente;b= 007; // nmero 7c= James Bondtrace (a + + b + : + c); // => Agente 007: James Bondtrace (Agente + 007: + James Bond); // => Agente 007: James Bond

    STRINGSUn String (texto) consta de una cadena de caracteres agrupados entre un par de co-millas. Estas ltimas pueden ser simples o dobles, pero no intercalarse.

    FLASH MASTER

    24

    01_FlashMaster.qxd 6/2/05 16:56 Page 24

  • Libro de Actionscript; // doblesLibro de Actionscript; // simplesLibro de Actionscript; // ERROR !!!

    Flash nos permite realizar diversas tareas predeterminadas con estos strings valin-dose del rico diccionario de mtodos y propiedades que posee. Entre estas funcio-nalidades, podemos destacar las siguientes:

    Bsqueda de caracteres especficos: indexOf(), lastIndexOf()

    var temp:Stringtemp=Firefox amenaza la supremaca de Explorer;trace (temp.indexOf (sup)); // => 19 (posicion de caracter)trace (temp.indexOf (Microsoft)); // => -1 (no encontrado)

    Conversin a mayscula/minscula: toUpperCase(), toLowerCase()

    trace (temp.toUpperCase()); // => FIREFOX AMENZAZA LA SUPREMACA ...trace (temp.toLowerCase()); // => firefox amenaza la supremaca ...

    Cantidad de caracteres en un String: length

    trace (temp.length); // >> 41

    Representacin de StringsEn Flash existen dos grupos de contenedores visuales capaces de representar grfi-camente un String: los Campos de Texto Nativos (con sus variantes Esttico, Din-mico y de Input) y los Componentes de Texto (dentro de los que encontramos aEtiqueta, rea de Texto e Input de Texto).

    Cada uno de ellos poseen funcionalidades diferentes, lo que determina sus distin-tos roles en una pelcula Flash:

    Campo Esttico (static): utilizado para aquellos contenidos que nicamentecumplen funciones grficas, por lo que no precisan ser actualizados, por ejemplo,palabras sueltas, prrafos o titulares, nombres de marcas, etc.

    Strings

    25

    01_FlashMaster.qxd 6/2/05 16:56 Page 25

  • Campo Dinmico (dynamic): utilizado cuando necesitamos operar con infor-macin cuya representacin grfica pueda ser actualizable en respuesta a diferen-tes situaciones (contenido del campo controlado a travs de ActionScript).

    Campo de Input (input): es muy similar al Dinmico, con la inclusin de unafuncin que permite capturar aquella informacin escrita por el usuario.

    El grupo de componentes de texto de la nueva versin MX 2004 responde a lanecesidad de acompaar la nueva arquitectura funcional de dicha versin. Encuanto a lo que concierne la representacin directa de texto, este conjunto noofrece mayores aportes que los Campos de Texto Nativos.

    Etiqueta (label): ingreso de caracteres en pequea cantidad y una nica lnea. rea de Texto (textArea): ingreso de caracteres que construyen oraciones y prra-

    fos. En cuanto a la informacin ingresada sobrepasa la superficie visible de carac-teres, automticamente se dibuja una barra de scroll en el margen derecho.

    Input de Texto (textInput): captura de datos del usuario.La lectura y escritura de datos es igual para todos los contenedores de texto: Ac-tionScript utiliza la propiedad text.

    // Campos de texto nativosinstancia_dynamic.text=Campo de Texto Dinmico;instancia_input.text=Campo de Texto de Input;// Componentes de textoinstancia_label.text=Componente Label;instancia_textarea.text=Componente Text Area;instancia_textinput.text=Componente Text Input;

    Figura 6. Los 6 tipos de campos de texto de Flash: Campos de Texto Nativos (Esttico,

    Dinmico y de Input) y Componentes de Texto (Etiqueta, rea de Texto e Input de Texto).

    FLASH MASTER

    26

    01_FlashMaster.qxd 6/2/05 16:56 Page 26

  • NUMBERSLos datos del tipo Number (nmero) pueden estar comprendidos dentro del univer-so de los enteros, decimales o especiales.

    var num:Number;// nmero enteronum=1979;num=0;num=-1979;// nmero decimalnum=19.79;num=-19.79;num=19.0;// nmero especial250/0; // Infinito

    Operaciones numricasLos nmeros pueden ser manipulados a travs de los operadores aritmticos de adi-cin (+), sustraccin (-), multiplicacin (*), divisin (/) y resto o mdulo (%).

    Toda operacin matemtica en Flash sigue las mismas reglas de orden que la mate-mtica tradicional, como ser:

    - Los signos + y - separan trminos.- Los parntesis agrupan tareas de evaluacin.

    trace (2 + 5 * 10 - 3); // => 49trace ((2 + 5) * 10 - 3); // => 67

    Numbers

    27

    newline nos permite incluir un salto de lnea en un string, tal cual sucede al tipear el cdigo de

    escape \n.

    trace (linea 1\nlinea 2);

    trace (linea 1 + newline + linea 2);

    NEWLINE

    01_FlashMaster.qxd 6/2/05 16:56 Page 27

  • Existen otros dos operadores de incremento (++) y decremento () que facilitan latarea de adicionar o sustraer en un uno (1) un valor determinado: valor++, ++valor,valor y valor. Las siguientes expresiones producen los mismos resultados:

    valor = valor+1;valor+=1; valor++;

    Mdulo (%)El mdulo entre dos cifras representa el resto surgido de dividir el primer operan-do con el segundo:

    trace (14 % 4) ; // => 2 (resto)

    14 puede ser dividido entre 3 partes iguales, resultando 2 como resto.14 = 4 x 3 (+ 2)

    La representacin que puede hacer Flash de un nmero se limita a 15 caracteres.Esto nada tiene que ver con el almacenamiento o manejo de los mismos, tan slocon su renderizacin.

    var n:Number=1234567890.1234567890;trace(n) // >> 1234567890.12346trace (10/3) // >> 3.33333333333333

    Funciones matemticasMs all de las operaciones tradicionales capaces de ser realizaradas con Flash (su-ma, resta, multiplicacin, divisin y mdulo), ActionScript cuenta con una clasenativa denominada Math, donde se encuentra el mayor repertorio de operacionescon nmeros:

    Mximo y mnimo: min(), max()

    Math.max (9,2) // => 9 (valor ms alto de los dos parmetros)Math.min (9,2) // => 2 (valor ms bajo de los dos parmetros)

    FLASH MASTER

    28

    01_FlashMaster.qxd 6/2/05 16:56 Page 28

  • Redondeo de valores: ceil(), floor(), round()

    Math.ceil (5.42); // => 6 (entero prximo hacia arriba)- cieloMath.floor (5.42); // => 5 (entero prximo hacia abajo) - pisoMath.round (5.42); // => 5 (entero prximo)- redondeo

    Valor absoluto: abs()

    Math.abs (2.4); // => 2.4 (valor despojado de signo + o -)Math.abs (-2.4); // => 2.4 (valor despojado de signo + o -)

    Raz y exponente: sqrt(), pow()

    Math.sqrt(9) // => 3 (raz cuadrada de nueve: 9)Math.pow(2,3) // => 8 (dos al cubo: 23)Math.pow(4,2) // => 16 (cuatro al cuadrado:42)

    Operaciones trigonomtricas: acos(), asin(), atan2(), cos(), sin(), tan()

    // resultado en radianesMath.sin(45); // => 0.850903524534118Math.cos(45); // => 0.52532198881773Math.tan(45); // => 1.61977519054386

    Si bien Flash maneja los ngulos en radianes, nosotros estamos acostumbrados a sulectura en grados. Es por ello que debemos realizar la conversin de sistemas paracomprender la operatoria:

    grados= (radianes / Pi ) * 180

    ARRAYSUn Array (tambin conocido como lista o arreglo) es un contenedor de mltiplesdatos donde cada valor ocupa un lugar especfico en la estructura.

    Arrays

    29

    01_FlashMaster.qxd 6/2/05 16:56 Page 29

  • Figura 7. Visualmente podemos asociar un array con una caja. Cada seccin recibe un

    ndice de posicin, que a su vez permite referenciar al elemento ocupado en dicho lugar.

    El primer tem es reconocido con el ndice 0 (cero), el segundo con el 1 (uno), etc.:

    var nom:String;var nombres:Array;

    nom=Julin;nombres=[Ruben, Carlos, Javier, Emanuel];

    /* anlisis del Array -elem 0: Ruben (String)elem 1: Carlos (String)elem 2: Javier (String)elem 3: Emanuel (String)*/

    Todo elemento que se incorpora a un Array recibe, ya sea de forma manual o auto-mtica, un ndice de posicin.

    Gnesis de ArraysTodas las siguientes expresiones generan un Array variable con los mismos elementos:

    var variable:Array// opcion 1variable = new Array (elem1, elem2, elem3);

    FLASH MASTER

    30

    01_FlashMaster.qxd 6/2/05 16:56 Page 30

  • // opcin 2variable = [elem1, elem2, elem3];

    // opcion 3variable = []; // o bien variable = new Array();variable [0] = elem1;variable [1] = elem2;variable [2] = elem3;

    Operaciones con Arrays

    Cantidad de elementos: length

    var nombres:Array = [Ruben, Carlos, Javier, Emanuel];trace (nombres.length) // => 4

    Incorporacin de elementos: push(), unshift (), splice()

    var nombres:Array = [Ruben, Carlos, Javier, Emanuel];// PUSH: nuevo elemento al final del Arraynombres.push(Juan);// => Ruben, Carlos, Javier, Emanuel, Juan

    // UNSHIFT: nuevo elemento al comienzo del Arraynombres.unshift (Mximo);// => Mximo, Ruben, Carlos, Javier, Emanuel, Juan// SPLICE: nuevo elemento en posicin determinadanombres.splice(2,0,Julin);// => Mximo, Ruben, Julin, Carlos, Javier, Emanuel, Juan

    Remocin de elementos: pop(), shift (), splice()

    var nombres:Array = [Ruben, Carlos, Javier, Emanuel];// POP: elimina ltimo elemento del Arraynombres.pop();// => Ruben, Carlos, Javier// SHIFT: elimina primer elemento del Array

    Arrays

    31

    01_FlashMaster.qxd 6/2/05 16:56 Page 31

  • nombres.shift();// => Carlos, Javier

    // SPLICE: elimina elemento en posicin determinada (desde, hasta)nombres.splice(1,1);// => Carlos

    Orden de elementos: reverse(), sort()

    var nombres:Array = [Ruben, Carlos, Javier, Emanuel];

    // SORT: orden alfanumerico ascendentenombres.sort();// => Carlos, Emanuel, Javier, Ruben

    // REVERSE: orden alfanumerico descendentenombres.reverse();// => Ruben, Javier, Emanuel, Carlos

    ESTRUCTURAS DE CONTROLSon construcciones especficas de cdigo capaces de modificar el flujo normal delscript. Entindase por normal a la linealidad de la ejecucin de sentencias; al hechode que en forma predeterminada Flash recorre las lneas de cdigo una a una, de iz-quierda a derecha, y de arriba hacia abajo, a la par que las va ejecutando.

    // flujo normaltrace (Veronica);trace (Diego);trace (Anton);// => resultado -VernicaDiegoAnton

    //

    FLASH MASTER

    32

    01_FlashMaster.qxd 6/2/05 16:56 Page 32

  • Estructuras condicionales (if, if-else, switch-case)Ejecutan una expresin/grupo de expresiones acorde con el resultado buleano (true/false o verdadero/falso) surgido de un determinado anlisis.

    if (si)

    // Teoria -if (true){

    // accin es ejecutada}

    // Prctica -if (6 (nada es devuelto ya que la condicin 6

  • // accin no es ejecutada

    } else {// accin es ejecutada por descarte

    }// Prctica -if (6 FALSO:6 no es menor que 5

    if - else if (si - en cambio si)

    // Teoria -if (false){

    // accin no es ejecutada} else if (true){

    // accin es ejecutada tras segundo chequeo}

    // Prctica -if (6

  • // accin ejecutadabreak; // se abandona la estructura

    case true:

    // accin ejecutadabreak; // se abandona la estructura

    default:// accin ejecutada como ltimo recurso

    }

    // Prctica -var temp:String=Julin;switch (temp){

    case Emanuel: // FALSEtrace (El nombre es Emanuel);break;

    case Julin: // TRUEtrace (El nombre es Julin);break; // abandona inmediatamente la estructura

    case Juan:

    trace (El nombre es Juan);break;

    default:trace (No tiene nombre); // nunca ser ejecutada

    }

    // => El nombre es Julin

    Estructuras iterativas o repetitivas (for, while, do-while)Ejecutan un cdigo incesantemente mientras se cumpla una condicin booleana (true).

    while (mientras que)

    // Teoria -while (condicion) {

    // accin ejecutada incesantemente}

    // Prctica var tmp:Number=1;

    Estructuras de control

    35

    01_FlashMaster.qxd 6/2/05 16:56 Page 35

  • while (tmp Vez nmero 1

    Vez nmero 2Vez nmero 3

    De no haber aumentado en 1 el valor de la variable tmp, la condicin tmp

  • // => Vez nmero 1Vez nmero 2Vez nmero 3

    while es prcticamente igual a su par do-while, con la nica diferencia que, en el l-timo caso, el cdigo dentro de las llaves del do siempre es ejecutado al menos unavez por ms que la condicin evaluada jams sea verdadera.

    for (versin compacta de while)

    // Teora for (inicializador; condicion; actualizador){

    // accines ejecutadas}

    // Prctica for (var tmp:Number=1; tmp Vez nmero 1Vez nmero 2Vez nmero 3

    Operadores lgicos y condicionalesExisten operadores que permiten evaluar una o varias expresiones dentro de un if.

    OPERADOR ACCIN CATEGORA

    && AND (y) Lgico

    || OR (o) Lgico

    ! NOT (no) Lgico

    == igualdad Condicional de igualdad

    != desigualdad Condicional de igualdad

    > mayor Condicional de comparacin

    < menor Condicional de comparacin

    >= mayor igual Condicional de comparacin

  • // &&(AND)if (condicion_1 && condicion_2 && condicion_3){

    // ejecutar si todas las condiciones se cumplan}// ||(OR)if (condicion_1 || condicion_2){

    // ejecutar si cualquiera de las condiciones se cumplen}// ||(OR)if (!condicion){

    // ejecutar si la condicion NO se cumple}

    FUNCIONESUna funcin consiste de una serie de instrucciones agrupadas bajo un nico deno-minador. Cuando invoco el nombre de una funcin, se ejecutan todas las expresio-nes existentes dentro de la misma.

    // Teora var nombre_funcion:Function;function nombre_funcion (){

    // ejecucin de script}

    // Prctica // declaracin de la funcinvar ejecutar:Function;function ejecutar (){

    trace (Se ha ejecutado la funcin);}

    // invoco la funcinejecutar(); // => Se ha ejecutado la funcin

    FLASH MASTER

    38

    01_FlashMaster.qxd 6/2/05 16:56 Page 38

  • Personalizacin de funcionesLas funciones tienen la capacidad de poder recibir parmetros, los cuales se encar-gan de individualizar la ejecucin del cdigo interno. En otras palabras, los par-metros nos permite reutilizar el script de una funcin, ejecutando nuevas y diferen-tes tareas con cada nueva invocacin.

    // Teora var nombre_funcion:Function;

    function nombre_funcion (param1:DataType, ...){// ejecucin de script

    }// Prctica

    // declaracin de la funcinvar saludar:Function;

    function saludar (nombre:String){trace (Buenos das + nombre);

    }

    // invoco la funcin con un parmetro Vernica

    saludar (Vernica);

    // => Buenos das Vernica

    saludar (Natalia); // => Buenos das Natalia

    El intrprete de Flash reemplaza los parmetros declarados entre parntesis por sucorrespondiente valor en el momento de ejecucin.

    Interrupcin de ejecucinEl comando return termina abruptamente con el procesamiento de una funcin,evitando que toda lnea de cdigo posterior sea siquiera leda.

    // declaracin de la funcinvar listar:Function;

    Funciones

    39

    01_FlashMaster.qxd 6/2/05 16:56 Page 39

  • function listar (){trace (Madre);trace (Padre);return; // fin de ejecucintrace (Hermano);

    }listar();

    // => MadrePadre

    Cuando return es precedido por otra expresin, su valor es devuelto a la par que lafuncin es abandonada.

    // - promedio de 3 notas var promedio:Function;

    function promedio (nota1:Number, nota2:Number):Number{var promedio = (nota1+nota2) /2;return promedio;

    }

    var prom_juan:Number=promedio(10,7);trace (prom_juan);// => 8,5

    var prom_vero:Number=promedio(5,4);trace (prom_vero);// => 4,5

    var prom_mati:Number=promedio(6,10);trace (prom_mati);// => 8

    FLASH MASTER

    40

    01_FlashMaster.qxd 6/2/05 16:56 Page 40

    MovieClips Gnesis Anatoma Comunicacin Orden de apilamiento Remocin Variables DataTypes Operaciones con variables Strings Representacin de strings Numbers Operaciones numricas Funciones matemticas Arrays Estructuras de control Funciones