Sie sind auf Seite 1von 760

REFERENCIA DEL LENGUAJE ACTIONSCRIPT DE FLASH LITE 2.

2007 Adobe Systems Incorporated. Todos los derechos reservados. Referencia del lenguaje ActionScript de Adobe Flash Lite 2.x Si este manual se distribuye con un software que contenga un contrato para usuarios finales, el manual, as como el software que en l se describe, se suministran bajo licencia y pueden utilizarse y copiarse segn lo dispuesto en los trminos de dicha licencia. Salvo en los casos permitidos por dicha licencia, queda prohibida la reproduccin de cualquier parte de este manual, su almacenamiento en un sistema de recuperacin, su transmisin (de cualquier forma o modo) electrnica, mecnica o mediante grabacin, sin el consentimiento previo por escrito de Adobe Systems Incorporated. Tenga en cuenta que el contenido de este manual est protegido por las leyes de copyright, incluso si no se distribuye con el software que incluye el contrato de licencia para usuarios finales. En contenido de este manual se suministra exclusivamente con fines informativos, est sujeto a cambios sin previo aviso y no debe entenderse como ningn compromiso por parte de Adobe Systems. Adobe Systems Incorporated declina toda responsabilidad por los posibles errores o imprecisiones que puedan aparecer en el contenido informativo de este manual. Recuerde que las ilustraciones o las imgenes que tal vez quiera incluir en su proyecto pueden estar protegidas por las leyes de copyright. La incorporacin no autorizada de este material en nuevos trabajos podra suponer una violacin de los derechos del propietario del copyright. Asegrese de haber obtenido los permisos necesarios del propietario del copyright. Cualquier referencia a nombres de empresas en las plantillas de muestras se incluyen nicamente con fines de demostracin y no pretenden hacer mencin directa a ninguna empresa real. Adobe, el logotipo de Adobe, Flash Lite y Flash are son marcas comerciales o marcas registradas de Adobe Systems Incorporated en los Estados Unidos y en otros pases. Informacin de terceros Esta gua contiene vnculos a sitios Web de terceros que no estn bajo el control de Adobe Systems Incorporated y, por consiguiente, Adobe Systems Incorporated no se hace responsable del contenido de dichos sitios Web. El acceso a uno de los sitios Web de terceros mencionados en esta gua ser a cuenta y riesgo del usuario. Adobe Systems Incorporated proporciona estos vnculos nicamente como ayuda y su inclusin no implica que Adobe Systems Incorporated se haga responsable del contenido de dichos sitios Web. La tecnologa de compresin y descompresin de vdeo Sorenson Spark tiene licencia de Sorenson Media, Inc. Fraunhofer-IIS/Thomson Multimedia: tecnologa de compresin de audio MPEG Layer-3 con licencia de Fraunhofer IIS y Thomson Multimedia (http://www.iis.fhg.de/amm/). Independent JPEG Group: este software est basado en parte del trabajo del Independent JPEG Group. Nellymoser, Inc.: tecnologa de compresin y descompresin de voz con licencia de Nellymoser, Inc. (http:www.nelly-moser.com). Navegador Opera Copyright 1995-2002 Opera Software ASA y sus proveedores. Todos los derechos reservados. Macromedia Flash 8 utiliza tecnologa de vdeo de On2 TrueMotion. 1992-2005 On2 Technologies, Inc. Todos los derechos reservados. http://www.on2.com. Visual SourceSafe es una marca registrada o una marca comercial de Microsoft Corporation en los Estados Unidos y en otros pases. Informacin actualizada e informacin adicional de cdigos de otros fabricantes disponible en http://www.adobe.com/go/thirdparty_es/. Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, EE.UU. Aviso para los usuarios finales del gobierno de EE.UU. Este Software y su Documentacin son Artculos comerciales, segn se define este trmino en 48 C.F.R. 2.101, y consta de Software comercial informtico y Documentacin de software comercial informtico, segn se definen estos trminos en 48 C.F.R. 12.212 o 48 C.F.R. 227.7202. En coherencia con lo descrito en 48 C.F.R. 12.212 o 48 C.F.R. de 227.7202-1 a 227.7202-4, segn sea aplicable, el Software comercial informtico y la Documentacin de software comercial informtico se otorgan bajo licencia a los usuarios finales del gobierno de EE.UU. (a) nicamente como artculos comerciales y (b) nicamente con los derechos garantizados al resto de usuarios finales de acuerdo con lo estipulado en sus trminos y condiciones. Los derechos no publicados quedan reservados al amparo de las leyes de copyright de los Estados Unidos. Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, EE.UU. Para los usuarios finales del gobierno de EE.UU., Adobe acuerda cumplir todas las leyes de igualdad de oportunidades aplicables, incluyendo (si procede) lo estipulado en la Executive Order 11246, corregida, en la seccin 402 de la Vietnam Era Veterans Readjustment Assistance Act de 1974 (38 USC 4212) y en la seccin 503 de la Rehabilitation Act de 1973, corregida, as como las normativas de 41 CFR partes 60-1 a 60-60, 60-250 y 60-741. La clusula de accin afirmativa y las normativas incluidas en la frase anterior se pueden incluir como referencia.

Contenido

Captulo 1: Elementos del lenguaje ActionScript. . . . . . . . . . . . . . . 5 Directivas del compilador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Constantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Funciones globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Propiedades globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Sentencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160 Comandos fscommand2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Captulo 2: Clases de ActionScript . . . . . . . . . . . . . . . . . . . . . . . 227 arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251 Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 capabilities (System.capabilities) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 ExtendedKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351 LoadVars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .413 MovieClipLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .501 Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 security (System.security) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 SharedObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 Stage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 String. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .601

System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 TextFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .668 Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .684 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .689 XMLNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 XMLSocket. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .729 Captulo 3: Cdigo ActionScript desfasado . . . . . . . . . . . . . . . 739 Resumen de funciones desfasadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . .739 Resumen de propiedades desfasadas . . . . . . . . . . . . . . . . . . . . . . . . . . 741 Resumen de operadores desfasados . . . . . . . . . . . . . . . . . . . . . . . . . . . 743 Captulo 4: ActionScript no admitido . . . . . . . . . . . . . . . . . . . . . 745 Clases no admitidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .745 Mtodos no admitidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .745 Propiedades no admitidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .745 Funciones globales no admitidas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746 Controladores de eventos no admitidos. . . . . . . . . . . . . . . . . . . . . . . . .746 Funciones fscommand no admitidas . . . . . . . . . . . . . . . . . . . . . . . . . . .746 ndice alfabtico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .747

Contenido

CAPTULO 1

Elementos del lenguaje ActionScript


En esta seccin se proporciona la sintaxis, informacin de uso y ejemplos de cdigo de funciones globales y propiedades (los elementos que no pertenecen a ninguna clase de ActionScript); directivas del compilador y constantes, operadores, sentencias y palabras clave utilizadas en ActionScript y definidas en el borrador de la especificacin del lenguaje ECMAScript (ECMA-262) edicin 4.

Directivas del compilador


Esta seccin contiene las directivas que deben incluirse en el archivo de ActionScript para dirigir al compilador en el preprocesamiento de determinadas instrucciones. Resumen de directivas del compilador
Directiva
#endinitclip

Descripcin
Directiva del compilador; indica el final de un bloque de acciones de inicializacin. Directiva del compilador: incluye el contenido del archivo especificado, como si los comandos del archivo formaran parte del script que realiza la llamada. Directiva del compilador; indica el comienzo de un bloque de acciones de inicializacin.

#include

#initclip

Directiva #endinitclip
#endinitclip

Directiva del compilador; indica el final de un bloque de acciones de inicializacin. Ejemplo


#initclip ...las acciones de inicializacin se insertan aqu... #endinitclip

Directiva #include
#include "[path]filename.as"

- No inserte un punto y coma (;) al final de la lnea que

contiene la sentencia #include. Directiva del compilador: incluye el contenido del archivo especificado, como si los comandos del archivo formaran parte del script que realiza la llamada. La directiva #include se invoca durante la compilacin. Por lo tanto, si realiza modificaciones en un archivo externo deber guardarlo y volver a compilar todos los archivos FLA que lo utilizan. Si utiliza el botn Revisar sintaxis en un script que contiene sentencias #include, tambin se revisar la sintaxis de los archivos incluidos. Puede utilizar #include en archivos FLA y en archivos de script externos, pero no en archivos de clase de ActionScript 2.0. Puede elegir entre no especificar ninguna ruta, especificar una ruta relativa o especificar una ruta absoluta del archivo que debe incluirse. Si no especifica ninguna ruta, el archivo AS debe encontrarse en una de las siguientes ubicaciones:

El mismo directorio que el archivo FLA. El mismo directorio que el script que contiene la sentencia #include El directorio Include global, cuya ruta puede ser: --Windows 2000 o Windows XP: C:\Documents and Settings\usuario \Local Settings\ Datos de programa\Macromedia\ Flash 8\idioma\Configuration\Include --Macintosh OS X: Disco duro/Users/Library/ Application Support/Macromedia/Flash 8/idioma/Configuration/Include El directorio Programa Flash 8\idioma\First Run\Include; si se guarda aqu un archivo, se copiar al directorio Include global la prxima vez que se inicie Flash.

Para especificar una ruta relativa del archivo AS, utilice un punto (.) para indicar el directorio actual, dos puntos ..) para indicar un directorio principal y barras diagonales (/) para indicar subdirectorios. Lea la siguiente seccin de ejemplo. Para especificar una ruta absoluta del archivo AS, utilice el formato compatible con su plataforma (Macintosh o Windows). Lea la siguiente seccin de ejemplo. (No se recomienda este uso porque requiere tener la misma estructura de directorios en cualquier equipo que se utilice para compilar el script.) Si coloca archivos en el directorio First Run/Include o en el directorio Include global, realice una copia de seguridad de dichos archivos. Si alguna vez necesita desinstalar Flash y volver a instalarlo, es posible que se eliminen y sobrescriban estos directorios.

Elementos del lenguaje ActionScript

Parmetros
[path]filename.as

- filename.asEl nombre de archivo y la ruta opcional del script que se aadirn al panel Acciones o al script actual; .as es la extensin de nombre de archivo recomendada. Ejemplo Los ejemplos siguientes muestran varias formas de especificar una ruta para un archivo que se va a incluir en el script:

// Tenga en cuenta que las sentencias #include no finalizan con un punto y coma (;) // El archivo AS se ubica en el mismo directorio que el archivo FLA o el script // o bien se encuentra en el directorio Include global o en el directorio First Run/Include #include "init_script.as" // El archivo AS se encuentra en un subdirectorio de uno de los directorios anteriores // El subdirectorio se llama "FLA_includes" #include "FLA_includes/init_script.as" // El archivo AS se encuentra en un subdirectorio del directorio de archivos de script // El subdirectorio se llama "SCRIPT_includes" #include "SCRIPT_includes/init_script.as" // El archivo AS se encuentra en un directorio al mismo nivel que uno de los directorios anteriores // El archivo AS se encuentra en un directorio al mismo nivel que el directorio // que contiene el archivo de script // El subdirectorio se llama "ALL_includes" #include "../ALL_includes/init_script.as" // El archivo AS se especifica mediante una ruta absoluta en Windows // Tenga en cuenta el uso de las barras diagonales, no el de las barras invertidas #include "C:/Flash_scripts/init_script.as" // El archivo AS se especifica mediante una ruta absoluta en Macintosh #include "Mac HD:Flash_scripts:init_script.as"

Directivas del compilador

Directiva #initclip
#initclip order - No inserte un punto y coma (;) al final de la lnea que contiene la sentencia #initclip.

Directiva del compilador; indica el comienzo de un bloque de acciones de inicializacin. Cuando se inicializan varios clips simultneamente, se puede utilizar el parmetro order para especificar la inicializacin que se ejecuta en primer lugar. Las acciones de inicializacin se ejecutan cuando se define un smbolo de clip de pelcula. Si el clip de pelcula es un smbolo exportado, las acciones de inicializacin se ejecutan antes que la acciones en el fotograma 1 del archivo SWF. De lo contrario, se ejecutan inmediatamente antes que las acciones del fotograma que contiene la primera instancia del smbolo de clip de pelcula asociado. Las acciones de inicializacin se ejecutan slo una vez cuando se reproduce un archivo SWF; utilcelas para inicializaciones que se realizan una vez, como la definicin de clases y el registro. Parmetros
order

- Un entero no negativo que especifica el orden de ejecucin de bloques de cdigo

#initclip. Este parmetro es opcional. Debe especificar el valor utilizando un literal entero (slo

se permiten valores decimales, no hexadecimales) y sin utilizar variables. Si incluye varios bloques #initclip en un solo smbolo de clip de pelcula, el compilador utiliza el ltimo valor order especificado en ese smbolo de clip de pelcula para todos los bloques #initclip del mismo. Ejemplo En el ejemplo siguiente, se inserta cdigo ActionScript en el fotograma 1 de una instancia de clip de pelcula. En el mismo directorio se inserta el archivo de texto variables.txt.
#initclip trace("initializing app"); var variables:LoadVars = new LoadVars(); variables.load("variables.txt"); variables.onLoad = function(success:Boolean) { trace("variables loaded:"+success); if (success) { for (i in variables) { trace("variables."+i+" = "+variables[i]); } } }; #endinitclip

Elementos del lenguaje ActionScript

Constantes
Una constante es una variable que se utiliza para representar una propiedad cuyo valor no cambia nunca. En esta seccin se describen las constantes globales disponibles en cada script. Resumen de constantes
Modificadores Constante
false

Descripcin
Valor booleano exclusivo que representa lo contrario de true. Especifica el valor IEEE-754 que representa el infinito positivo. Especifica el valor IEEE-754 que representa el infinito negativo. Variable predefinida con el valor IEEE-754 para NaN (no es un nmero). Inserta un carcter de retorno de carro (\r) que genera una lnea en blanco en la salida de texto que genera el cdigo. Valor especial que puede asignarse a las variables o ser devuelto por una funcin si no se ha proporcionado ningn dato. Valor booleano exclusivo que representa lo contrario de false. Valor especial que normalmente se utiliza para indicar que todava no se ha asignado un valor a una variable.

Infinity

-Infinity

NaN

newline

null

true

undefined

Constantes

Constante false
Valor booleano exclusivo que representa lo contrario de true. Cuando la introduccin automtica de datos convierte false en un nmero, pasa a ser 0; cuando convierte false en una cadena, pasa a ser "false". Ejemplo Este ejemplo muestra cmo la introduccin automtica de datos convierte false en un nmero y en una cadena:
var bool1:Boolean = Boolean(false); // lo convierte en el nmero 0 trace(1 + bool1); // produce 1 // lo convierte en una cadena trace("String: " + bool1); // produce String: false

Constante Infinity
Especifica el valor IEEE-754 que representa el infinito positivo. El valor de esta constante es igual que Number.POSITIVE_INFINITY. Vase tambin
POSITIVE_INFINITY (propiedad Number.POSITIVE_INFINITY)

Constante -Infinity
Especifica el valor IEEE-754 que representa el infinito negativo. El valor de esta constante es igual que Number.NEGATIVE_INFINITY. Vase tambin
NEGATIVE_INFINITY (propiedad Number.NEGATIVE_INFINITY)

Constante NaN
Variable predefinida con el valor IEEE-754 para NaN (no es un nmero). Para determinar si un nmero es NaN, utilice isNaN(). Vase tambin
Funcin isNaN, NaN (propiedad Number.NaN)

10

Elementos del lenguaje ActionScript

Constante newline
Inserta un carcter de retorno de carro (\r) que genera una lnea en blanco en la salida de texto que genera el cdigo. Utilice newline para crear un espacio donde ubicar la informacin que recupera una funcin o sentencia del cdigo. Ejemplo El ejemplo siguiente muestra cmo newline presenta el resultado de la sentencia trace() en varias lneas.
var myName:String = "Lisa", myAge:Number = 30; trace(myName+myAge); trace("-----"); trace(myName+newline+myAge); // salida: Lisa30 ----Lisa 30

Vase tambin
Funcin trace

Constante null
Valor especial que puede asignarse a las variables o ser devuelto por una funcin si no se ha proporcionado ningn dato. Puede utilizar null para representar los valores que faltan o que no tienen un tipo de datos definido. Ejemplo En un contexto numrico, null da como resultado 0. Las pruebas de igualdad se pueden realizar con null. En esta sentencia, un nodo de rbol binario no tiene elemento secundario a la izquierda, por lo que el campo para este elemento podra establecerse en null.
if (tree.left == null) { tree.left = new TreeNode(); }

Constantes

11

Constante true
Valor booleano exclusivo que representa lo contrario de false. Cuando la introduccin automtica de datos convierte true en un nmero, pasa a ser 1; cuando convierte true en una cadena, pasa a ser "true". Ejemplo El ejemplo siguiente muestra el uso de true en una sentencia if:
var shouldExecute:Boolean; // ... // el cdigo que establece shouldExecute en true o en false se escribe aqu // shouldExecute se establece en true para este ejemplo: shouldExecute = true; if (shouldExecute == true) { trace("your statements here"); } // true tambin es implcito, por lo que la sentencia tambin se podra escribir: // if (shouldExecute) { // trace("your statements here"); // }

El ejemplo siguiente muestra cmo la introduccin automtica de datos convierte true en el nmero 1:
var myNum:Number; myNum = 1 + true; trace(myNum); // salida: 2

Vase tambin
Constante false, Boolean

Constante undefined
Valor especial que normalmente se utiliza para indicar que todava no se ha asignado un valor a una variable. Una referencia a un valor undefined devuelve el valor especial undefined. El cdigo ActionScript typeof(undefined) devuelve la cadena "undefined". El nico valor de tipo undefined es undefined. En los archivos publicados para Flash Player 6 o anterior, el valor de String(undefined) es "" (una cadena vaca). En los archivos publicados para Flash Player 7 o posterior, el valor de String(undefined) es "undefined" (undefined se convierte en una cadena).

12

Elementos del lenguaje ActionScript

En los archivos publicados para Flash Player 6 o anterior, el valor de Number(undefined) es 0. En los archivos publicados para Flash Player 7 o posterior, el valor de Number(undefined) es NaN. El valor undefined es similar al valor especial null. Cuando null y undefined se comparan con el operador de igualdad (==), se comparan como iguales. Sin embargo, cuando null y undefined se comparan con el operador de igualdad estricta (===), se comparan como no iguales. Ejemplo En el ejemplo siguiente no se ha declarado la variable x y, por tanto, tiene el valor undefined. En la primera seccin del cdigo, el operador de igualdad (==) compara el valor de x con el valor undefined y enva el resultado correspondiente al panel Salida. En la primera seccin del cdigo, el operador de igualdad (==) compara el valor de x con el valor undefined y enva el resultado correspondiente al archivo de registro. En la segunda seccin del cdigo, el operador de igualdad (==) compara los valores null y undefined.
// x no se ha declarado trace("The value of x is "+x); if (x == undefined) { trace("x is undefined"); } else { trace("x is not undefined"); } trace("typeof (x) is "+typeof (x)); if (null == undefined) { trace("null and undefined are equal"); } else { trace("null and undefined are not equal"); }

El resultado siguiente se muestra en el panel Salida.


The value of x is undefined x is undefined typeof (x) is undefined null and undefined are equal

Constantes

13

Funciones globales
Esta seccin contiene un conjunto de funciones incorporadas que se encuentran disponibles en cualquier parte de un archivo SWF donde se utilice ActionScript. Estas funciones globales abarcan una gran variedad de tareas de programacin frecuentes como, por ejemplo, trabajar con tipos de datos (Boolean(), iint(), etc.), proporcionar informacin de depuracin (trace()) y comunicarse con Flash Player o con el navegador (fscommand()). Resumen de funciones globales
Modificadores Firma
Array([numElements ], [elementN]) : Array Boolean(expression :Object) : Boolean call(frame:Object)

Descripcin
Crea una nueva matriz vaca o convierte determinados elementos en una matriz. Convierte el parmetro expression en un valor booleano y devuelve true o false. Desfasada desde Flash Player 5. Esta accin est desfasada y en su lugar debe utilizarse la sentencia function. Ejecuta el script en el fotograma llamado sin mover la cabeza lectora a ese fotograma. Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse String.fromCharCode(). Convierte nmeros de cdigo ASCII en caracteres. Cancela un intervalo creado por una llamada a setInterval(). Crea una instancia de un clip de pelcula durante la reproduccin del archivo SWF.

chr(number:Number) : String

clearInterval(inte rvalID:Number) duplicateMovieClip (target:Object, newname:String, depth:Number) escape(expression: String) : String

Convierte el parmetro en una cadena y la codifica con un formato URL codificado donde todos los caracteres no alfanumricos se sustituyen por secuencias hexadecimales %. Accede a las variables, propiedades, objetos o clips de pelcula por su nombre.

eval(expression:Ob ject) : Object fscommand(command: String,

Permite que un archivo SWF se comunique con el reproductor Flash Lite o con el entorno para un parameters:String) dispositivo mvil (como un sistema operativo).

14

Elementos del lenguaje ActionScript

Modificadores

Firma
fscommand2(command :String,

Descripcin

Permite que el archivo SWF se comunique con el reproductor Flash Lite o con la aplicacin host de parameters:String) un dispositivo mvil.
getProperty(my_mc: Object, property:Object) : Object

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse la sintaxis con puntos, introducida en Flash Player 5. Devuelve el valor de la propiedad especificada para el clip de pelcula my_mc. desde que se inici la reproduccin del archivo SWF.

getTimer() : Number Devuelve el nmero de milisegundos transcurridos

getURL(url:String, [window:String], [method:String]) getVersion() : String gotoAndPlay([scene :String], frame:Object) gotoAndStop([scene :String], frame:Object)

Carga un documento de una URL especfica en una ventana o pasa variables a otra aplicacin en una URL definida. Devuelve una cadena que contiene informacin de la versin de Flash Player y de la plataforma. Enva la cabeza lectora al fotograma especificado en una escena y reproduce desde dicho fotograma. Enva la cabeza lectora al fotograma especificado en una escena y la detiene.

Desfasada desde Flash Player 5. Esta funcin est desfasada. Adobe recomienda la utilizacin de la propiedad MovieClip._framesloaded. frame:Object, statement(s):Objec Comprueba si el contenido de un fotograma especfico est disponible localmente. t)
ifFrameLoaded([sce ne:String], int(value:Number) : Desfasada desde Flash Player 5. Esta funcin Number

est desfasada y en su lugar debe utilizarse Math.round(). Convierte un nmero decimal en un valor de entero truncando el valor decimal. Evala expression y devuelve true si es un negativo.

isFinite(expressio

n:Object) : Boolean nmero finito o false si es infinito o infinito

isNaN(expression:O bject) : Boolean

Evala el parmetro y devuelve true si el valor es NaN (no es un nmero).

Funciones globales

15

Modificadores

Firma
length(expression: String, variable:Object) : Number

Descripcin
Desfasada desde Flash Player 5. Esta funcin, junto con todas las funciones string, est desfasada. Adobe recomienda que utilice los mtodos de la clase String y la propiedad String.length para realizar las mismas operaciones. Devuelve la longitud de la cadena o la variable especificada. Carga un archivo SWF o JPEG en Flash Player durante la reproduccin del archivo SWF original. Carga un archivo SWF o JPEG en un nivel de Flash Player durante la reproduccin del archivo SWF que se carg originalmente. Lee datos de un archivo externo, como un archivo de texto o texto generado por ColdFusion, un script CGI, pginas Active Server (ASP), script PHP o Perl, y establece los valores de las variables en un clip de pelcula de destino. Lee datos de un archivo externo, como un archivo de texto o texto generado por ColdFusion, script CGI, pginas Active Server (ASP), script PHP o Perl, y establece los valores de las variables en un nivel de Flash Player. Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse el mtodo String.fromCharCode(). Convierte un nmero de cdigo ASCII en un carcter multibyte. Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse la propiedad String.length. Devuelve la longitud de la cadena de caracteres multibyte. Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse el mtodo String.charCodeAt(). Convierte el carcter especificado en un nmero multibyte.

loadMovie(url:Stri ng, target:Object, [method:String]) loadMovieNum(url:S tring, level:Number, [method:String]) loadVariables(url: String, target:Object, [method:String])

loadVariablesNum(u rl:String, level:Number, [method:String])

mbchr(number:Numbe r)

mblength(string:St ring) : Number

mbord(character:St ring) : Number

16

Elementos del lenguaje ActionScript

Modificadores

Firma
mbsubstring(value: String, index:Number, count:Number) : String nextFrame() nextScene()

Descripcin
Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse el mtodo String.substr(). Extrae una cadena de caracteres multibyte nueva de la cadena de caracteres multibyte. Enva la cabeza lectora al siguiente fotograma. Enva la cabeza lectora al fotograma 1 de la siguiente escena. Convierte el parmetro expression en un nmero. Crea un nuevo objeto vaco o convierte en un objeto el nmero, cadena o valor booleano especificado. Especifica el evento de ratn o la pulsacin de tecla que activa una accin. Activa acciones definidas para una determinada instancia de un clip de pelcula. Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar deben utilizarse los mtodos y propiedades de la clase String. Convierte caracteres en nmeros de cdigo ASCII. Convierte una cadena en un nmero de coma flotante. Convierte una cadena en un entero.

Number(expression: Object) : Number Object([value:Obje ct]) : Object

on(mouseEvent:Obje ct) onClipEvent(movieE vent:Object) ord(character:Stri ng) : Number

parseFloat(string: String) : Number parseInt(expressio n:String, [radix:Number]) : Number play()

Mueve la cabeza lectora hacia delante en la lnea de tiempo. Enva la cabeza lectora al fotograma anterior. Enva la cabeza lectora al fotograma 1 de la escena anterior. Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse Math.random(). Devuelve un entero aleatorio entre 0 y uno menos que el entero especificado en el parmetro value.

prevFrame() prevScene()

random(value:Numbe r) : Number

Funciones globales

17

Modificadores

Firma
removeMovieClip(ta rget:Object) setInterval(functi onName:Object, interval:Number, [param:Object], objectName:Object, methodName:String) : Number setProperty(target :Object, property:Object, expression:Object) startDrag(target:O bject, [lock:Boolean], [left,top,right,bo ttom:Number]) stop()

Descripcin
Elimina el clip de pelcula especificado. Llama a una funcin, un mtodo o un objeto en intervalos peridicos durante la reproduccin de un archivo SWF.

Cambia un valor de propiedad de un clip de pelcula durante la reproduccin del clip de pelcula. Permite arrastrar el clip de pelcula target durante la reproduccin de la pelcula.

Detiene el archivo SWF que se est reproduciendo. Detiene todos los sonidos que se estn reproduciendo en un archivo SWF sin detener la cabeza lectora. Detiene la operacin de arrastre actual. Devuelve una representacin de cadena del parmetro especificado. Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse String.substr(). Extrae parte de una cadena. Devuelve una cadena que contiene la ruta de destino de movieClipObject.

stopAllSounds()

stopDrag() String(expression: Object) : String substring(string:S tring, index:Number, count:Number) : String targetPath(targetO bject:Object) : String

18

Elementos del lenguaje ActionScript

Modificadores

Firma
tellTarget(target: String,

Descripcin

Desfasada desde Flash Player 5. Adobe recomienda el uso de notacin con puntos (.) y la statement(s):Objec sentencia with. Aplica las instrucciones especificadas en el t) parmetro statements a la lnea de tiempo especificada en el parmetro target.
toggleHighQuality() Desfasada desde Flash Player 5. Esta funcin est

desfasada y en su lugar debe utilizarse _quality. Activa y desactiva el suavizado en Flash Player.
trace(expression:O bject) unescape(string:St ring) : String

Evala la expresin y produce el resultado. Evala el parmetro x como una cadena, descodifica la cadena con formato URL codificado (convirtiendo todas las secuencias hexadecimales en caracteres ASCII) y devuelve la cadena. loadMovie() desde Flash Player.

unloadMovie(target) Elimina un clip de pelcula que se carg mediante

unloadMovieNum(lev el:Number)

Elimina un archivo SWF o una imagen que se carg mediante loadMovieNum() desde Flash Player.

Funcin Array
Array(): Array Array(numElements:Number): Array Array([element0:Object [, element1, element2, ...elementN] ]) : Array

Crea una nueva matriz de longitud cero o ms, o una matriz con una lista de elementos especificados, posiblemente de distintos tipos de datos. Permite crear una de las matrices siguientes:

una matriz vaca. una matriz de longitud especfica pero con elementos con valores undefined. una matriz cuyos elementos tienen valores especficos.

El uso de esta funcin es similar a la creacin de una matriz con el constructor Array (vase "Constructor de la clase Array"). Puede pasar un nmero (numElements) o una lista de elementos que contenga uno o varios tipos (element0, element1, ... elementN). Los parmetros que pueden aceptar ms de un tipo de datos se muestran en la firma como tipo Object.

Funciones globales

19

Parmetros
numElements

[opcional] - Un entero positivo que especifica el nmero de elementos de la matriz. Puede especificar numElements o la lista de elementos, pero no los dos.

[opcional] - uno o varios parmetros, element0, element1, ... , elementN, cuyos valores pueden ser de cualquier tipo. Los parmetros que pueden aceptar ms de un tipo de datos se engloban en el tipo Object. Puede especificar numElements o la lista de elementos, pero no los dos.
elementN

Valor devuelto
Array

- Una matriz.

Ejemplo
var myArray:Array = Array(); myArray.push(12); trace(myArray); //rastrea 12 myArray[4] = 7; trace(myArray); //rastrea 12,undefined,undefined,undefined,7

Sintaxis 2: El ejemplo siguiente crea una matriz de longitud 4 pero sin elementos definidos:
var myArray:Array = Array(4); trace(myArray.length); // rastrea 4 trace(myArray); // rastrea undefined,undefined,undefined,undefined

Sintaxis 3: El ejemplo siguiente crea una matriz con tres elementos definidos:
var myArray:Array = Array("firstElement", "secondElement", "thirdElement"); trace (myArray); // rastrea firstElement,secondElement,thirdElement A diferencia del constructor de la clase Array, la funcin Array() no utiliza la palabra clave new.

Vase tambin
Array

20

Elementos del lenguaje ActionScript

Funcin Boolean
Boolean(expression:Object) : Boolean

Convierte el parmetro expression en un valor booleano y devuelve un valor como se describe en la siguiente lista:

Si expression es un valor booleano, el valor devuelto es expression. Si expression es un nmero, el valor devuelto es true si el nmero no es cero; en caso contrario, el valor devuelto es false. En el caso de archivos publicados para Flash Player 6 o versiones anteriores, la cadena se convierte primero en un nmero; el valor es true si el nmero no es cero, y false en el resto de los casos. En archivos publicados para Flash Player 7 o posterior, el resultado es true si la longitud de la cadena es mayor que cero; el valor es false si la cadena est vaca.

Si expression es una cadena, el valor devuelto es el siguiente:

Si expression es una cadena, el resultado es true si la longitud de la cadena es mayor que cero; el valor es false si la cadena est vaca.

Si expression es undefined o NaN (no un nmero), el valor devuelto es false. Si expression es un clip de pelcula o un objeto, el valor devuelto es true.

A diferencia del constructor de la clase Boolean, la funcin Boolean() no utiliza la palabra clave new. Adems, el constructor de la clase Boolean inicializa un objeto Boolean como false si no se especifica ningn parmetro, mientras que la funcin Boolean() devuelve undefined si no se especifica ningn parmetro. Parmetros
expression:Object

- Una expresin para convertir en un valor booleano.

Valor devuelto
Boolean

- Valor booleano.

Ejemplo
trace(Boolean(-1)); // salida: true trace(Boolean(0)); // salida: false trace(Boolean(1)); // salida: true

trace(Boolean(true)); // salida: true trace(Boolean(false)); // salida: false

Funciones globales

21

trace(Boolean("true")); // salida: true trace(Boolean("false")); // salida: true trace(Boolean("Craiggers")); // salida: true trace(Boolean("")); // salida: false

Si los archivos se publican para Flash Player 6 y versiones anteriores, los resultados sern diferentes para tres de los ejemplos anteriores:
trace(Boolean("true")); // salida: false trace(Boolean("false")); // salida: false trace(Boolean("Craiggers")); // salida: false

Este ejemplo muestra una diferencia significativa entre el uso de la funcin Boolean() y la clase Boolean. La funcin Boolean() crea un valor booleano, mientras que la clase Boolean crea un objeto booleano. Los valores booleanos se comparan por valor y los objetos booleanos se comparan por referencia.
// Las variables que representan valores booleanos se comparan por su valor var a:Boolean = Boolean("a"); // a tiene el valor true var b:Boolean = Boolean(1); // b tiene el valor true trace(a==b); // true // Las variables que representan objetos booleanos se comparan por su referencia var a:Boolean = new Boolean("a"); // a tiene el valor true var b:Boolean = new Boolean(1); // b tiene el valor true trace(a == b); // false

Vase tambin
Boolean

Funcin call
call(frame)

Desfasada desde Flash Player 5. Esta accin est desfasada y en su lugar debe utilizarse la sentencia function. Ejecuta el script en el fotograma llamado sin mover la cabeza lectora a ese fotograma. Las variables locales no existen despus de ejecutar el script.

Si no se declaran variables en un bloque ({}) pero la lista de acciones de ejecut con una accin call(), las variables sern locales y caducarn al final de la lista actual. Si no se declaran variables en un bloque y la lista de acciones actual no se ejecut con la accin call(), las variables se interpretarn como variables de la lnea de tiempo.

22

Elementos del lenguaje ActionScript

Parmetros
frame:Object

- La etiqueta o el nmero de un fotograma en la lnea de tiempo.

Vase tambin
Sentencia function, call (mtodo Function.call)

Funcin chr
chr(number) : String

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse String.fromCharCode(). Convierte nmeros de cdigo ASCII en caracteres. Parmetros
number:Number

- Un nmero de cdigo ASCII.

Valor devuelto
String

- El valor de carcter del cdigo ASCII especificado.

Ejemplo El ejemplo siguiente convierte el nmero 65 en la letra A y la asigna a la variable myVar: myVar
= chr(65);

Vase tambin
fromCharCode (mtodo String.fromCharCode)

Funcin clearInterval
clearInterval(intervalID:Number) : Void

Cancela un intervalo creado por una llamada a setInterval(). Parmetros


intervalID:Number setInterval().

- Un identificador numrico (entero) devuelto desde una llamada a

Funciones globales

23

Ejemplo El ejemplo siguiente establece primero y luego borra una llamada de intervalo:
function callback() { trace("interval called: "+getTimer()+" ms."); } var intervalID:Number = setInterval(myTimer, 1000);

clearInt_btn

Necesita borrar el intervalo cuando termine de utilizar la funcin. Cree un botn llamado y utilice el cdigo ActionScript siguiente para borrar setInterval():

clearInt_btn.onRelease = function(){ clearInterval(intervalID); trace("cleared interval"); };

Vase tambin
Funcin setInterval

Funcin duplicateMovieClip
duplicateMovieClip(target:String, newname:String, depth:Number) : VoidduplicateMovieClip(target:MovieClip, newname:String, depth:Number) : Void

Crea una instancia de un clip de pelcula durante la reproduccin del archivo SWF. En los clips de pelcula duplicados, la cabeza lectora siempre empieza en el fotograma 1, independientemente del lugar en el que se encuentre la cabeza lectora del clip de pelcula original. Las variables del clip de pelcula original no se copian en el clip de pelcula duplicado. Utilice la funcin o el mtodo removeMovieClip() para eliminar una instancia de clip de pelcula creada mediante duplicateMovieClip(). Parmetros
target:Object

- La ruta de destino del clip de pelcula que se va a duplicar. Este parmetro puede ser una cadena (por ejemplo, "my_mc") o una referencia directa a la instancia de clip de pelcula (por ejemplo, my_mc). Los parmetros que pueden aceptar ms de un tipo de datos se engloban en el tipo Object. - Identificador exclusivo del clip de pelcula duplicado.

newname:String

24

Elementos del lenguaje ActionScript

depth:Number

- Nivel de profundidad exclusivo del clip de pelcula duplicado. El nivel de profundidad es el orden de apilamiento de los clips de pelcula duplicados. Este orden de apilamiento es similar al de las capas de la lnea de tiempo; los clips de pelcula con un nivel de profundidad inferior se ocultan bajo los clips con un orden de apilamiento superior. Debe asignar a cada clip de pelcula duplicado un nivel de profundidad exclusivo para evitar la sustitucin de archivos SWF en niveles de profundidad ocupados. Ejemplo

En el ejemplo siguiente, se crea un nuevo clip de pelcula con el nombre img_mc.. Se carga una imagen en el clip de pelcula y, a continuacin, se duplica el clip img_mc. El clip duplicado se llama newImg_mc y este nuevo clip pasa al escenario para que no se superponga al clip original, y se carga la misma imagen en el segundo clip.
this.createEmptyMovieClip("img_mc", this.getNextHighestDepth()); img_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); duplicateMovieClip(img_mc, "newImg_mc", this.getNextHighestDepth()); newImg_mc._x = 200; newImg_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg");

Para eliminar el clip de pelcula duplicado puede aadir este cdigo para un botn llamado myButton_btn.
this.myButton_btn.onRelease = function(){ removeMovieClip(newImg_mc); };

Vase tambin
Funcin removeMovieClip, duplicateMovieClip (mtodo MovieClip.duplicateMovieClip), removeMovieClip (mtodo MovieClip.removeMovieClip)

Funcin escape
escape(expression:String) : String

Convierte el parmetro en una cadena y la codifica con un formato URL codificado donde todos los caracteres no alfanumricos se sustituyen por secuencias hexadecimales %. Si se utiliza en una cadena con codificacin URL, el smbolo de porcentaje (%) introduce caracteres de escape y no equivale al operador de mdulo (%).

Funciones globales

25

Parmetros
expression:String

- Expresin para convertir en una cadena y codificar en un formato

URL codificado. Valor devuelto


String

- Cadena con codificacin URL.

Ejemplo El siguiente cdigo genera el resultado someuser%40somedomain%2Ecom:


var email:String = "someuser@somedomain.com"; trace(escape(email));

En este ejemplo, el smbolo de arroba (@) se ha sustituido por %40 y el smbolo de punto (.), por %2E. Estas sustituciones resultan tiles cuando se intenta pasar informacin a un servidor remoto y los datos contienen caracteres especiales (por ejemplo, & o ?), como se muestra en el cdigo siguiente:
var redirectUrl = "http://www.somedomain.com?loggedin=true&username=Gus"; getURL("http://www.myothersite.com?returnurl="+ escape(redirectUrl));

Vase tambin
Funcin unescape

Funcin eval
eval(expression:Object) : Objecteval(expression:String) : Object

Accede a las variables, propiedades, objetos o clips de pelcula por su nombre. Si la expresin es una variable o una propiedad, se devuelve el valor de la variable o propiedad. Si la expresin es un objeto o clip de pelcula, se devuelve una referencia al objeto o clip de pelcula. Si no se encuentra el elemento designado en la expresin, se devuelve undefined. En Flash 4, se utilizaba eval() para simular matrices; en Flash 5 o posterior, debera utilizarse la clase Array para simular matrices. En Flash 4, se puede utilizar adems eval() para establecer y recuperar dinmicamente el valor de una variable o nombre de instancia. Sin embargo, esto tambin puede realizarse mediante el operador de acceso a la matriz ([]). En Flash 5 o posterior, no se puede utilizar eval() para establecer y recuperar dinmicamente el valor de una variable o nombre de instancia porque no se puede utilizar eval() en el lado izquierdo de una ecuacin. Por ejemplo, sustituya el cdigo
eval ("var" + i) = "first";

26

Elementos del lenguaje ActionScript

por esto:
this["var"+i] = "first"

o esto:
set ("var" + i, "first");

Parmetros
expression:Object - El nombre de una variable, propiedad, objeto o clip de pelcula que debe recuperarse. Este parmetro puede ser una cadena o una referencia directa a la instancia del objeto (el uso de las comillas (" ") es opcional).

Valor devuelto
Object

- Un valor, una referencia a un objeto o clip de pelcula, o undefined.

Ejemplo El ejemplo siguiente utiliza eval() para establecer propiedades para clips de pelcula con nombres dinmicos. Este cdigo ActionScript define la propiedad _rotation para tres clips de pelcula, denominados square1_mc, square2_mc y square3_mc.
for (var i = 1; i <= 3; i++) { setProperty(eval("square"+i+"_mc"), _rotation, 5); }

Tambin puede utilizar el cdigo ActionScript siguiente:


for (var i = 1; i <= 3; i++) { this["square"+i+"_mc"]._rotation = -5; }

Vase tambin
Array, Sentencia set variable

Funciones globales

27

Funcin fscommand
fscommand(command:String, parameters:String) : Void

La funcin fscommand() permite que un archivo SWF se comunique con el reproductor Flash Lite o con el entorno para un dispositivo mvil (como un sistema operativo). Los parmetros definen el nombre de la aplicacin que se inicia y sus parmetros correspondientes, separados por comas.
Comando
launch

Parmetros
application-path, arg1, arg2,..., argn

Propsito
Este comando inicia otra aplicacin en un dispositivo mvil. El nombre de la aplicacin y sus parmetros se pasan como un solo argumento. Nota: esta funcin depende del sistema operativo. Utilice este comando con precaucin, ya que podra llamar al dispositivo host y realizar una operacin no admitida. Si esto ocurriese, podra bloquear el dispositivo host. Este comando slo est admitido si el reproductor Flash Lite se ejecuta en modo independiente. No est admitido si el reproductor se ejecuta en el contexto de otra aplicacin (por ejemplo, como complemento de un navegador).

28

Elementos del lenguaje ActionScript

Comando
activateTextField

Parmetros
"" (ignored)

Propsito
Este comando activa de forma asncrona el campo de texto seleccionado actualmente y lo activa para que los usuarios puedan editarlo. Dado su comportamiento asncrono, este comando se procesa al final del fotograma. El cdigo ActionScript que sigue justo despus de la llamada a fscommand() se ejecuta en primer lugar. Si no hay ningn campo de texto seleccionado al procesarse el comando, no ocurre nada. Este comando resalta un campo de texto pasado previamente al mtodo Selection.setFocus() y activa el campo de texto para poder editarlo. Este comando surte efecto nicamente si el telfono admite edicin de texto en lnea. Este comando se puede llamar como parte de la funcin callback del detector de eventos Selection.onSetFocus(). Esto hace que los campos de texto se activen para la edicin al seleccionarlos. Nota: como la funcin fscommand() se ejecuta de forma asncrona, el campo de texto no se activa inmediatamente: lo hace al final del fotograma.

Parmetros
command:String

- Una cadena que se pasa a la aplicacin host para cualquier uso o un comando que se pasa al reproductor Flash Player.

parameters:String - Una cadena que se pasa a la aplicacin host para cualquier uso o un valor que se pasa al reproductor Flash Player.

Funciones globales

29

Ejemplo En el ejemplo siguiente, la funcin fscommand() abre wap.yahoo.com en el navegador Web o en el navegador de servicios en telfonos de la serie 60:
on(keyPress "9") { status = fscommand("launch", "z:\\system\\apps\\browser\\browser.app,http://wap.yahoo.com"); }

Funcin fscommand2
fscommand2(command:String, parameter1:String,...parameterN:String) : Void

Permite que el archivo SWF se comunique con el reproductor Flash Lite o con la aplicacin host de un dispositivo mvil. Para utilizar fscommand2() para enviar un mensaje al reproductor Flash Lite, debe utilizar comandos y parmetros predefinidos. Consulte la seccin "Comandos fscommand2" en "Elementos del lenguaje ActionScript" para conocer los valores que se pueden especificar para los comandos y los parmetros de la funcin fscommand(). Estos valores controlan archivos SWF que se reproducen en el reproductor Flash Lite. La funcin fscommand2() es similar a la funcin fscommand(), con las siguientes diferencias:

La funcin fscommand2() puede tomar cualquier nmero de argumentos. Por el contrario, la funcin fscommand() slo puede tomar un argumento. Flash Lite ejecuta fscommand2() inmediatamente (es decir, dentro del fotograma), mientras que fscommand() se ejecuta al final del fotograma que se procesa. La funcin fscommand2() devuelve un valor que puede utilizarse para notificar una resolucin correcta, fallida o el resultado del comando.

Nota: ninguno de los comandos fscommand2() estn disponibles en reproductores Web. Comandos fscommand2() desfasados En Flash Lite 2.0, algunos comandos fscommand2() de Flash Lite 1.1 estn desfasados. En la tabla siguiente se muestran los comandos fscommand2() desfasados:
Comando
Escape GetDateDay GetDateMonth GetDateWeekday

En su lugar debe utilizarse


Funcin global escape Mtodo getDate() del objeto Date Mtodo getMonth() del objeto Date Mtodo getDay() del objeto Date

30

Elementos del lenguaje ActionScript

Comando
GetDateYear GetLanguage GetLocaleLongDate GetLocaleShortDate GetLocaleTime GetTimeHours GetTimeMinutes GetTimeSeconds GetTimeZoneOffset SetQuality Unescape

En su lugar debe utilizarse


Mtodo getYear() del objeto Date Propiedad System.capabilities.language Mtodo getLocaleLongDate() del objeto Date Mtodo getLocaleShortDate() del objeto Date Mtodo getLocaleTime() del objeto Date Mtodo getHours() del objeto Date Mtodo getMinutes() del objeto Date Mtodo getSeconds() del objeto Date Mtodo getTimeZoneOffset() del objeto Date
MovieClip._quality

Funcin global unescape()

Parmetros
command:String

- Una cadena que se pasa a la aplicacin host para cualquier uso o un comando que se pasa al reproductor Flash Player.

- Una cadena que se pasa a la aplicacin host para cualquier uso o un valor que se pasa al reproductor Flash Player.
parameters:String

Funcin getProperty
getProperty(my_mc:Object, property:Object) : Object

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse la sintaxis con puntos, introducida en Flash Player 5. Devuelve el valor de la propiedad especificada para el clip de pelcula my_mc. Parmetros
my_mc:Object

- Nombre de instancia de un clip de pelcula cuya propiedad se recupera. - Propiedad de un clip de pelcula.

property:Object

Valor devuelto
Object

- Valor de la propiedad especificada.

Funciones globales

31

Ejemplo El ejemplo siguiente crea el clip de pelcula nuevo someClip_mc y muestra el valor alfa (_alpha) del clip someClip_mc en el panel Salida:
this.createEmptyMovieClip("someClip_mc", 999); trace("The alpha of "+getProperty(someClip_mc, _name)+" is: "+getProperty(someClip_mc, _alpha));

Funcin getTimer
getTimer() : Number

Devuelve el nmero de milisegundos transcurridos desde que se inici la reproduccin del archivo SWF. Valor devuelto - Nmero de milisegundos transcurridos desde que se inici la reproduccin del archivo SWF.
Number

Ejemplo En el ejemplo siguiente, las funciones getTimer() y setInterval() se utilizan para crear un temporizador sencillo:
this.createTextField("timer_txt", this.getNextHighestDepth(), 0, 0, 100, 22); function updateTimer():Void { timer_txt.text = getTimer(); } var intervalID:Number = setInterval(updateTimer, 100);

Funcin getURL
getURL(url:String [, window:String [, method:String] ]) : Void

Carga un documento de una URL especfica en una ventana o pasa variables a otra aplicacin en una URL definida. Para probar esta funcin, asegrese de que el archivo que se va a cargar se encuentra en la ubicacin especificada. Para utilizar una URL absoluta (por ejemplo, http://www.myserver.com), se necesita una conexin de red. Nota: esta funcin no se admite en dispositivos BREW.

32

Elementos del lenguaje ActionScript

Parmetros
url:String

- URL del cual se obtiene el documento.

window:String

[opcional] - Especifica la ventana o marco HTML donde debera cargarse el documento. Puede introducir el nombre de una ventana especfica o seleccionarlo de entre los siguientes nombres de destino reservados:
_self

especifica el fotograma actual en la ventana actual. especifica una nueva ventana. especifica el elemento principal del fotograma actual.

_blank

_parent _top

especifica el fotograma de nivel superior de la ventana actual.

[opcional] - Un mtodo GET o POST para enviar variables. Si no hay ninguna variable, omita este parmetro. El mtodo GET aade las variables al final de la URL y se utiliza para nmeros reducidos de variables. El mtodo POST enva las variables en un encabezado HTTP independiente y se utiliza para enviar cadenas de variables largas.
method:String

Ejemplo Este ejemplo carga una imagen en un clip de pelcula. Cuando se hace clic en la imagen, se carga un nuevo URL en una nueva ventana del navegador.
var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target_mc:MovieClip) { target_mc.onRelease = function() { getURL("http://www.macromedia.com/software/flash/flashpro/", "_blank"); }; }; var logo:MovieClipLoader = new MovieClipLoader(); logo.addListener(listenerObject); logo.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("macromedia_mc", this.getNextHighestDepth()));

En el ejemplo siguiente, se utiliza getURL() para enviar un mensaje de correo electrnico:


myBtn_btn.onRelease = function(){ getURL("mailto:you@somedomain.com"); };

Tambin puede utilizar GET o POST para enviar variables. El ejemplo siguiente utiliza GET para aadir variables a una URL:
var firstName:String = "Gus"; var lastName:String = "Richardson"; var age:Number = 92; myBtn_btn.onRelease = function(){ getURL("http://www.macromedia.com", "_blank", "GET"); };

Funciones globales

33

El cdigo ActionScript siguiente utiliza POST para enviar variables en el encabezado HTTP. Compruebe los documentos en una ventana del navegador. En caso contrario, las variables se enviarn utilizando GET:
var firstName:String = "Gus"; var lastName:String = "Richardson"; var age:Number = 92; getURL("http://www.macromedia.com", "_blank", "POST");

Vase tambin
Funcin loadVariables, send (mtodo XML.send), sendAndLoad (mtodo XML.sendAndLoad)

Funcin getVersion
getVersion() : String

Devuelve una cadena que contiene informacin de la versin de Flash Player y de la plataforma. La funcin getVersion devuelve informacin nicamente para Flash Player 5 o versiones posteriores de Flash Player. Valor devuelto
String

- Cadena que contiene informacin de la versin de Flash Player y de la plataforma.

Ejemplo Los ejemplos siguientes realizan un seguimiento del nmero de versin de Flash Player que est reproduciendo el archivo SWF:
var flashVersion:String = getVersion(); trace(flashVersion); // salida: WIN 8,0,1,0 trace($version); // salida: WIN 8,0,1,0 trace(System.capabilities.version); // salida: WIN 8,0,1,0

La funcin getVersion devuelve la cadena siguiente:


WIN 8,0,1,0

Esta cadena devuelta indica que la plataforma es Microsoft Windows y el nmero de versin de Flash Player es la versin superior 8, versin inferior 1 (8.1). Vase tambin
os (propiedad capabilities.os), version (propiedad capabilities.version)

34

Elementos del lenguaje ActionScript

Funcin gotoAndPlay
gotoAndPlay([scene:String,] frame:Object) : Void

Enva la cabeza lectora al fotograma especificado en una escena y reproduce desde dicho fotograma. Si no se especifica ninguna escena, la cabeza lectora se desplaza al fotograma especificado de la escena actual. Puede utilizar el parmetro scene nicamente en la lnea de tiempo de raz, no en las lneas de tiempo de los clips de pelcula u otros objetos del documento. Parmetros
scene:String [opcional] - Una cadena que especifica el nombre de la escena a la que se enva

la cabeza lectora.
frame:Object

- Nmero que representa el nmero de fotograma o la cadena que representa la etiqueta del fotograma al que se enva la cabeza lectora. Ejemplo

En el ejemplo siguiente un documento tiene dos escenas: sceneOne y sceneTwo. La escena uno contiene una etiqueta de fotograma en el fotograma 10 llamada newFrame y dos botones, myBtn_btn y myOtherBtn_btn. Este cdigo ActionScript se inserta en el fotograma 1, escena 1 de la lnea de tiempo principal.
stop(); myBtn_btn.onRelease = function(){ gotoAndPlay("newFrame"); }; myOtherBtn_btn.onRelease = function(){ gotoAndPlay("sceneTwo", 1); };

Cuando el usuario hace clic en los botones, la cabeza lectora pasa a la ubicacin especificada y sigue reproducindose. Vase tambin
gotoAndPlay (mtodo MovieClip.gotoAndPlay), Funcin nextFrame, Funcin play, Funcin prevFrame

Funciones globales

35

Funcin gotoAndStop
gotoAndStop([scene:String,] frame:Object) : Void

Enva la cabeza lectora al fotograma especificado en una escena y la detiene. Si no se ha especificado ninguna escena, la cabeza lectora se enva al fotograma de la escena actual. Puede utilizar el parmetro scene slo en la lnea de tiempo raz, no en las lneas de tiempo de los clips de pelcula u otros objetos del documento. Parmetros
scene:String [opcional] - Una cadena que especifica el nombre de la escena a la que se enva

la cabeza lectora.
frame:Object

- Nmero que representa el nmero de fotograma o la cadena que representa la etiqueta del fotograma al que se enva la cabeza lectora. Ejemplo

En el ejemplo siguiente un documento tiene dos escenas: sceneOne y sceneTwo. La escena uno contiene una etiqueta de fotograma en el fotograma 10 llamada newFrame y dos botones, myBtn_btn y myOtherBtn_btn. Este cdigo ActionScript se inserta en el fotograma 1, escena 1 de la lnea de tiempo principal:
stop(); myBtn_btn.onRelease = function(){ gotoAndStop("newFrame"); }; myOtherBtn_btn.onRelease = function(){ gotoAndStop("sceneTwo", 1); };

Cuando el usuario hace clic en los botones, la cabeza lectora pasa a la ubicacin especificada y se detiene. Vase tambin
gotoAndStop (mtodo MovieClip.gotoAndStop), Funcin stop, Funcin play, Funcin gotoAndPlay

36

Elementos del lenguaje ActionScript

Funcin ifFrameLoaded
ifFrameLoaded([scene,] frame) { statement(s); }

Desfasada desde Flash Player 5. Esta funcin est desfasada. Adobe recomienda la utilizacin de la propiedad MovieClip._framesloaded. Comprueba si el contenido de un fotograma especfico est disponible localmente. Utilice
ifFrameLoaded para comenzar a reproducir una animacin sencilla mientras se descarga el resto

del archivo SWF en un equipo local. La diferencia entre _framesloaded y ifFrameLoaded radica en que _framesloaded permite aadir sentencias if o else personalizadas. Parmetros
scene:String [opcional] - Una cadena que especifica el nombre de la escena que se debe cargar. frame:Object

- Es necesario cargar el nmero de fotograma o la etiqueta de fotograma antes de ejecutar la sentencia siguiente.

statement(s):Object - Se cargan las instrucciones que se ejecutan en una escena especificada, o en una escena y en un fotograma.

Vase tambin
addListener (mtodo MovieClipLoader.addListener)

Funcin int
int(value) : Number

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse Math.round(). Convierte un nmero decimal en un valor de entero truncando el valor decimal. Esta funcin es equivalente a Math.floor() si el parmetro value es positivo y Math.ceil() si el parmetro value es negativo. Parmetros
value:Number

- Un nmero que se redondear a un entero.

Valor devuelto
Number

- El valor de entero truncado.

Vase tambin
round (mtodo Math.round), floor (mtodo Math.floor), ceil (mtodo Math.ceil)

Funciones globales

37

Funcin isFinite
isFinite(expression:Object) : Boolean

Evala expression y devuelve true si es un nmero finito o false si es infinito o infinito negativo. La presencia de infinito o infinito negativo indica un error matemtico como, por ejemplo, la divisin por 0. Parmetros
expression:Object

- Valor booleano, variable u otra expresin que se va a evaluar.

Valor devuelto
Boolean

- Valor booleano.

Ejemplo El ejemplo siguiente muestra los valores devueltos para isFinite:


isFinite(56) // devuelve el valor true isFinite(Number.POSITIVE_INFINITY) // devuelve el valor false

Funcin isNaN
isNaN(expression:Object) : Boolean

Evala el parmetro y devuelve true si el valor es NaN (no es un nmero). Esta funcin es til para comprobar si una expresin matemtica da como resultado un nmero. Parmetros
expression:Object

- Valor booleano, variable u otra expresin que se va a evaluar.

Valor devuelto
Boolean

- Valor booleano.

38

Elementos del lenguaje ActionScript

Ejemplo El cdigo siguiente ilustra los valores devueltos para la funcin isNaN():
trace(isNaN("Tree")); // devuelve el valor true trace(isNaN(56)); // devuelve el valor false trace(isNaN(Number.POSITIVE_INFINITY)) // devuelve el valor false

El ejemplo siguiente muestra cmo puede utilizar isNAN() para comprobar si una expresin matemtica contiene un error:
var dividend:Number; var divisor:Number; divisor = 1; trace(isNaN(dividend/divisor)); // salida: true // La salida es true porque la variable // No utilice isNAN() para comprobar la valor false. // Un nmero positivo dividido por 0 es (Number.POSITIVE_INFINITY). // Un nmero negativo dividido por 0 es (Number.NEGATIVE_INFINITY).

dividend es undefined. divisin por 0, ya que devolver el igual a Infinity igual a -Infinity

Vase tambin
Constante NaN, NaN (propiedad Number.NaN)

Funcin length
length(expression)length(variable)

Desfasada desde Flash Player 5. Esta funcin, junto con todas las funciones string, est desfasada. Adobe recomienda que utilice los mtodos de la clase String y la propiedad String.length para realizar las mismas operaciones. Devuelve la longitud de la cadena o la variable especificada. Parmetros
expression:String variable:Object

- Una cadena.

- El nombre de una variable.

Funciones globales

39

Valor devuelto
Number

- La longitud de la cadena o la variable especificada.

Ejemplo El ejemplo siguiente devuelve la longitud de la cadena "Hello": length("Hello");El resultado es 5. Vase tambin
Operador delimitador de cadena ("), String, length (propiedad String.length)

Funcin loadMovie
loadMovie(url:String, target:Object [, method:String]) : VoidloadMovie(url:String, target:String [, method:String]) : Void

Carga un archivo SWF o JPEG en Flash Player durante la reproduccin del archivo SWF original. los archivos JPEG guardados en formato progresivo no son compatibles. Sugerencia: si desea controlar el progreso de la descarga, utilice MovieClipLoader.loadClip() en lugar de esta funcin. La funcin loadMovie() permite mostrar varios archivos SWF simultneamente y cambiar entre archivos SWF sin cargar otro documento HTML. Sin la funcin loadMovie(), Flash Player muestra un solo archivo SWF. Si desea cargar un archivo SWF o JPEG en un nivel especfico, utilice loadMovieNum() en lugar de loadMovie(). Cuando se carga un archivo SWF en un clip de pelcula de destino, se puede utilizar la ruta de destino de dicho clip de pelcula para buscar el archivo SWF cargado. Un archivo SWF o una imagen que se carga en un destino hereda las propiedades de posicin, rotacin y escala del clip de pelcula de destino. La esquina superior izquierda de la imagen o archivo SWF cargado se alinea con el punto de registro del clip de pelcula de destino. Como alternativa, si el destino se encuentra en la lnea de tiempo raz, la esquina superior izquierda de la imagen o del archivo SWF se alinea con la esquina superior izquierda del escenario. Utilice unloadMovie() para eliminar los archivos SWF que se cargaron con loadMovie().

40

Elementos del lenguaje ActionScript

Parmetros
url:String

- URL absoluto o relativo del archivo SWF o JPEG que se va a cargar. Una ruta relativa debe ser relativa al archivo SWF en el nivel 0. Las URL absolutas deben incluir la referencia al protocolo, como http:// o file:///.

target:Object

- Referencia a un objeto de clip de pelcula o a una cadena que representa la ruta de acceso a un clip de pelcula de destino. El clip de pelcula de destino se sustituye por el archivo SWF o la imagen que se carga. debe ser la cadena GET o POST. Si no hay ninguna variable para enviar, omita este parmetro. El mtodo GET aade las variables al final de la URL y se utiliza para un nmero reducido de variables. El mtodo POST enva las variables en un encabezado HTTP independiente y se utiliza para enviar cadenas de variables largas. Ejemplo Sintaxis 1: El ejemplo siguiente carga el archivo SWF circle.swf desde el mismo directorio y reemplaza un clip de pelcula llamado mySquare que ya existe en el escenario:

method:String [opcional] - Especifica un mtodo HTTP para enviar variables. El parmetro

loadMovie("circle.swf", mySquare); // sentencia equivalente (sintaxis 1): loadMovie("circle.swf", _level0.mySquare); // sentencia equivalente (sintaxis 2): loadMovie("circle.swf", "mySquare");

El ejemplo siguiente carga el archivo SWF circle.swf desde el mismo directorio, pero reemplaza el clip de pelcula principal en lugar del clip mySquare:
loadMovie("circle.swf", this); // Tenga en cuenta que utilizar "this" como cadena del parmetro target no surtir ningn efecto // sentencia equivalente (sintaxis 2): loadMovie("circle.swf", "_level0");

La siguiente sentencia loadMovie() carga el archivo SWF sub.swf desde el mismo directorio en un clip de pelcula nuevo llamado logo_mc que se crea empleando createEmptyMovieClip():
this.createEmptyMovieClip("logo_mc", 999); loadMovie("sub.swf", logo_mc);

Puede aadir el cdigo siguiente para cargar una imagen JPEG llamada image1.jpg desde el mismo directorio que el archivo SWF que carga sub.swf. El JPEG se carga al hacer clic en un botn denominado myBtn_btn. Este cdigo carga el JPEG en logo_mc. Por tanto, reemplazar a sub.swf por la imagen JPEG.
myBtn_btn.onRelease = function(){ loadMovie("image1.jpg", logo_mc); };

Funciones globales

41

Sintaxis 2: El ejemplo siguiente carga el archivo SWF circle.swf desde el mismo directorio y reemplaza un clip de pelcula llamado mySquare que ya existe en el escenario:
loadMovie("circle.swf", "mySquare");

Vase tambin
Propiedad _level, Funcin loadMovieNum, loadMovie (mtodo MovieClip.loadMovie), loadClip (mtodo MovieClipLoader.loadClip), Funcin unloadMovie

Funcin loadMovieNum
loadMovieNum(url:String, level:Number [, method:String]) : Void

Carga un archivo SWF o JPEG en un nivel de Flash Player durante la reproduccin del archivo SWF que se carg originalmente. Sugerencia: si desea controlar el progreso de la descarga, utilice MovieClipLoader.loadClip() en lugar de esta funcin. Normalmente, Flash Player muestra un solo archivo SWF y se cierra. La accin loadMovieNum() permite mostrar varios archivos SWF simultneamente y cambiar entre archivos SWF sin cargar otro documento HTML. Si desea especificar un destino en lugar de un nivel, utilice loadMovie() en lugar de loadMovieNum(). Flash Player tiene un orden de apilamiento de niveles a partir del nivel 0. Estos niveles son como capas de acetato: son transparentes, excepto en los objetos de cada nivel. Cuando utilice loadMovieNum(), debe especificar un nivel en Flash Player donde se cargar el archivo SWF. Cuando se carga un archivo SWF en un nivel, puede utilizar la sintaxis _levelN, donde N es el nmero de nivel, para buscar el archivo SWF. Cuando cargue un archivo SWF, puede especificar cualquier nmero de nivel y puede cargar archivos SWF en un nivel que ya tenga un archivo SWF cargado. De esta forma, el nuevo archivo SWF sustituir al archivo SWF existente. Si carga un archivo SWF en el nivel 0, se descargarn todos los niveles de Flash Player y se sustituir el nivel 0 por el nuevo archivo. El archivo SWF en el nivel 0 establece la velocidad de fotogramas, el color de fondo y el tamao de fotograma de todos los dems archivos SWF cargados. La accin loadMovieNum() tambin permite cargar archivos JPEG en un archivo SWF durante su reproduccin. En las imgenes y archivos SWF, la esquina superior izquierda de la imagen se alinea con la esquina superior izquierda del escenario cuando se carga el archivo. Adems, en ambos casos, el archivo cargado hereda la rotacin y la escala, y el contenido original se sobrescribe en el nivel especificado.

42

Elementos del lenguaje ActionScript

Nota: los archivos JPEG guardados en formato progresivo no son compatibles. Utilice unloadMovieNum() para eliminar los archivos SWF o las imgenes que se cargaron con loadMovieNum(). Parmetros
url:String

- URL absoluto o relativo del archivo SWF o JPEG que se va a cargar. Una ruta relativa debe ser relativa al archivo SWF en el nivel 0. Para utilizar Flash Player de forma independiente o para realizar pruebas en el modo de prueba de la aplicacin de edicin de Flash, todos los archivos SWF deben almacenarse en la misma carpeta y los nombres de archivo no pueden contener especificaciones de carpeta o unidad de disco. - Entero que especifica el nivel de Flash Player en el que se cargar el archivo

level:Number

SWF.
method:String [opcional] - Especifica un mtodo HTTP para enviar variables. El parmetro

debe ser la cadena GET o POST. Si no hay ninguna variable para enviar, omita este parmetro. El mtodo GET aade las variables al final de la URL y se utiliza para un nmero reducido de variables. El mtodo POST enva las variables en un encabezado HTTP independiente y se utiliza para enviar cadenas de variables largas. Ejemplo El ejemplo siguiente carga la imagen JPEG tim.jpg en el nivel 2 de Flash Player:
loadMovieNum("http://www.helpexamples.com/flash/images/image1.jpg", 2);

Vase tambin
Funcin unloadMovieNum, Funcin loadMovie, loadClip (mtodo MovieClipLoader.loadClip), Propiedad _level

Funcin loadVariables
loadVariables(url:String, target:Object [, method:String]) : Void

Lee datos de un archivo externo, como un archivo de texto o texto generado por ColdFusion, un script CGI, pginas Active Server (ASP), script PHP o Perl, y establece los valores de las variables en un clip de pelcula de destino. Esta accin se puede utilizar adems para actualizar las variables del archivo SWF activo con nuevos valores. El texto y la URL especificados deben tener el formato MIME estndar application/x-wwwform-urlencoded (formato estndar que se utiliza en los scripts CGI). Se puede especificar cualquier nmero de variables. Por ejemplo, la siguiente frase define varias variables:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103

Funciones globales

43

En archivos SWF que se ejecuten en una versin anterior a Flash Player 7, url debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. El superdominio se obtiene al eliminar el componente ms a la izquierda de la URL de un archivo. Por ejemplo, un archivo SWF situado en www.someDomain.com puede cargar datos de una fuente situada en store.someDomain.com porque ambos archivos se encuentran en el mismo superdominio, denominado someDomain.com. En los archivos SWF de cualquier versin que se ejecute en Flash Player 7 o posterior, el url debe pertenecer exactamente al mismo dominio que el archivo SWF que realiza esta llamada (vase "Funciones de seguridad de Flash Player" en Utilizacin de ActionScript en Flash). Por ejemplo, un archivo SWF en www.someDomain.com puede cargar datos nicamente desde orgenes que tambin se encuentren en www.someDomain.com. Si desea cargar datos de un dominio distinto, puede colocar un archivo de poltica para distintos dominios en el servidor que aloja el archivo SWF al que se obtiene acceso. Para ms informacin, consulte "Carga de datos de varios dominios" en Utilizacin de ActionScript en Flash. Si desea cargar variables en un nivel especfico, utilice loadVariablesNum() en lugar de
loadVariables().

Parmetros
url:String

- URL donde se ubican las variables. Si el archivo SWF que realiza esta llamada se ejecuta en un navegador Web, el valor url debe pertenecer al mismo dominio que el archivo SWF; para ver ms detalles, consulte la seccin Descripcin. - Ruta de destino de un clip de pelcula que recibe las variables que se cargan.

target:Object

method:String [opcional] - Especifica un mtodo HTTP para enviar variables. El parmetro

debe ser la cadena GET o POST. Si no hay ninguna variable para enviar, omita este parmetro. El mtodo GET aade las variables al final de la URL y se utiliza para un nmero reducido de variables. El mtodo POST enva las variables en un encabezado HTTP independiente y se utiliza para enviar cadenas de variables largas. Ejemplo El ejemplo siguiente carga informacin desde un archivo de texto llamado params.txt en el clip de pelcula target_mc que se crea utilizando createEmptyMovieClip(). La funcin setInterval() se utiliza para comprobar el progreso de la carga. El script busca en el archivo params.txt una variable denominada done.
this.createEmptyMovieClip("target_mc", this.getNextHighestDepth()); loadVariables("params.txt", target_mc); function checkParamsLoaded() { if (target_mc.done == undefined) { trace("not yet."); } else {

44

Elementos del lenguaje ActionScript

trace("finished loading. killing interval."); trace("-------------"); for (i in target_mc) { trace(i+": "+target_mc[i]); } trace("-------------"); clearInterval(param_interval); } } var param_interval = setInterval(checkParamsLoaded, 100);

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


var1="hello"&var2="goodbye"&done="done"

Vase tambin
Funcin loadVariablesNum, Funcin loadMovie, Funcin loadMovieNum, Funcin getURL, loadMovie (mtodo MovieClip.loadMovie), loadVariables (mtodo MovieClip.loadVariables), load (mtodo LoadVars.load)

Funcin loadVariablesNum
loadVariablesNum(url:String, level:Number [, method:String]) : Void

Lee datos de un archivo externo, como un archivo de texto o texto generado por ColdFusion, un script CGI, pginas Active Server (ASP), script PHP o Perl, y establece los valores de las variables en un nivel de Flash Player. Esta funcin se puede utilizar adems para actualizar las variables del archivo SWF activo con nuevos valores. El texto y la URL especificada deben tener el formato MIME estndar application/x-www(formato estndar que se utiliza en los scripts CGI). Se puede especificar cualquier nmero de variables. Por ejemplo, la siguiente frase define varias variables:
form-urlencoded company=Macromedia&address=601+Townsend&city=San+Francisco&zip=94103

En archivos SWF que se ejecuten en una versin del reproductor anterior a Flash Player 7, url debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. El superdominio se obtiene al eliminar el componente ms a la izquierda de la URL de un archivo. Por ejemplo, un archivo SWF en www.someDomain.com puede cargar datos desde un origen en store.someDomain.com porque ambos archivos pertenecen al mismo superdominio (someDomain.com).

Funciones globales

45

En los archivos SWF de cualquier versin que se ejecute en Flash Player 7 o posterior, el url debe pertenecer exactamente al mismo dominio que el archivo SWF que realiza esta llamada (vase "Funciones de seguridad de Flash Player" en Utilizacin de ActionScript en Flash). Por ejemplo, un archivo SWF situado en www.someDomain.com slo puede cargar datos de fuentes que tambin se encuentren en www.someDomain.com. Si desea cargar datos de un dominio diferente, puede colocar un archivo de poltica para distintos dominios en el servidor en el que se aloja el archivo SWF. Para ms informacin, consulte "Carga de datos de varios dominios" en Utilizacin de ActionScript en Flash. Si desea cargar variables en un nivel especfico, utilice loadVariables() en lugar de
loadVariablesNum().

Parmetros
url:String

- URL donde se ubican las variables. Si el archivo SWF que realiza esta llamada se ejecuta en un navegador Web, el valor url debe pertenecer al mismo dominio que el archivo SWF; para ver ms detalles, consulte la seccin Descripcin. - Entero que especifica el nivel de Flash Player donde se van a recibir las

level:Number

variables.
method:String [opcional] - Especifica un mtodo HTTP para enviar variables. El parmetro

debe ser la cadena GET o POST. Si no hay ninguna variable para enviar, omita este parmetro. El mtodo GET aade las variables al final de la URL y se utiliza para un nmero reducido de variables. El mtodo POST enva las variables en un encabezado HTTP independiente y se utiliza para enviar cadenas de variables largas. Ejemplo El ejemplo siguiente carga informacin desde un archivo de texto llamado params.txt en la lnea de tiempo principal del SWF en el nivel 2 de Flash Player. Los nombres de las variables de los campos de texto deben coincidir con los de las variables del archivo params.txt. La funcin setInterval() sirve para comprobar el progreso de los datos que se estn cargando en el SWF. El script busca en el archivo params.txt una variable denominada done.
loadVariablesNum("params.txt", 2); function checkParamsLoaded() { if (_level2.done == undefined) { trace("not yet."); } else { trace("finished loading. killing interval."); trace("-------------"); for (i in _level2) { trace(i+": "+_level2[i]); } trace("-------------");

46

Elementos del lenguaje ActionScript

clearInterval(param_interval); } } var param_interval = setInterval(checkParamsLoaded, 100); // Params.txt incluye el texto siguiente var1="hello"&var2="goodbye"&done="done"

Vase tambin
Funcin getURL, Funcin loadMovie, Funcin loadMovieNum, Funcin loadVariables, loadMovie (mtodo MovieClip.loadMovie), loadVariables (mtodo MovieClip.loadVariables), load (mtodo LoadVars.load)

Funcin mbchr
mbchr(number)

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse el mtodo String.fromCharCode(). Convierte un nmero de cdigo ASCII en un carcter multibyte. Parmetros
number:Number

- El nmero que se va a convertir en un carcter multibyte.

Vase tambin
fromCharCode (mtodo String.fromCharCode)

Funcin mblength
mblength(string) : Number

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse la propiedad String.length. Devuelve la longitud de la cadena de caracteres multibyte. Parmetros
string:String

- La cadena que se va a medir.

Valor devuelto
Number

- La longitud de la cadena de caracteres multibyte.

Funciones globales

47

Vase tambin
String, length (propiedad String.length)

Funcin mbord
mbord(character) : Number

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse el mtodo String.charCodeAt(). Convierte el carcter especificado en un nmero multibyte. Parmetros
character:String

- character El carcter que se va a convertir en un nmero multibyte.

Valor devuelto
Number

- El carcter convertido.

Vase tambin
charCodeAt (mtodo String.charCodeAt)

Funcin mbsubstring
mbsubstring(value, index, count) : String

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse el mtodo String.substr(). Extrae una cadena de caracteres multibyte nueva de la cadena de caracteres multibyte. Parmetros
value:String index:Number count:Number

- La cadena multibyte de la que se va a extraer una nueva cadena multibyte. - El nmero del primer carcter que se va a extraer.

- El nmero de caracteres que se va a incluir en la cadena extrada, excluido el carcter de ndice. Valor devuelto

String

- La cadena extrada de la cadena de caracteres multibyte.

Vase tambin
substr (mtodo String.substr)

48

Elementos del lenguaje ActionScript

Funcin nextFrame
nextFrame() : Void

Enva la cabeza lectora al siguiente fotograma. Ejemplo En el ejemplo siguiente, cuando el usuario pulsa la tecla de flecha derecha o abajo, la cabeza lectora pasa al siguiente fotograma y se detiene. Si el usuario pulsa la tecla izquierda o arriba, la cabeza lectora pasa al fotograma anterior y se detiene. El detector se inicializa para esperar a que se pulse la tecla de flecha y la variable init se utiliza para evitar que el detector se redefina si la cabeza lectora vuelve al fotograma 1.
stop(); if (init == undefined) { someListener = new Object(); someListener.onKeyDown = function() { if (Key.isDown(Key.LEFT) || Key.isDown(Key.UP)) { _level0.prevFrame(); } else if (Key.isDown(Key.RIGHT) || Key.isDown(Key.DOWN)) { _level0.nextFrame(); } }; Key.addListener(someListener); init = 1; }

Vase tambin
Funcin prevFrame

Funcin nextScene
nextScene() : Void

Enva la cabeza lectora al fotograma 1 de la siguiente escena. Ejemplo En el ejemplo siguiente, cuando un usuario hace clic en el botn que se crea en tiempo de ejecucin, la cabeza lectora se enva al fotograma 1 de la escena siguiente. Cree dos escenas e introduzca el cdigo ActionScript siguiente en el fotograma 1 de la escena 1.
stop(); if (init == undefined) {

Funciones globales

49

this.createEmptyMovieClip("nextscene_mc", this.getNextHighestDepth()); nextscene_mc.createTextField("nextscene_txt", this.getNextHighestDepth(), 200, 0, 100, 22); nextscene_mc.nextscene_txt.autoSize = true; nextscene_mc.nextscene_txt.border = true; nextscene_mc.nextscene_txt.text = "Next Scene"; this.createEmptyMovieClip("prevscene_mc", this.getNextHighestDepth()); prevscene_mc.createTextField("prevscene_txt", this.getNextHighestDepth(), 00, 0, 100, 22); prevscene_mc.prevscene_txt.autoSize = true; prevscene_mc.prevscene_txt.border = true; prevscene_mc.prevscene_txt.text = "Prev Scene"; nextscene_mc.onRelease = function() { nextScene(); }; prevscene_mc.onRelease = function() { prevScene(); }; init = true; }

Asegrese de insertar una accin stop() en el fotograma 1 de la escena 2. Vase tambin


Funcin prevScene

Funcin Number
Number(expression) : Number

Convierte el parmetro expression en un nmero y devuelve un valor como se describe en la siguiente lista:

Si expression es un nmero, el valor devuelto es expression. Si expression es un valor booleano, el valor devuelto es 1 si expression es true, 0 si expression es false. Si expression es una cadena, la funcin intenta analizar expression como un nmero decimal con un exponente final opcional (es decir, 1.57505e-3). Si expression es un NaN, el valor devuelto es NaN Si expression es undefined, el valor devuelto es:- En archivos publicados para Flash Player 6 o una versin anterior, el resultado es 0. - En archivos publicados para Flash Player 7 o una versin posterior, el resultado es NaN.

50

Elementos del lenguaje ActionScript

Parmetros
expression:Object - Expresin para convertir en un nmero. Los nmeros o las cadenas que comienzan por 0x se interpretan como valores hexadecimales. Los nmeros o las cadenas que comienzan por 0 se interpretan como valores octales.

Valor devuelto
Number

- Un nmero o NaN (no es un nmero).

Ejemplo En el ejemplo siguiente se crea un campo de texto en el escenario en tiempo de ejecucin:


this.createTextField("counter_txt", this.getNextHighestDepth(), 0, 0, 100, 22); counter_txt.autoSize = true; counter_txt.text = 0; function incrementInterval():Void { var counter:Number = counter_txt.text; // Sin la funcin Number(), Flash concatenara el valor en lugar // de aadir valores. Tambin podra utilizar "counter_txt.text++;" counter_txt.text = Number(counter) + 1; } var intervalID:Number = setInterval(incrementInterval, 1000);

Vase tambin
Constante NaN, Number, Funcin parseInt, Funcin parseFloat

Funcin Object
Object([value]) : Object

Crea un nuevo objeto vaco o convierte en un objeto el nmero, cadena o valor booleano especificado. Este comando equivale a crear un objeto mediante el constructor de Object (vase "Constructor de la clase Object"). Parmetros
value:Object

[opcional] - Un nmero, cadena o valor booleano.

Valor devuelto
Object

- Un objeto.

Funciones globales

51

Ejemplo En el ejemplo siguiente se crea un nuevo objeto vaco y, a continuacin, el objeto se llena de valores:
var company:Object = new Object(); company.name = "Macromedia, Inc."; company.address = "600 Townsend Street"; company.city = "San Francisco"; company.state = "CA"; company.postal = "94103"; for (var i in company) { trace("company."+i+" = "+company[i]); }

Vase tambin
Object

Controlador on
on(mouseEvent:Object) { // your statements here }

Especifica el evento de ratn o la pulsacin de tecla que activa una accin. Parmetros
mouseEvent:Object - Un mouseEvent es un desencadenante denominado evento. Cuando se produce el evento, se ejecutan las sentencias que aparecen a continuacin entre llaves ({ }). Puede especificarse cualquiera de los siguientes valores para el parmetro mouseEvent:

press

Se presiona el botn del ratn cuando el puntero se encuentra sobre el botn. Se suelta el botn del ratn cuando el puntero se encuentra sobre el botn.

release

releaseOutside Cuando el puntero se encuentra sobre el botn, se presiona el botn del ratn, se desplaza fuera del rea del botn y se suelta. Los eventos press y dragOut siempre preceden al evento releaseOutside. Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. rollOut El puntero se desplaza fuera el rea del botn. Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. rollOver

El puntero del ratn se desplaza sobre el botn.

52

Elementos del lenguaje ActionScript

dragOut Cuando el puntero se encuentra sobre el botn, se presiona el botn del ratn y se desplaza fuera del rea del botn. dragOver Cuando el puntero se encuentra sobre el botn, se presiona el botn del ratn, a

continuacin se desplaza fuera del botn y vuelve a desplazarse sobre l.

keyPress "<key> " Se presiona la tecla especificada del teclado. En la parte key del parmetro, especifique una constante de tecla, tal y como se muestra en la sugerencia de cdigo del panel Acciones. Puede utilizar este parmetro para interceptar una pulsacin de tecla, es decir, para sustituir cualquier comportamiento incorporado por la tecla especificada. El botn puede encontrarse en cualquier lugar de la aplicacin, ya sea dentro o fuera del escenario. Una limitacin de esta tcnica es que no se puede aplicar el controlador on() en tiempo de ejecucin, sino que debe hacerse durante la edicin. Asegrese de que selecciona Control > Deshabilitar mtodos abreviados de teclado, ya que, de lo contrario, algunas teclas con comportamiento incorporado no se sustituirn cuando pruebe la aplicacin empleando Control > Probar pelcula.

Para ver una lista de las constantes de teclas, consulte la clase Key. Ejemplo En el script siguiente, la funcin startDrag() se ejecuta cuando se pulsa el ratn y el script condicional se ejecuta cuando se suelta el botn del ratn y se coloca el objeto:
on (press) { startDrag(this); } on (release) { trace("X:"+this._x); trace("Y:"+this._y); stopDrag(); }

Vase tambin
Controlador onClipEvent, Key

Funciones globales

53

Controlador onClipEvent
onClipEvent(movieEvent:Object) { // your statements here }

Activa acciones definidas para una determinada instancia de un clip de pelcula. Parmetros
movieEvent:Object

- El movieEvent es un desencadenante denominado evento . Cuando se produce el evento, se ejecutan las sentencias que aparecen a continuacin entre llaves ({}). Puede especificarse cualquiera de los siguientes valores para el parmetro movieEvent:
load La accin se inicia tan pronto como se crea una instancia del clip de pelcula y aparece en la lnea de tiempo. unload La accin se inicia en el primer fotograma despus de eliminar el clip de pelcula de la lnea de tiempo. Las acciones asociadas con el evento de clip de pelcula Unload se procesan antes de aadir ninguna accin al fotograma afectado.

La accin se activa continuamente a la velocidad de fotogramas del clip de pelcula. Las acciones asociadas con el evento de clip enterFrame se procesan antes de aadir ninguna accin a los fotogramas afectados.
enterFrame

La accin se inicia cada vez que se mueve el ratn. Utilice las propiedades _xmouse y _ymouse para determinar la posicin actual del ratn.Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true.
mouseMove

La accin se inicia cuando se presiona el botn izquierdo del ratn. Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true.
mouseDown

accin se inicia cuando se presiona el botn izquierdo del ratn.Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true.
mouseUpLa keyDown

La accin se inicia cuando se presiona una tecla. Utilice Key.getCode() para recuperar informacin sobre la ltima tecla presionada.

keyUp La accin se inicia cuando se suelta una tecla. Utilice el mtodo Key.getCode() para recuperar informacin sobre la ltima tecla presionada. data loadMovie().

La accin se inicia cuando se reciben datos en una accin loadVariables() o Si se especifica con una accin loadVariables(), el evento data slo se produce una vez, concretamente cuando se carga la ltima variable. Si se especifica con una accin loadMovie(), el evento data se produce repetidas veces, cuando se recupera cada una de las porciones de datos.

54

Elementos del lenguaje ActionScript

Ejemplo El ejemplo siguiente utiliza onClipEvent() con el evento de pelcula keyDown y est diseado para asociarse a un clip de pelcula o a un botn. El evento de pelcula keyDown suele emplearse con uno o varios mtodos o propiedades del objeto Key. El script siguiente utiliza Key.getCode() para averiguar qu tecla ha pulsado el usuario; si la tecla pulsada coincide con la propiedad Key.RIGHT, la cabeza lectora se enviar al siguiente fotograma; si la tecla pulsada coincide con la propiedad Key.LEFT, la cabeza lectora se enviar al fotograma anterior.
onClipEvent (keyDown) { if (Key.getCode() == Key.RIGHT) { this._parent.nextFrame(); } else if (Key.getCode() == Key.LEFT) { this._parent.prevFrame(); } }

El ejemplo siguiente utiliza onClipEvent() con los eventos de pelcula load y mouseMove. Las propiedades xmouse e ymouse realizan un seguimiento de la posicin del ratn cada vez que ste se mueve. Dicha posicin aparece en el campo de texto que se crea en tiempo de ejecucin.
onClipEvent (load) { this.createTextField("coords_txt", this.getNextHighestDepth(), 0, 0, 100, 22); coords_txt.autoSize = true; coords_txt.selectable = false; } onClipEvent (mouseMove) { coords_txt.text = "X:"+_root._xmouse+",Y:"+_root._ymouse; }

Vase tambin
Key, _xmouse (propiedad MovieClip._xmouse), _ymouse (propiedad MovieClip._ymouse), Controlador on

Funcin ord
ord(character) : Number

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar deben utilizarse los mtodos y propiedades de la clase String. Convierte caracteres en nmeros de cdigo ASCII. Parmetros
character:String

- El carcter que se va a convertir en un nmero del cdigo ASCII.

Funciones globales

55

Valor devuelto
Number

- El nmero del cdigo ASCII del carcter especificado.

Vase tambin
String, charCodeAt (mtodo String.charCodeAt)

Funcin parseFloat
parseFloat(string:String) : Number

Convierte una cadena en un nmero de coma flotante. La funcin lee, o analiza, y devuelve los nmeros en una cadena hasta que se alcanza un carcter que no forma parte del nmero inicial. Si la cadena no empieza con un nmero que pueda analizarse, parseFloat() devuelve NaN. Se ignoran los espacios en blanco que preceden a los enteros vlidos, pues se trata de caracteres no numricos finales. Parmetros
string:String

- Cadena que se va a leer y convertir en un nmero de coma flotante.

Valor devuelto
Number

- Un nmero o NaN (no es un nmero).

Ejemplo Los ejemplos siguientes utilizan la funcin parseFloat() para evaluar distintos tipos de nmeros:
trace(parseFloat("-2")); // salida: -2 trace(parseFloat("2,5")); // salida: 2.5 trace(parseFloat("2,5")); // salida: 2.5 trace(parseFloat("3.5e6")); // salida: 3500000 trace(parseFloat("foobar")); // salida: NaN trace(parseFloat("3.75math")); // salida: 3.75 trace(parseFloat("0garbage")); // salida: 0

Vase tambin
Constante NaN, Funcin parseInt

56

Elementos del lenguaje ActionScript

Funcin parseInt
parseInt(expression:String [, radix:Number]) : Number

Convierte una cadena en un entero. Si la cadena especificada en los parmetros no puede convertirse en un nmero, la funcin devuelve NaN. Las cadenas que empiezan con 0x se interpretan como nmeros hexadecimales. Los enteros que empiezan con 0 o que especifican una base de 8 se interpretan como nmeros octales. Se ignoran los espacios en blanco que preceden a los enteros vlidos, pues se trata de caracteres no numricos finales. Parmetros
expression:String radix:Number

- Cadena que se va a convertir en un entero.

[opcional] - Entero que representa la base (radix) del nmero que se va a analizar. Los valores vlidos van de 2 a 36. Valor devuelto

Number

- Un nmero o NaN (no es un nmero).

Ejemplo Los ejemplos de esta seccin utilizan la funcin parseInt() para evaluar distintos tipos de nmeros. El ejemplo siguiente devuelve 3:
parseInt("3.5")

El ejemplo siguiente devuelve NaN:


parseInt("bar")

El ejemplo siguiente devuelve 4:


parseInt("4foo")

El ejemplo siguiente muestra una conversin hexadecimal que devuelve 1016:


parseInt("0x3F8")

El ejemplo siguiente muestra una conversin hexadecimal que utiliza el parmetro opcional radix y devuelve 1000:
parseInt("3E8", 16)

El ejemplo siguiente muestra una conversin binaria y devuelve 10, que es la representacin decimal del 1010 binario:
parseInt("1010", 2)

Funciones globales

57

Los ejemplo siguientes muestran anlisis de nmeros octales y devuelven 511, que es la representacin decimal del 777 octal:
parseInt("0777") parseInt("777", 8)

Vase tambin
Constante NaN, Funcin parseFloat

Funcin play
play() : Void

Mueve la cabeza lectora hacia delante en la lnea de tiempo. Ejemplo En el ejemplo siguiente hay dos instancias de clip de pelcula en el escenario con los nombres stop_mc y play_mc. El cdigo ActionScript detiene la reproduccin del archivo SWF cuando se hace clic en la instancia de clip de pelcula stop_mc. La reproduccin se reanuda cuando se hace clic en la instancia play_mc.
this.stop_mc.onRelease = function() { stop(); }; this.play_mc.onRelease = function() { play(); }; trace("frame 1");

Vase tambin
Funcin gotoAndPlay, gotoAndPlay (mtodo MovieClip.gotoAndPlay)

Funcin prevFrame
prevFrame() : Void

Enva la cabeza lectora al fotograma anterior. Si el fotograma actual es el fotograma 1, la cabeza lectora no se mueve.

58

Elementos del lenguaje ActionScript

Ejemplo Cuando el usuario hace clic en un botn llamado myBtn_btn y se inserta el cdigo ActionScript siguiente en un fotograma de la lnea de tiempo para ese botn, la cabeza lectora se enva al fotograma anterior:
stop(); this.myBtn_btn.onRelease = function(){ prevFrame(); };

Vase tambin
Funcin nextFrame, prevFrame (mtodo MovieClip.prevFrame)

Funcin prevScene
prevScene() : Void

Enva la cabeza lectora al fotograma 1 de la escena anterior. Vase tambin


Funcin nextScene

Funcin random
random(value) : Number

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse Math.random(). Devuelve un entero aleatorio entre 0 y uno menos que el entero especificado en el parmetro
value.

Parmetros
value:Number

- Un entero.

Valor devuelto
Number

- Un entero aleatorio.

Ejemplo El uso siguiente de random() devuelve un valor de 0, 1, 2, 3 4: random(5);

Funciones globales

59

Vase tambin
random (mtodo Math.random)

Funcin removeMovieClip
removeMovieClip(target:Object)

Elimina el clip de pelcula especificado. Parmetros - La ruta de destino de una instancia de clip de pelcula creada con o el nombre de instancia de un clip de pelcula creada con MovieClip.attachMovie(), MovieClip.duplicateMovieClip() o MovieClip.createEmptyMovieClip().
target:Object duplicateMovieClip()

Ejemplo El ejemplo siguiente crea un clip de pelcula nuevo llamado myClip_mc y lo duplica. El segundo clip de pelcula se llama newClip_mc. Las imgenes se cargan en ambos clips de pelcula. Cuando se hace clic en un botn, button_mc, el clip de pelcula duplicado se elimina del escenario.
this.createEmptyMovieClip("myClip_mc", this.getNextHighestDepth()); myClip_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); duplicateMovieClip(this.myClip_mc, "newClip_mc", this.getNextHighestDepth()); newClip_mc.loadMovie("http://www.helpexamples.com/flash/images/ image1.jpg"); newClip_mc._x = 200; this.button_mc.onRelease = function() { removeMovieClip(this._parent.newClip_mc); };

Vase tambin
Funcin duplicateMovieClip, duplicateMovieClip (mtodo MovieClip.duplicateMovieClip), attachMovie (mtodo MovieClip.attachMovie), removeMovieClip (mtodo MovieClip.removeMovieClip), createEmptyMovieClip (mtodo MovieClip.createEmptyMovieClip)

60

Elementos del lenguaje ActionScript

Funcin setInterval
setInterval(functionName:Object, interval:Number [, param1:Object, param2, ..., paramN]) : Number setInterval(objectName:Object, methodName:String, interval:Number [, param1:Object, param2, ..., paramN]) : Number

Llama a una funcin, un mtodo o un objeto en intervalos peridicos durante la reproduccin de un archivo SWF. Puede utilizar una funcin de intervalo para actualizar las variables desde una base de datos o para actualizar la visualizacin del tiempo. Si interval es superior a la velocidad de fotogramas del archivo SWF, la funcin de intervalo slo se llamar cada vez que la cabeza lectora entre en un fotograma; de este modo se reduce el impacto cada vez que se actualice la pantalla. Nota:en Flash Lite 2.0, el intervalo pasado a este mtodo se omite si es inferior a la velocidad de fotogramas del archivo SWF y la funcin de intervalo se llama slo en el intervalo de la velocidad de fotogramas del archivo SWF. Si el intervalo es superior a la velocidad de fotogramas del archivo SWF, el evento se llama en el siguiente fotograma una vez transcurrido el intervalo. Parmetros
functionName:Object interval:Number methodName. param:Object

- Nombre de funcin o referencia a una funcin annima.

- Tiempo en milisegundos entre llamadas al parmetro functionName o

[opcional] - Parmetros pasados al parmetro functionName o methodName. Cuando hay varios parmetros, deben ir separados por comas: param1,param2, ...,paramN - Objeto que contiene el mtodo methodName. - Un mtodo de objectName .

objectName:Object methodName:String

Valor devuelto
Number - Un entero que identifica que se puede pasar a clearInterval() para cancelar el intervalo.

Ejemplo Sintaxis 1: El ejemplo siguiente llama a una funcin annima cada 1.000 milisegundos (1 segundo).
setInterval(function(){ trace("interval called"); }, 1000);

Funciones globales

61

Sintaxis 2: El siguiente ejemplo define dos controladores de eventos y llama a cada uno de ellos. La primera llamada a setInterval() llama a la funcin callback1(), que contiene una sentencia trace(). La segunda llamada a setInterval() pasa la cadena "interval called" a la funcin callback2() como un parmetro.
function callback1() { trace("interval called"); } function callback2(arg) { trace(arg); } setInterval(callback1, 1000); setInterval(callback2, 1000, "interval called");

Sintaxis 3: Este ejemplo utiliza un mtodo de un objeto. Se debe utilizar esta sintaxis si se desea llamar a un mtodo definido para un objeto.
obj = new Object(); obj.interval = function() { trace("interval function called"); } setInterval(obj, "interval", 1000); obj2 = new Object(); obj2.interval = function(s) { trace(s); } setInterval(obj2, "interval", 1000, "interval function called");

Se debe utilizar el segundo formulario de la sintaxis setInterval() para llamar al mtodo de un objeto, tal como se muestra en el siguiente ejemplo:
setInterval(obj2, "interval", 1000, "interval function called");

Cuando se trabaja con esta funcin, se debe tener cuidado con la memoria que se utiliza en un archivo SWF. Por ejemplo, cuando se elimina un clip de pelcula del archivo SWF, no se eliminar ninguna funcin setInterval() que se ejecute dentro de l. Elimine siempre la funcin setInterval() utilizando clearInterval() cuando haya terminado de utilizarlo, tal como se muestra en el siguiente ejemplo:
// crea un objeto de detector de eventos para nuestra instancia MovieClipLoader var listenerObjectbject = new Object(); listenerObject.onLoadInit = function(target_mc:MovieClip) { trace("start interval"); /* una vez cargado el clip de pelcula de destino, se crea una funcin callback que se ejecuta cada 1.000 ms (1 segundo) y se llama a la funcin intervalFunc. */

62

Elementos del lenguaje ActionScript

target_mc.myInterval = setInterval(intervalFunc, 1000, target_mc); }; function intervalFunc(target_mc) { // muestra un mensaje sin importancia en el que se indica el nombre de la instancia y texto arbitrario. trace(target_mc+" has been loaded for "+getTimer()/1000+" seconds."); /* cuando se hace clic en el clip de pelcula de destino (y se suelta), se borra el intervalo y se elimina el clip de pelcula. Si no se borra el intervalo antes de eliminar el clip de pelcula, la funcin seguir llamndose a s misma cada segundo, incluso si la instancia del clip de pelcula ya no est presente. */ target_mc.onRelease = function() { trace("clear interval"); clearInterval(this.myInterval); // elimina el clip de pelcula de destino removeMovieClip(this); }; } var jpeg_mcl:MovieClipLoader = new MovieClipLoader(); jpeg_mcl.addListener(listenerObject); jpeg_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("jpeg_mc", this.getNextHighestDepth()));

Si trabaja con setInterval() dentro de las clases, necesitar asegurarse de que utiliza la palabra clave this cuando llame a la funcin. La funcin setInterval()no tiene acceso a los miembros de la clase si no se utiliza la palabra clave. Esto se ilustra en el siguiente ejemplo. Para un archivo FLA con un botn llamado deleteUser_btn,, aada el siguiente cdigo ActionScript al fotograma 1:
var me:User = new User("Gary"); this.deleteUser_btn.onRelease = function() { trace("Goodbye, "+me.username); clearInterval(me.intervalID); delete me; };

A continuacin, cree un archivo llamado User.as en el mismo directorio que el archivo FLA. Introduzca el cdigo ActionScript siguiente:
class User { var intervalID:Number; var username:String; function User(param_username:String) { trace("Welcome, "+param_username); this.username = param_username; this.intervalID = setInterval(this, "traceUsername", 1000, this.username); } function traceUsername(str:String) {

Funciones globales

63

trace(this.username+" is "+getTimer()/1000+" seconds old, happy birthday."); } }

Vase tambin
Funcin clearInterval

Funcin setProperty
setProperty(target:Object, property:Object, expression:Object) : Void

Cambia un valor de propiedad de un clip de pelcula durante la reproduccin del clip de pelcula. Parmetros
target:Object

- Ruta al nombre de instancia del clip de pelcula cuya propiedad va a - Propiedad que va a establecerse.

establecerse.
property:Object expression:Object - El nuevo valor literal de la propiedad o una ecuacin que da como resultado el nuevo valor de la propiedad.

Ejemplo El cdigo ActionScript siguiente crea un clip de pelcula nuevo y carga una imagen en l. Se establecen las coordenadas _x e _y para el clip utilizando setProperty(). Cuando se hace clic en el botn llamado right_btn, la coordenada _x de un clip de pelcula llamado params_mc se incrementa en 20 pxeles.
this.createEmptyMovieClip("params_mc", 999); params_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); setProperty(this.params_mc, _y, 20); setProperty(this.params_mc, _x, 20); this.right_btn.onRelease = function() { setProperty(params_mc, _x, getProperty(params_mc, _x)+20); };

Vase tambin
Funcin getProperty

64

Elementos del lenguaje ActionScript

Funcin startDrag
startDrag(target:Object [, lock:Boolean, left:Number, top:Number, right:Number, bottom:Number]) : Void

Permite arrastrar el clip de pelcula target durante la reproduccin de la pelcula. Slo un clip de pelcula puede arrastrarse al mismo tiempo. Tras ejecutar la operacin startDrag(), todava es posible arrastrar el clip de pelcula hasta que se detenga de forma explcita mediante stopDrag() o hasta que se llame a una accin startDrag()) de otro clip de pelcula. Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Parmetros
target:Object lock:Boolean

- Ruta de destino del clip de pelcula que se va a arrastrar.

[opcional] - Valor booleano que especifica si el clip de pelcula arrastrable est bloqueado en el centro de la posicin del ratn (true) o en el punto donde el usuario hizo clic por primera vez en el clip de pelcula (false).

left,top,right,bottom:Number [opcional] - Valores relativos a las coordenadas del elemento principal del clip de pelcula, que especifican un rectngulo limitado para el clip de pelcula.

Ejemplo El ejemplo siguiente crea un clip de pelcula, pic_mc, en tiempo de ejecucin que los usuarios pueden arrastrar a cualquier ubicacin asociando las acciones startDrag() y stopDrag() al clip de pelcula. Se carga una imagen en pic_mc empleando la clase MovieClipLoader.
var pic_mcl:MovieClipLoader = new MovieClipLoader(); pic_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("pic_mc", this.getNextHighestDepth())); var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target_mc) { target_mc.onPress = function() { startDrag(this); }; target_mc.onRelease = function() { stopDrag(); }; }; pic_mcl.addListener(listenerObject);

Vase tambin
Funcin stopDrag, _droptarget (propiedad MovieClip._droptarget), startDrag (mtodo MovieClip.startDrag)

Funciones globales

65

Funcin stop
stop() : Void

Detiene el archivo SWF que se est reproduciendo. El uso ms comn de esta accin es controlar clips de pelcula mediante botones. Vase tambin
Funcin gotoAndStop, gotoAndStop (mtodo MovieClip.gotoAndStop)

Funcin stopAllSounds
stopAllSounds() : Void

Detiene todos los sonidos que se estn reproduciendo en un archivo SWF sin detener la cabeza lectora. Se reanudar la reproduccin de los sonidos que deben transmitirse mientras la cabeza lectora se mueve sobre los fotogramas donde se encuentran. Ejemplo El cdigo siguiente crea un archivo de texto en el que aparece informacin ID3 sobre la cancin. Se crea una instancia nueva del objeto Sound y se carga el MP3 en el archivo SWF. La informacin ID3 se extrae del archivo de sonido. Cuando el usuario hace clic en stop_mc, se hace una pausa en el sonido. Cuando el usuario hace clic en play_mc, la cancin se reanuda desde la posicin en pausa.
this.createTextField("songinfo_txt", this.getNextHighestDepth, 0, 0, Stage.width, 22); var bg_sound:Sound = new Sound(); bg_sound.loadSound("yourSong.mp3", true); bg_sound.onID3 = function() { songinfo_txt.text = "(" + this.id3.artist + ") " + this.id3.album + " - " + this.id3.track + " - " + this.id3.songname; for (prop in this.id3) { trace(prop+" = "+this.id3[prop]); } trace("ID3 loaded."); }; this.play_mc.onRelease = function() { /* obtiene los valores actuales de desplazamiento. Si detiene todos los sonidos y hace clic en el botn de reproduccin, el archivo MP3 continuar desde el punto en el que se detuvo, en lugar de iniciarse de nuevo desde el principio. */ var numSecondsOffset:Number = (bg_sound.position/1000); bg_sound.start(numSecondsOffset);

66

Elementos del lenguaje ActionScript

}; this.stop_mc.onRelease = function() { stopAllSounds(); };

Vase tambin
Sound

Funcin stopDrag
stopDrag() : Void

Detiene la operacin de arrastre actual. Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El cdigo siguiente, situado en la lnea de tiempo principal, detiene la accin de arrastre en la instancia de clip de pelcula my_mc cuando el usuario suelta el botn del ratn:
my_mc.onPress = function () { startDrag(this); } my_mc.onRelease = function() { stopDrag(); }

Vase tambin
Funcin startDrag, _droptarget (propiedad MovieClip._droptarget), startDrag (mtodo MovieClip.startDrag), stopDrag (mtodo MovieClip.stopDrag)

Funcin String
String(expression:Object) : String

Devuelve una representacin de cadena del parmetro especificado, tal y como se describe en la siguiente lista:

Si expression es un nmero, la cadena devuelta es una representacin de texto del nmero. Si expression es una cadena, la cadena devuelta es expression.

Funciones globales

67

Si expression es un objeto, el valor devuelto es una cadena que representa el objeto generado al llamar a la propiedad de cadena del objeto o al llamar a Object.toString() si no existe la propiedad. Si expression es un valor booleano, el valor devuelto es "true" o "false". Si expression es un clip de pelcula, el valor devuelto es la ruta de destino del clip de pelcula en notacin con barras (/). En los archivos publicados para Flash Player 6 o versiones anteriores, el resultado es una cadena vaca (""). En los archivos publicados para Flash Player 7 o versiones posteriores, el resultado es undefined.

Si expression es undefined, los valores devueltos son los siguientes:

Nota: ActionScript 2.0 no admite la notacin con barras. Parmetros


expression:Object

- Expresin para convertir en una cadena.

Valor devuelto
String

- Una cadena.

Ejemplo En el ejemplo siguiente, utilice ActionScript para convertir expresiones especificadas en una cadena:
var string1:String = String("3"); var string2:String = String("9"); trace(string1+string2); // salida: 39

Dado que ambos parmetros son cadenas, los valores se concatenan en lugar de aadirse. Vase tambin
toString (mtodo Number.toString), toString (mtodo Object.toString), String, Operador delimitador de cadena (")

68

Elementos del lenguaje ActionScript

Funcin substring
substring("string", index, count) : String

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse String.substr(). Extrae parte de una cadena. Esta funcin se basa en uno, mientras que los mtodos del objeto String se basan en cero. Parmetros
string:String index:Number count:Number

- La cadena de la que se va a extraer la nueva cadena.

- El nmero del primer carcter que se va a extraer.

- El nmero de caracteres que se va a incluir en la cadena extrada, excluido el carcter de ndice. Valor devuelto

String

- La subcadena extrada.

Vase tambin
substr (mtodo String.substr)

Funcin targetPath
targetpath(targetObject:Object) : String

Devuelve una cadena que contiene la ruta de destino de MovieClip, Button o TextFieldobject. Para devolver la ruta de destino se utiliza la notacin con puntos (.). Para recuperar la ruta de destino en notacin con barras (/), utilice la propiedad _target. Parmetros
targetObject:Object

- Referencia (por ejemplo, _root o _parent) al objeto para el que se recupera la ruta de destino. Puede ser un objeto MovieClip, Button o TextField. Valor devuelto

String

- Cadena que contiene la ruta de destino del objeto especificado.

Funciones globales

69

Ejemplo El ejemplo siguiente realiza un seguimiento de la ruta de destino de un clip de pelcula en cuanto se carga:
this.createEmptyMovieClip("myClip_mc", this.getNextHighestDepth()); trace(targetPath(myClip_mc)); // _level0.myClip_mc

Vase tambin
Funcin eval

Funcin tellTarget
tellTarget("target") { statement(s); }

Desfasada desde Flash Player 5. Adobe recomienda el uso de notacin con puntos (.) y la sentencia with. Aplica las instrucciones especificadas en el parmetro statements a la lnea de tiempo especificada en el parmetro target. La accin tellTarget resulta til para los controles de navegacin. Asigne tellTarget a botones que detengan o inicien clips de pelcula en otros lugares del escenario. Tambin puede hacer que los clips de pelcula pasen a un determinado fotograma de ese clip. Por ejemplo, puede asignar tellTarget a botones que detienen o inician clips de pelcula en el escenario o que hacen que clips de pelcula pasen a un determinado fotograma. En Flash 5 o versiones posteriores, puede utilizar la notacin de puntos (.) en lugar de la accin tellTarget. Puede utilizar la accin with para emitir mltiples acciones en la misma lnea de tiempo. Puede utilizar la accin with para referirse a cualquier objeto, mientras que la accin tellTarget slo puede referirse a clips de pelcula. Parmetros
target:String

- Una cadena que especifica la ruta de destino de la lnea de tiempo que se va - Instrucciones que se ejecutarn si la condicin es true.

a controlar.
statement(s):Object

70

Elementos del lenguaje ActionScript

Ejemplo Esta sentencia tellTarget controla la instancia del clip de pelcula ball en la lnea de tiempo principal. El fotograma 1 de la instancia ball est en blanco y tiene una accin stop() para que no sea visible en el escenario. Cuando se hace clic en el botn con la accin siguiente, tellTarget indica a la cabeza lectora en ball que pase al fotograma 2, donde comienza la animacin:
on (release) { tellTarget("_parent.ball") { gotoAndPlay(2); } }

El ejemplo siguiente utiliza la notacin de puntos (.) para conseguir los mismos resultados:
on (release) { _parent.ball.gotoAndPlay(2); }

Si necesita emitir mltiples comandos a la instancia ball, puede emplear la accin with, como se muestra en la sentencia siguiente:
on (release) { with(_parent.ball) { gotoAndPlay(2); _alpha = 15; _xscale = 50; _yscale = 50; } }

Vase tambin
Sentencia with

Funcin toggleHighQuality
toggleHighQuality()

Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse _quality. Activa y desactiva el suavizado en Flash Player. El suavizado alisa los bordes de los objetos y ralentiza la reproduccin del SWF. Esta accin afecta a todos los archivos SWF de Flash Player.

Funciones globales

71

Ejemplo El cdigo siguiente puede aplicarse a un botn que, cuando se hace clic en l, activa o desactiva el suavizado:
on (release) { toggleHighQuality(); }

Vase tambin
Propiedad _highquality, Propiedad _quality

Funcin trace
trace(expression:Object)

Puede usar el Reproductor de depuracin de Flash para capturar la salida de la funcin trace() y escribir dicha salida en el archivo de registro. La sentencia evala la expresin y muestra el resultado en el panel Salida en modo de prueba. Utilice esta sentencia para registrar las notas de programacin o para mostrar mensajes en el panel Salida mientras prueba un archivo SWF. Utilice el parmetro expression para comprobar si existe una condicin o para mostrar valores en el panel Salida. La sentencia trace() es similar a la funcin alert de JavaScript. Puede utilizar el comando Omitir acciones de trazado del cuadro de dilogo Configuracin de publicacin para eliminar acciones trace() del archivo SWF exportado. Parmetros
expression:Object - Expresin que se va a evaluar. Cuando se abre un archivo SWF en la herramienta de edicin Flash (mediante el comando Probar pelcula), el valor del parmetro expression se muestra en el panel Salida.

Ejemplo El ejemplo siguiente utiliza una sentencia trace() para mostrar en el panel Salida los mtodos y propiedades del campo de texto creado dinmicamente que se llama error_txt:
this.createTextField("error_txt", this.getNextHighestDepth(), 0, 0, 100, 22); for (var i in error_txt) { trace("error_txt."+i+" = "+error_txt[i]); } /* salida: error_txt.styleSheet = undefined error_txt.mouseWheelEnabled = true

72

Elementos del lenguaje ActionScript

error_txt.condenseWhite = false ... error_txt.maxscroll = 1 error_txt.scroll = 1 */

Funcin unescape
unescape(x:String) : String

Evala el parmetro x como una cadena, descodifica la cadena con formato URL codificado (convirtiendo todas las secuencias hexadecimales en caracteres ASCII) y devuelve la cadena. Parmetros
string:String

- Cadena con secuencias hexadecimales que se van a interpretar literalmente.

Valor devuelto
String

- Cadena descodificada de un parmetro URL codificado.

Ejemplo El ejemplo siguiente muestra el proceso de conversin de escape en unescape:


var email:String = "user@somedomain.com"; trace(email); var escapedEmail:String = escape(email); trace(escapedEmail); var unescapedEmail:String = unescape(escapedEmail); trace(unescapedEmail);

El resultado siguiente se muestra en el panel Salida.


user@somedomain.com user%40somedomain%2Ecom user@somedomain.com

Funcin unloadMovie
unloadMovie(target:MovieClip) : Void unloadMovie(target:String) : Void

Elimina un clip de pelcula que se carg mediante loadMovie() desde Flash Player. Para descargar un clip de pelcula cargado mediante loadMovieNum(), use unloadMovieNum() en lugar de unloadMovie().

Funciones globales

73

Parmetros
target - Ruta de destino de un clip de pelcula. Este parmetro puede ser una cadena (por ejemplo, "my_mc") o una referencia directa a la instancia de clip de pelcula (por ejemplo, my_mc). Los parmetros que pueden aceptar ms de un tipo de datos se engloban en el tipo Object.

Ejemplo El ejemplo siguiente crea un clip de pelcula nuevo llamado pic_mc y carga una imagen en l. Se carga utilizando la clase MovieClipLoader. Cuando se hace clic en la imagen, el clip de pelcula se descarga del archivo SWF:
var pic_mcl:MovieClipLoader = new MovieClipLoader(); pic_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", this.createEmptyMovieClip("pic_mc", this.getNextHighestDepth())); var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target_mc) { target_mc.onRelease = function() { unloadMovie(pic_mc); /* o podra utilizar lo siguiente, que se refiere al clip de pelcula al que 'target_mc' hace referencia. */ //unloadMovie(this); }; }; pic_mcl.addListener(listenerObject);

Vase tambin
loadMovie (mtodo MovieClip.loadMovie), unloadClip (mtodo MovieClipLoader.unloadClip)

Funcin unloadMovieNum
unloadMovieNum(level:Number) : Void

Elimina un archivo SWF o una imagen que se carg mediante loadMovieNum() desde Flash Player. Para descargar un SWF o imagen cargados con MovieClip.loadMovie(), use unloadMovie() en lugar de unloadMovieNum(). Parmetros
level:Number

- Nivel (_level N) de una pelcula cargada.

74

Elementos del lenguaje ActionScript

Ejemplo El ejemplo siguiente carga una imagen en un archivo SWF. Cuando se hace clic en unload_btn se elimina el contenido cargado.
loadMovieNum("yourimage.jpg", 1); unload_btn.onRelease = function() { unloadMovieNum(1); }

Vase tambin
Funcin loadMovieNum, Funcin unloadMovie, loadMovie (mtodo MovieClip.loadMovie)

Propiedades globales
Las propiedades globales estn disponibles en cada script y son visibles en todas las lneas de tiempo y mbitos del documento. Por ejemplo, las propiedades globales permiten acceder a las lneas de tiempo de otros clips de pelcula cargados, tanto relativos (_parent) como absolutos (_root). Tambin permiten restringir (this) o ampliar (super) el mbito. Adems, puede utilizar las propiedades globales para ajustar la configuracin en tiempo de ejecucin como la accesibilidad del lector de pantalla, la calidad de la reproduccin y el tamao de bfer de sonido. Resumen de propiedades globales
Modificadores Propiedad
$version

Descripcin
Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.version. Contiene el nmero de versin de Flash Lite. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.has4WayKeyAS. Indica si Flash Lite ejecuta expresiones ActionScript asociadas a controladores de eventos de las teclas de flecha derecha, izquierda, arriba y abajo.

_cap4WayKeyAS

Propiedades globales

75

Modificadores Propiedad
_capCompoundSound

Descripcin
Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasCompoundSound. Indica si Flash Lite puede procesar datos de sonido compuestos. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasEmail. Indica si el cliente de Flash Lite puede enviar mensajes de correo electrnico utilizando el comando GetURL() de ActionScript. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasDataLoading. Indica si la aplicacin host puede cargar dinmicamente datos adicionales mediante llamadas a las funciones loadMovie(), loadMovieNum(), loadVariables() y loadVariablesNum(). Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasMFi. Indica si el dispositivo puede reproducir datos de sonido en formato de audio MFi (Melody Format for i-mode, Formato de meloda para i-mode(tm)). Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasMIDI. Indica si el dispositivo puede reproducir datos de sonido en formato de audio MIDI (Musical Instrument Digital Interface, Interfaz Digital de Instrumentos Musicales).

_capEmail

_capLoadData

_capMFi

_capMIDI

76

Elementos del lenguaje ActionScript

Modificadores Propiedad
_capMMS

Descripcin
Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasMMS. Indica si Flash Lite puede enviar mensajes MMS (Multimedia Messaging Service, Servicio de mensajera multimedia) utilizando el comando GetURL() de ActionScript. En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasSMAF. Indica si el dispositivo puede reproducir archivos multimedia en formato SMAF (Synthetic music Mobile Application Format, Formato de Aplicacin Mvil de Msica Sinttica). En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasSMS. Indica si Flash Lite puede enviar mensajes SMS (Short Message Service, Servicio de mensajes cortos) utilizando el comando GetURL() de ActionScript. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasStreamingAudio. Indica si el dispositivo puede reproducir sonido sin interrupcin (sincronizado). Propiedad (global); especifica si aparece un rectngulo amarillo alrededor del botn o clip de pelcula que se selecciona con el teclado. Indica al reproductor Flash Lite que represente a la velocidad de fotogramas especificada. Referencia al objeto global que aloja las clases principales de ActionScript, como String, Object, Math y Array.

_capSMAF

_capSMS

_capStreamSound

_focusrect

_forceframerate

_global

Propiedades globales

77

Modificadores Propiedad
_highquality

Descripcin
Desfasada desde Flash Player 5. Esta propiedad est desfasada y en su lugar debe utilizarse _quality. Especifica el nivel de visualizacin suavizada que se aplica al archivo SWF actual. Referencia a la lnea de tiempo raz de _levelN. Desfasada desde Flash Player 5. Esta propiedad est desfasada y en su lugar debe utilizarse TextField.maxscroll. Indica el nmero de la lnea superior de texto visible en un campo de texto cuando la lnea inferior del campo tambin est visible. Especifica o devuelve una referencia al clip de pelcula u objeto que contiene el clip de pelcula u objeto actual. Establece o recupera la calidad de representacin que se utiliza para un clip de pelcula. Especifica o devuelve una referencia a la lnea de tiempo del clip de pelcula raz. Desfasada desde Flash Player 5. Esta propiedad est desfasada y en su lugar debe utilizarse TextField.scroll. Controla la visualizacin de informacin en un campo de texto asociado a una variable. Establece el nmero de segundos para que se almacene en el bfer el flujo de sonido. Hace referencia a una instancia de clip de pelcula u objeto.

_level maxscroll

_parent

_quality

_root

scroll

_soundbuftime

this

78

Elementos del lenguaje ActionScript

Propiedad $version
$version

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.version. Variable de cadena; contiene el nmero de versin de Flash Lite. Contiene un nmero superior, un nmero inferior, un nmero de versin y un nmero de versin interno, que suele ser 0 en todas las versiones publicadas. El nmero principal que tienen todos los productos Flash Lite 1.x es 5. El nmero secundario de Flash Lite 1.0 es 1; el de Flash Lite 1.1 es 2. Ejemplo En el reproductor Flash Lite 1.1, el siguiente cdigo establece el valor de myVersion en "5, 2, 12, 0":
myVersion = $version;

Vase tambin
version (propiedad capabilities.version)

Propiedad _cap4WayKeyAS
_cap4WayKeyAS

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.has4WayKeyAS. Variable numrica; indica si Flash Lite ejecuta expresiones ActionScript vinculadas a controladores de eventos asociados a las teclas de flecha derecha, izquierda, arriba y abajo. Esta variable est definida y tiene un valor de 1 slo cuando la aplicacin host utiliza el modo de navegacin en cuatro direcciones para cambiar entre los controles de Flash (botones y campos de introduccin de texto). En caso contrario, no est definida (undefined). Al pulsar una de las teclas de cuatro direcciones, si el valor de la variable _cap4WayKeyAS es 1, Flash Lite buscar primero un controlador para dicha tecla. Si no lo encuentra, se produce la navegacin en Flash. Sin embargo, si se encuentra un controlador de eventos, no se produce la navegacin correspondiente a esa tecla. Por ejemplo, si se encuentra un controlador de tecla presionada para la tecla de flecha abajo, el usuario no puede navegar.

Propiedades globales

79

Ejemplo El siguiente ejemplo establece canUse4Way en 1 en Flash Lite 1.1, pero lo deja como undefined en Flash Lite 1.0 (no obstante, no todos los telfonos con Flash Lite 1.1 admiten teclas de cuatro direcciones, por lo que este cdigo depende del telfono):
canUse4Way = _cap4WayKeyAS; if (canUse4Way == 1) { msg = "Use your directional joypad to navigate this application"; } else { msg = "Please use the 2 key to scroll up, the 6 key to scroll right, the 8 key to scroll down, and the 4 key to scroll left."; }

Vase tambin
capabilities (System.capabilities)

Propiedad _capCompoundSound
_capCompoundSound

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasCompoundSound. Variable numrica; indica si Flash Lite puede procesar datos de sonido compuesto. En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined. Por ejemplo, un slo archivo Flash puede contener el mismo sonido representado en formatos MIDI y MFi. El reproductor reproducir los datos en el formato que admita el dispositivo. Esta variable define si el reproductor de Flash Lite admite esta funcin en el telfono actual. Ejemplo En el siguiente ejemplo, useCompoundSound se establece en 1 en Flash Lite 1.1, pero queda como undefined en Flash Lite 1.0:
useCompoundSound = _capCompoundSound; if (useCompoundSound == 1) { gotoAndPlay("withSound"); } else { gotoAndPlay("withoutSound");

Vase tambin
capabilities (System.capabilities)

80

Elementos del lenguaje ActionScript

Propiedad _capEmail
_capEmail

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasEmail. Variable numrica; indica si el cliente de Flash Lite puede enviar mensajes de correo electrnico utilizando el comando GetURL() de ActionScript. En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined. Ejemplo
GetURL()

Si la aplicacin host puede enviar mensajes de correo electrnico utilizando el comando de ActionScript, el siguiente ejemplo establece canEmail() en 1:

canEmail = _capEmail; if (canEmail == 1) { getURL("mailto:someone@somewhere.com?subject=foo&body=bar"); }

Vase tambin
capabilities (System.capabilities)

Propiedad _capLoadData
_capLoadData

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasDataLoading. Variable numrica; indica si la aplicacin host puede cargar dinmicamente datos adicionales mediante llamadas a las funciones loadMovie(), loadMovieNum(), loadVariables() y loadVariablesNum(). Si es as, esta variable es defined y tiene el valor 1; de lo contrario, esta variable es undefined. Ejemplo Si la aplicacin host puede llevar a cabo la carga dinmica de pelculas y variables, el siguiente ejemplo establece CanLoad en 1:
canLoad = _capLoadData; if (canLoad == 1) { loadVariables("http://www.somewhere.com/myVars.php", GET);

Propiedades globales

81

} else { trace ("client does not support loading dynamic data"); }

Vase tambin
capabilities (System.capabilities)

Propiedad _capMFi
_capMFi

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasMFi. Variable numrica; indica si el dispositivo puede reproducir datos de sonido en formato de audio MFi (Melody Format for i-mode, Formato de meloda para i-mode(tm)). En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined. Ejemplo Si el dispositivo puede reproducir datos de sonido MFi, el siguiente ejemplo establece canMFi en 1:
canMFi = _capMFi; if (canMFi == 1) { // enva los botones movieclip al fotograma con botones que activan los eventos sounds tellTarget("buttons") { gotoAndPlay(2); } }

Vase tambin
hasMFI (propiedad capabilities.hasMFI)

82

Elementos del lenguaje ActionScript

Propiedad _capMIDI
_capMIDI

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasMIDI. Variable numrica; indica si el dispositivo puede reproducir datos de sonido en formato de audio MIDI (Musical Instrument Digital Interface, Interfaz Digital de Instrumentos Musicales). En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined. Ejemplo Si el dispositivo puede reproducir datos de sonido MIDI, el siguiente ejemplo establece _capMIDI en 1:
canMIDI = _capMIDI; if (canMIDI == 1) { // enva los botones movieclip al fotograma con botones que activan los eventos sounds tellTarget("buttons") { gotoAndPlay(2); } }

Vase tambin
capabilities (System.capabilities)

Propiedad _capMMS
_capMMS

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasMMS. Variable numrica; indica si Flash Lite puede enviar mensajes MMS (Multimedia Messaging Service, Servicio de mensajera multimedia) utilizando el comando GetURL() de ActionScript. En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined.

Propiedades globales

83

Ejemplo El siguiente ejemplo establece canMMS en 1 en Flash Lite 1.1, pero lo deja como undefined en Flash Lite 1.0 (no obstante, no todos los telfonos con Flash Lite 1.1 pueden enviar mensajes MMS, por lo que este cdigo depende del telfono):
on (release) { canMMS = _capMMS; if (canMMS == 1) { // enva un MMS myMessage = "mms:4156095555?body=sample mms message"; } else { // enva un SMS myMessage = "sms:4156095555?body=sample sms message"; } getURL(myMessage); }

Vase tambin
capabilities (System.capabilities)

Propiedad _capSMAF
_capSMAF

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasSMAF. Variable numrica; indica si el dispositivo puede reproducir archivos multimedia en formato SMAF (Synthetic music Mobile Application Format, Formato de Aplicacin Mvil de Msica Sinttica). En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined. Ejemplo El siguiente ejemplo establece canSMAF en 1 en Flash Lite 1.1, pero lo deja como undefined en Flash Lite 1.0 (no obstante, no todos los telfonos con Flash Lite 1.1 pueden enviar mensajes SMAF, por lo que este cdigo depende del telfono):
canSMAF = _capSMAF; if (canSMAF) { // enva los botones movieclip al fotograma con botones que activan los eventos

84

Elementos del lenguaje ActionScript

sounds tellTarget("buttons") { gotoAndPlay(2); } }

Vase tambin
capabilities (System.capabilities)

Propiedad _capSMS
_capSMS

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasSMS. Variable numrica; indica si Flash Lite puede enviar mensajes MMS (Short Message Service, Servicio de mensajes cortos) utilizando el comando GetURL() de ActionScript. En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined. Ejemplo El siguiente ejemplo establece canSMS en 1 en Flash Lite 1.1, pero lo deja como undefined en Flash Lite 1.0 (no obstante, no todos los telfonos con Flash Lite 1.1 pueden enviar mensajes SMS, por lo que este cdigo depende del telfono):
on (release) { canSMS = _capSMS; if (canSMS) { // enva un SMS myMessage = "sms:4156095555?body=sample sms message"; getURL(myMessage); } }

Vase tambin
capabilities (System.capabilities)

Propiedad _capStreamSound
_capStreamSound

Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasStreamingAudio. Variable numrica; indica si el dispositivo puede reproducir flujos de sonido (sincronizado). En caso afirmativo, esta variable se define con el valor 1; en caso contrario, ser undefined.

Propiedades globales

85

Ejemplo El siguiente ejemplo reproduce sonido sin interrupcin si canStreamSound est activado:
on (press) { canStreamSound = _capStreamSound; if (canStreamSound) { // reproduce sonido sin interrupcin en un objeto movieclip con este botn tellTarget("music") { gotoAndPlay(2); } }

Vase tambin
capabilities (System.capabilities)

Propiedad _focusrect
_focusrect = Boolean;

Especifica si aparece un rectngulo amarillo alrededor del botn o clip de pelcula que se selecciona con el teclado. Si _focusrect se establece en su valor predeterminado o en true, aparece un rectngulo amarillo alrededor del botn o clip de pelcula actualmente seleccionado mientras el usuario presiona la tecla de tabulacin para desplazarse por los objetos de un archivo SWF. Especifique false si no desea mostrar el rectngulo amarillo. Es una propiedad que puede sustituirse en determinadas instancias. Si la propiedad global _focusrect se establece como false, el comportamiento predeterminado para todos los botones y clips de pelcula es que la navegacin mediante el teclado se limita a la tecla Tabulador. Todas las dems teclas, incluida Intro y las teclas de flecha, quedan anuladas. Para restablecer el desplazamiento completo con el teclado, es preciso configurar _focusrect con el valor true. Para restaurar las funciones completas del teclado para un botn o clip de pelcula especfico, puede sustituir esta propiedad global empleando Button._focusrect o MovieClip._focusrect. Nota: si utiliza un componente, FocusManager sustituye el control de seleccin de Flash Player, incluido el uso de esta propiedad global. Nota: en el reproductor Flash Lite 2.0, cuando se desactiva la propiedad _focusrect (por ejemplo Button.focusRect = false o MovieClip.focusRect = false), el botn o el clip de pelcula sigue recibiendo todos los eventos. Este comportamiento ha cambiado con respecto a Flash Player, ya que si la propiedad _focusrect se desactiva, el botn o el clip de pelcula recibir los eventos rollOver y rollOut, pero no recibir los eventos press y release.

86

Elementos del lenguaje ActionScript

Tambin en Flash Lite 2.0, se puede cambiar el color del rectngulo de seleccin utilizando el comando SetFocusRectColor de la funcin fscommand2. Este comportamiento ha cambiado con respecto a Flash Player, donde el color del rectngulo de seleccin nicamente puede ser amarillo. Ejemplo El ejemplo siguiente muestra cmo ocultar el rectngulo amarillo alrededor de cualquier instancia en un archivo SWF cuando est seleccionada en una ventana del navegador. Cree algunos botones o clips de pelcula y aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
_focusrect = false;

Vase tambin
_focusrect (propiedad Button._focusrect), _focusrect (propiedad MovieClip._focusrect)

Propiedad _forceframerate
_forceframerate

Si se establece en true, esta propiedad indica al reproductor Flash Lite que represente a la velocidad de fotogramas especificada. Se puede utilizar esta propiedad para sonido pseudosincronizado si el contenido incluye sonido de dispositivo. Se establece en false de forma predeterminada, lo que hace que Flash Lite lo represente con normalidad. Si se establece en true, el reproductor Flash Lite podra saltar la representacin de ciertos fotogramas para mantener la velocidad de fotogramas.

Propiedad _global
_global.identifier

Referencia al objeto global que aloja las clases principales de ActionScript, como String, Object, Math y Array. Por ejemplo, puede crear una biblioteca que se expone como un objeto de ActionScript global, similar al objeto Math o Date. A diferencia de las funciones y variables declaradas localmente o en la lnea de tiempo, las funciones y variables globales son visibles en todas las lneas de tiempo y mbitos del archivo SWF, siempre y cuando no queden ocultas por identificadores con los mismos nombres en mbitos interiores. Nota: al establecer el valor de una variable global, debe utilizarse el nombre completo de la variable, por ejemplo, _global.variableName. De lo contrario, se crear una variable local con el mismo nombre, que ocultar la variable global que se intenta establecer.

Propiedades globales

87

Valor devuelto Una referencia al objeto global que aloja las clases principales de ActionScript, como String, Object, Math y Array. Ejemplo El ejemplo siguiente crea una funcin de nivel superior, factorial(), que est disponible para todas las lneas de tiempo y mbitos en un archivo SWF:
_global.factorial = function(n:Number) { if (n&lt;=1) { return 1; } else { return n*factorial(n-1); } } // Nota: factorial 4 == 4*3*2*1 == 24 trace(factorial(4)); // salida: 24

El ejemplo siguiente muestra cmo la no utilizacin del nombre de variable completo cuando se establece el valor de una variable global produce resultados imprevistos:
_global.myVar = "global"; trace("_global.myVar: " + _global.myVar); // _global.myVar: global trace("myVar: " + myVar); // myVar: global myVar = "local"; trace("_global.myVar: " + _global.myVar); // _global.myVar: global trace("myVar: " + myVar); // myVar: locales

Vase tambin
Sentencia var, Sentencia set variable

Propiedad _highquality
_highquality

Desfasada desde Flash Player 5. Esta propiedad est desfasada y en su lugar debe utilizarse _quality. Especifica el nivel de visualizacin suavizada que se aplica al archivo SWF actual. Especifique 2 (mejor calidad) para aplicar la mejor calidad. Especifique 1 (alta calidad) para aplicar el suavizado. Especifique 0 (baja calidad) para evitar el suavizado. Ejemplo El siguiente cdigo ActionScript se inserta en la lnea de tiempo principal y define la propiedad de calidad global para aplicar el suavizado. _highquality = 1;

88

Elementos del lenguaje ActionScript

Vase tambin
Propiedad _quality

Propiedad _level
_levelN

Referencia a la lnea de tiempo raz de _levelN. Debe utilizar loadMovieNum() para cargar archivos SWF en Flash Player antes de utilizar la propiedad _level para buscarlos. Tambin puede utilizar _level _levelN para buscar un archivo SWF cargado en el nivel asignado por N. El archivo SWF inicial cargado en la instancia de Flash Player se carga automticamente en _level0. El archivo SWF que se encuentra en _level0 establece la velocidad de fotogramas, el color de fondo y el tamao de fotograma de todos los archivos SWF que se cargan posteriormente. A continuacin, los archivos SWF se apilan en niveles de numeraciones superiores, por encima del archivo SWF de _level0. Debe asignar un nivel a cada archivo SWF que cargue en Flash Player mediante loadMovieNum(). Puede asignar niveles en cualquier orden. Si asigna un nivel que ya contiene un archivo SWF (incluido _level0), se descargar el archivo SWF de dicho nivel y ser sustituido por el nuevo archivo SWF. Ejemplo El ejemplo siguiente detiene la cabeza lectora en la lnea de tiempo principal del archivo SWF sub.swf que se carga en _level9. El archivo sub.swf contiene animacin y se encuentra en el mismo directorio que el documento que contiene el siguiente ActionScript:
loadMovieNum("sub.swf", 9); myBtn_btn.onRelease = function(){ _level9.stop(); };

Puede reemplazar _level9.stop() en el ejemplo anterior por el cdigo siguiente:


_level9.gotoAndStop(5);

Esta accin enva la cabeza lectora en la lnea de tiempo principal del archivo SWF en _level9 al fotograma 5 en lugar de detener la cabeza lectora. Vase tambin
Funcin loadMovie, swapDepths (mtodo MovieClip.swapDepths)

Propiedades globales

89

Propiedad maxscroll
variable_name.maxscroll

Desfasada desde Flash Player 5. Esta propiedad est desfasada y en su lugar debe utilizarse TextField.maxscroll. Indica el nmero de la lnea superior de texto visible en un campo de texto cuando la lnea inferior del campo tambin est visible. La propiedad maxscroll funciona con la propiedad scroll para controlar cmo aparece la informacin en un campo de texto. Esta propiedad puede recuperarse, pero no modificarse. Vase tambin
maxscroll (propiedad TextField.maxscroll), scroll (propiedad TextField.scroll)

Propiedad _parent
_parent.property _parent._parent.property

Especifica o devuelve una referencia al clip de pelcula u objeto que contiene el clip de pelcula u objeto actual. El objeto actual es el que contiene el cdigo ActionScript que hace referencia a _parent. Utilice _parent para especificar una ruta de acceso relativa a los clips de pelcula u objetos que se encuentran por encima del clip de pelcula u objeto actual. Ejemplo En el ejemplo siguiente hay dos instancias de clip de pelcula en el escenario con el nombre square_mc. En ese clip de pelcula hay otro clip de pelcula con el nombre de instancia circle_mc. El siguiente ActionScript permite modificar la instancia principal circle_mc (que es square_mc) cuando se hace clic en el crculo. Cuando se trabaja con direccionamiento relativo (empleando _parent en lugar de _root), puede resultar ms fcil utilizar el botn Insertar ruta de destino en el panel Acciones en primer lugar.
this.square_mc.circle_mc.onRelease = function() { this._parent._alpha -= 5; };

Vase tambin
Propiedad _root, Funcin targetPath

90

Elementos del lenguaje ActionScript

Propiedad _quality
_quality:String

Establece o recupera la calidad de representacin que se utiliza para un clip de pelcula. Las fuentes de dispositivo siempre se muestran dentadas y, por consiguiente, no se ven afectadas por la propiedad _quality. La propiedad _quality puede configurarse con los siguientes valores:
Valor
"LOW"

Descripcin
Calidad de representacin baja.

Suavizado de grficos
Los grficos no se suavizan.

Suavizado de mapa de bits


Los mapas de bits no se suavizan. Los mapas de bits no se suavizan.

"MEDIUM"

Los grficos se suavizan Calidad de empleando una cuadrcula representacin media. Este ajuste de 2 x 2 pxeles. resulta adecuado para pelculas que no contengan texto. Los grficos se suavizan Calidad de representacin alta. empleando una cuadrcula de 4 x 4 pxeles. Esta es la calidad de representacin predeterminada de Flash.

"HIGH"

Los mapas de bits no se suavizan.

Ejemplo El ejemplo siguiente establece la calidad de representacin como LOW:


_quality = "LOW";

Propiedad _root
_root.movieClip _root.action _root.property

Especifica o devuelve una referencia a la lnea de tiempo del clip de pelcula raz. Si un clip de pelcula tiene varios niveles, la lnea de tiempo del clip de pelcula raz est en el nivel que contiene el script que se est ejecutando. Por ejemplo, si un script del nivel 1 evala _root, se devuelve _level1. Especificar _root equivale a utilizar la notacin con barras (/) desfasada para especificar una ruta absoluta en el nivel actual.

Propiedades globales

91

Nota: si un clip de pelcula que contiene _root se carga en otro clip de pelcula, _root hace referencia a la lnea de tiempo del clip de pelcula que se carga y no a la lnea de tiempo que contiene _root. Si desea asegurarse de que _root haga referencia a la lnea de tiempo del clip de pelcula cargado incluso cuando se cargue en otro clip de pelcula, utilice MovieClip._lockroot. Parmetros
movieClip:String action:String

- Nombre de instancia de un clip de pelcula.

- Accin o campo. - Propiedad del objeto MovieClip.

property:String

Ejemplo El ejemplo siguiente detiene la lnea de tiempo del nivel que contiene el script que se est ejecutando:
_root.stop();

El ejemplo siguiente realiza un seguimiento de las variables e instancias en el mbito de


_root: for (prop in _root) { trace("_root."+prop+" = "+_root[prop]); }

Vase tambin
_lockroot (propiedad MovieClip._lockroot), Propiedad _parent, Funcin targetPath

Propiedad scroll
textFieldVariableName.scroll = x

Desfasada desde Flash Player 5. Esta propiedad est desfasada y en su lugar debe utilizarse TextField.scroll. Controla la visualizacin de informacin en un campo de texto asociado a una variable. La propiedad scroll define dnde comienza el campo de texto a mostrar contenido; despus de establecerla, Flash Player la actualiza a medida que el usuario se desplaza por el campo de texto. La propiedad scroll es til para dirigir a los usuarios a un prrafo especfico en un pasaje largo, o para crear campos de texto con desplazamiento. Esta propiedad puede recuperarse y modificarse.

92

Elementos del lenguaje ActionScript

Ejemplo El cdigo siguiente se adjunta a un botn Arriba que desplaza el campo de texto llamado myText:
on (release) { myText.scroll = myText.scroll + 1; }

Vase tambin
maxscroll (propiedad TextField.maxscroll), scroll (propiedad TextField.scroll)

Propiedad _soundbuftime
_soundbuftime:Number = integer

Establece el nmero de segundos para que se almacene en el bfer el flujo de sonido. El valor predeterminado es 5 segundos. Parmetros
integer:Number - Nmero de segundos transcurridos antes de que se inicie la reproduccin sin interrupcin del archivo SWF.

Ejemplo El ejemplo siguiente reproduce un archivo MP3 en flujo y almacena el sonido en el bfer antes de reproducirlo para el usuario. Se crean dos campos de texto en tiempo de ejecucin para contener un temporizador e informacin de depuracin. La propiedad _soundbuftime se configura para almacenar el MP3 en bfer durante 10 segundos. Se crea una nueva instancia de objeto Sound para el MP3.
// crea campos de texto para contener la informacin de depuracin. this.createTextField("counter_txt", this.getNextHighestDepth(), 0, 0, 100, 22); this.createTextField("debug_txt", this.getNextHighestDepth(), 0, 20, 100, 22); // establece el bfer de sonido en 10 segundos. _soundbuftime = 10; // crea la instancia del nuevo objeto de sonido. var bg_sound:Sound = new Sound(); // carga el archivo de sonido MP3 y establece el flujo de sonido en true. bg_sound.loadSound("yourSound.mp3", true); // se activa la funcin cuando finaliza la carga de la cancin. bg_sound.onLoad = function() {

Propiedades globales

93

debug_txt.text = "sound loaded"; }; debug_txt.text = "sound init"; function updateCounter() { counter_txt.text++; } counter_txt.text = 0; setInterval(updateCounter, 1000);

Propiedad this
this

Hace referencia a una instancia de clip de pelcula u objeto. Cuando se ejecuta un script, this hace referencia a la instancia del clip de pelcula que contiene el script. Cuando se llama a un campo, this contiene una referencia al objeto que contiene el campo al que se llama. Dentro de un controlador de eventos on() asociado a un botn, this hace referencia a la lnea de tiempo que contiene el botn. Dentro de un controlador de eventos onClipEvent() asociado a un clip de pelcula, this hace referencia a la lnea de tiempo del propio clip de pelcula. Dado que this se evala en el contexto del script que lo contiene, no puede utilizar this en un script para hacer referencia a una variable definida en un archivo de clase. Cree ApplyThis.as e introduzca el siguiente cdigo:
class ApplyThis { var str:String = "Defined in ApplyThis.as"; function conctStr(x:String):String { return x+x; } function addStr():String { return str; } }

Posteriormente, en un archivo FLA o AS, aada el siguiente cdigo ActionScript:


var obj:ApplyThis = new ApplyThis(); var abj:ApplyThis = new ApplyThis(); abj.str = "defined in FLA or AS"; trace(obj.addStr.call(abj, null)); //salida: defined in FLA or AS trace(obj.addStr.call(this, null)); //salida: undefined trace(obj.addStr.call(obj, null)); //salida: Defined in applyThis.as

Del mismo modo, para llamar a una funcin definida en una clase dinmica, debe utilizar this para invocar la funcin en el mbito adecuado:
// versin incorrecta de Simple.as /* dynamic class Simple {

94

Elementos del lenguaje ActionScript

function callfunc() { trace(func()); } } */ // versin correcta de Simple.as dynamic class simple { function callfunc() { trace(this.func()); } }

Dentro de un archivo FLA o AS, aada el siguiente cdigo ActionScript:


var obj:Simple = new Simple(); obj.num = 0; obj.func = function() { return true; }; obj.callfunc(); // salida: true

Si utiliza la versin incorrecta de Simple.as, obtendr un error de sintaxis. Ejemplo En el ejemplo siguiente, la palabra clave this hace referencia al objeto Circle:
function Circle(radius:Number):Void { this.radius = radius; this.area = Math.PI*Math.pow(radius, 2); } var myCircle = new Circle(4); trace(myCircle.area);

En la sentencia siguiente asignada a un fotograma dentro de un clip de pelcula, la palabra clave this hace referencia al clip de pelcula actual.
// establece la propiedad alpha del clip de pelcula actual en 20 this._alpha = 20;

En la sentencia siguiente dentro de un controlador de MovieClip.onPress, la palabra clave this hace referencia al clip de pelcula actual:
this.square_mc.onPress = function() { startDrag(this); }; this.square_mc.onRelease = function() { stopDrag(); };

Vase tambin
Controlador on, Controlador onClipEvent

Propiedades globales

95

Operadores
Los operadores simblicos son caracteres que especifican cmo combinar, comparar o modificar los valores de una expresin. Resumen de operadores
Operador
+ (suma) += (asignacin de suma) [] (acceso a matriz)

Descripcin
Aade expresiones numricas o concatena (combina) cadenas. Asigna a expression1 el valor de expression1 + expression2. Inicializa una nueva matriz o matriz multidimensional con los elementos especificados (a0 y as sucesivamente) o accede a elementos de una matriz. Asigna el valor de expression2 (el parmetro a la derecha) a la variable, elemento de matriz o propiedad de expression1. signo y ejecuta una operacin booleana AND en cada bit de los parmetros integer.

= (asignacin)

& (AND en modo bit) Convierte expression1 y expression2 en enteros de 32 bits sin

&= (asignacin de AND en modo bit) << (desplazamiento a la izquierda en modo bit)

Asigna a expression1 el valor de expression1& expression2. Convierte expression1 y expression2 en enteros de 32 bits y desplaza todos los bits de expression1 a la izquierda el nmero de posiciones especificado por el entero resultante de la conversin de expression2. Este operador ejecuta una operacin de desplazamiento a la izquierda en modo bit (<<=) y almacena el contenido como un resultado en expression1.

<<= (asignacin y desplazamiento a la izquierda en modo bit)

~ (NOT en modo bit) Tambin conocido como operador complementario de uno u operador

complementario en modo bit.


| (OR en modo bit)

Convierte expression1 y expression2 en enteros de 32 bits sin signo y devuelve un 1 en cada posicin de bit donde los correspondientes bits tanto de expression1 como de expression2 sean 1. Asigna a expression1 el valor de expression1 | expression2.

|= (asignacin de OR en modo bit)

96

Elementos del lenguaje ActionScript

Operador
>> (desplazamiento a la derecha en modo bit)

Descripcin
Convierte expression1 y expression2 en enteros de 32 bits y desplaza todos los bits de expression1 a la derecha el nmero de posiciones especificado por el entero resultante de la conversin de expression2. Este operador ejecuta una operacin de desplazamiento a la derecha en modo bit y almacena el contenido como un resultado en expression1.

>>= (asignacin y desplazamiento a la derecha en modo bit)

Igual que el operador de desplazamiento a la derecha en modo bit (>>), salvo que no conserva el signo de la expression original porque los modo bit sin signo) bits a la izquierda se completan siempre con un 0. Los nmeros de coma flotante se convierten en enteros al descartarse los dgitos despus de la coma decimal.
>>> (desplazamiento a la derecha en >>>= (asignacin y desplazamiento a la derecha en modo bit sin signo) ^ (XOR en modo bit) Convierte expression1 y expression2 en enteros de 32 bits sin

Ejecuta una operacin de desplazamiento a la derecha en modo bit sin signo y almacena el contenido como un resultado en expression1.

signo y devuelve un 1 en cada posicin de bit donde los correspondientes bits de expression1 o de expression2 sean 1 (no ambos).
^= (asignacin de XOR en modo bit) /* (delimitador de comentario en bloque) , (coma)

Asigna a expression1 el valor de expression1 ^ expression2. Indica una o varias lneas de comentarios de script.

Evala primero expression1, a continuacin, expression2 y as sucesivamente. Desfasado desde Flash Player 5. Adobe recomienda que utilice el operador de suma (+) cuando cree contenido para Flash Player 5 o versiones posteriores. Nota: en Flash Lite 2.0, tambin el operador add est desfasado y en su lugar debe utilizarse el operador (+). Concatena dos o ms cadenas. Indica a Flash que evale expression1 y si el valor de expression1 es true, el operador devuelve el valor de expression2; en caso contrario devuelve el valor de expression3. Operador unario de decremento previo y decremento posterior que resta 1 de expression.

add (suma de concatenacin (cadenas))

?: (condicional)

-- (decremento)

Operadores

97

Operador
/ (divisin) /= (asignacin de divisin) . (punto)

Descripcin
Divide expression1 por expression2. Asigna a expression1 el valor de expression1 / expression2. Se utiliza para navegar por las jerarquas de clips de pelcula y acceder a variables, propiedades o clips de pelcula anidados (secundarios). Comprueba la igualdad de dos expresiones. Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse == (equality). Devuelve true si la representacin de cadena de expression1 es igual a la representacin de cadena de expression2; en caso contrario devuelve false. Compara dos expresiones y determina si expression1 es mayor que expression2; si lo es, el operador devuelve true. Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse > (mayor que). Compara la representacin de cadena de expression1 con la representacin de cadena de expression2 y devuelve true si expression1 es mayor que expression2; en caso contrario devuelve false. Compara dos expresiones y determina si expression1 es mayor o igual que expression2 (true) o expression1 es menor que expression2 (false). Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse >= (mayor o igual que). Devuelve true si expression1 es mayor o igual que expression2; de lo contrario devuelve false. Operador unario de incremento previo e incremento posterior que aade 1 a expression. Prueba el contrario exacto del operador de igualdad (==). Desfasado desde Flash Player 5. Este operador est desfasado. Adobe recomienda que utilice el operador != (inequality). Prueba el contrario exacto del operador de igualdad (==). Comprueba si object es una instancia de classConstructor o una subclase de classConstructor. Compara dos expresiones y determina si expression1 es menor que expression2; si lo es, el operador devuelve true.

== (igualdad) eq (igualdad (cadenas)

> (mayor que)

gt (mayor que (cadenas))

>= (mayor o igual que)

ge (mayor o igual que (cadenas))

++ (incremento)

!= (desigualdad) <> (desigualdad)

instanceof

< (menor que)

98

Elementos del lenguaje ActionScript

Operador
lt (menor que (cadenas))

Descripcin
Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse < (menor que). Devuelve true si expression1 es menor que expression2, y false en caso contrario. Compara dos expresiones y determina si expression1 es menor o igual que expression2; si lo es, el operador devuelve true. Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse <= (menor o igual que). Devuelve true si expression1 es menor o igual que expression2; de lo contrario devuelve false. Indica el principio de un comentario de script.

<= (menor o igual que) le (menor o igual que (cadenas))

// (delimitador de comentario de lnea) && (AND lgico)

Ejecuta una operacin booleana en los valores una de las expresiones o en ambas. Desfasado desde Flash Player 5. Adobe recomienda el uso del operador lgico AND (&&)). Ejecuta una operacin de AND lgica (&&) en Flash Player 4. Invierte el valor booleano de una variable o expresin. Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse ! (logical NOT). Ejecuta una operacin NOT (!) lgica en Flash Player 4. Evala expression1 (la expresin en la parte izquierda del operador) y devuelve true si la expresin da como resultado true. Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse || (logical OR). Evala condition1 y condition2, y si alguna es true, toda la expresin es true. Calcula el resto de expression1 dividido entre expression2. Asigna a expression1 el valor de expression1 % expression2. Multiplica dos expresiones numricas. Asigna a expression1 el valor de expression1 * expression2. Crea un objeto nuevo, inicialmente annimo, y llama a la funcin identificada por el parmetro constructor.

and (AND lgico)

! (NOT lgico) not (NOT lgico)

|| (OR lgico)

or (OR lgico)

% (mdulo) %= (asignacin de mdulo) * (multiplicacin) *= (asignacin de multiplicacin) new

Operadores

99

Operador
ne (distinto (cadenas))

Descripcin
Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse != (inequality). Devuelve true si expression1 no igual que expression2; de lo contrario devuelve false. Crea un nuevo objeto y lo inicializa con los pares de propiedades name y value. Ejecuta una operacin de agrupacin en uno o varios parmetros, lleva a cabo una evaluacin secuencial de las expresiones o rodea uno o varios parmetros y los pasa como parmetros a una funcin fuera del parntesis. Comprueba la igualdad de dos expresiones; el operador de igualdad estricta (===) hace lo mismo que el operador de igualdad (==) con la diferencia de que los tipos de datos no se convierten. Prueba el contrario exacto del operador de igualdad estricta (===). Si se utilizan antes y despus de caracteres, las comillas (") indican que los caracteres tienen un valor literal y se consideran una cadena y no una variable ni un valor numrico ni otro elemento de ActionScript. Se emplea para negar o restar. Asigna a expression1 el valor de expression1 - expression2. Se utiliza en la tcnica "strict data typing"; este operador especifica el tipo de variable, el tipo de devolucin de funcin o el tipo de parmetro de funcin. El operador typeof evala expression y devuelve una cadena que especifica si la expresin es String, MovieClip, Object, Function, Number, o valor Boolean. El operador void evala una expresin y, a continuacin, descarta su valor, devolviendo undefined.

{} (inicializador de objeto) () (parntesis)

=== (igualdad estricta)

!== (desigualdad estricta) " (delimitador de cadena)

- (resta) -= (asignacin de resta) : (tipo)

typeof

void

100

Elementos del lenguaje ActionScript

Operador suma (+)


expression1 + expression2

Aade expresiones numricas o concatena (combina) cadenas. Si una expresin es una cadena, todas las dems expresiones se convierten en cadenas y se concatenan. Si ambas expresiones son enteros, la suma es un entero; si al menos una de las expresiones es un nmero de coma flotante, la suma es un nmero de coma flotante. Nota: Flash Lite 2.0 es compatible con el operador de suma (+) para sumar expresiones numricas y concatenar cadenas. Flash Lite 1 es compatible con el operador de suma (+) para sumar expresiones numricas (como var1 = 1 + 2 // output: 3). En Flash Lite 1.x, debe utilizar el operador add para concatenar cadenas. Operandos
expression1 expression2

- Un nmero o cadena. - Un nmero o cadena.

Valor devuelto
Object

- Una cadena, un entero o un nmero de coma flotante.

Ejemplo Sintaxis 1: El ejemplo siguiente concatena dos cadenas y muestra el resultado en el panel Salida.
var name:String = "Cola"; var instrument:String = "Drums"; trace(name + " plays " + instrument); // salida: Cola plays Drums

Nota: Flash Lite 1.x no es compatible con el operador de suma (+) para concatenar cadenas. En Flash Lite 1.x, debe utilizar el operador add para concatenar cadenas. Sintaxis 2: Esta sentencia aade los enteros 2 y 3 y muestra el entero resultante, 5, en el panel Salida:
trace(2 + 3); // salida: 5

Esta sentencia aade los nmeros de coma flotante 2,5 y 3,25 y muestra el nmero de coma flotante resultante, 5,75, en el panel Salida:
trace(2,5 +3,25); // salida: 5.75

Operadores

101

Sintaxis 3: Las variables asociadas con los campos de texto dinmico y de entrada tienen un tipo de datos String. En el ejemplo siguiente, la variable deposit es un campo de texto de entrada en el escenario. Cuando un usuario introduce una cantidad de depsito, el script intenta aadir deposit a oldBalance. Sin embargo, dado que deposit es un tipo de datos String, el script concatena (se combina para formar una cadena) los valores variables en lugar de sumarlos.
var oldBalance:Number = 1345.23; var currentBalance = deposit_txt.text + oldBalance; trace(currentBalance);

Por ejemplo, si un usuario introduce 475 en el campo de texto de depsito, la funcin trace() enva el valor 4751345.23 al panel Salida. Para corregir esto, utilice la funcin Number() para convertir la cadena en un nmero, como se indica a continuacin:
var oldBalance:Number = 1345.23; var currentBalance:Number = Number(deposit_txt.text) + oldBalance; trace(currentBalance);

El ejemplo siguiente muestra cmo no se calculan las sumas numricas a la derecha de una expresin de cadena:
var a:String trace(a); // var b:String trace(b); // = 3 + 10 + "asdf"; 13asdf = "asdf" + 3 + 10; asdf310

Operador asignacin de suma (+=)


expression1 += expression2

Asigna a expression1 el valor de expression1+ expression2. Por ejemplo, las dos sentencias siguientes tienen el mismo resultado:
x += y; x = x + y;

Este operador realiza adems una concatenacin de cadenas. Todas las reglas del operador de suma (+) se aplican al operador de asignacin de suma (+=). Operandos
expression1 : Number expression2 : Number

- Un nmero o cadena. - Un nmero o cadena.

Valor devuelto
Number

- El resultado de la suma.

102

Elementos del lenguaje ActionScript

Ejemplo Sintaxis 1: Este ejemplo utiliza el operador += con una expresin de cadena y enva "My name is Gilbert" al panel Salida.
var x1:String = "My name is "; x1 += "Gilbert"; trace(x1); // salida: My name is Gilbert

Sintaxis 2: El ejemplo siguiente muestra un uso numrico del operador de asignacin de suma (+=):
var x:Number = 5; var y:Number = 10; x += y; trace(x); // salida: 15

Vase tambin
Operador suma (+)

Operador acceso a matriz ([])


myArray =[a0, a1,...aN] myArray[i]= value myObject[propertyName]

Inicializa una nueva matriz o matriz multidimensional con los elementos especificados (a0 y as sucesivamente) o accede a elementos de una matriz. El operador de acceso a matriz permite establecer dinmicamente y recuperar nombres de instancia, variable y objeto. Tambin permite acceder a propiedades de objeto. Sintaxis 1: Una matriz es un objeto cuyas propiedades se denominan elementos, que se identifican mediante un nmero denominado ndice. Cuando se crea una matriz, se rodean los elementos con el operador de acceso a matriz ([]) (o corchetes). Una matriz puede contener elementos de diversos tipos. Por ejemplo, la siguiente matriz, denominada employee, tiene tres elementos; el primero es un nmero y los dos siguientes son cadenas (entre comillas):
var employee:Array = [15, "Barbara", "Jay"];

Puede anidar los corchetes para simular matrices multidimensionales. Puede anidar matrices hasta un mximo de 256 niveles de profundidad. El siguiente cdigo crea una matriz denominada ticTacToe, con tres elementos; cada elemento es a su vez una matriz con tres elementos:
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; // Seleccione Depurar > Mostrar variables en modo de prueba // para ver una lista de los elementos de la matriz.

Operadores

103

Sintaxis 2: Ponga entre corchetes ([]) el ndice de cada elemento para acceder a l directamente; puede aadir un nuevo elemento a una matriz o puede cambiar o recuperar el valor de un elemento existente. El primer ndice de una matriz es siempre 0, tal y como se muestra en el siguiente ejemplo:
var my_array:Array = new Array(); my_array[0] = 15; my_array[1] = "Hello"; my_array[2] = true;

Puede utilizar corchetes ([]) para aadir un cuarto elemento, tal y como se muestra en el siguiente ejemplo:
my_array[3] = "George";

Puede utilizar corchetes ([]) para acceder a un elemento de una matriz multidimensional. El primer conjunto de corchetes identifica el elemento en la matriz original y el segundo conjunto identifica el elemento en la matriz anidada. Las siguientes lneas de cdigo envan el nmero 6 al panel Salida.
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; trace(ticTacToe[1][2]);// salida: 6

Sintaxis 3: Puede utilizar el operador de acceso a matriz ([]) en lugar de la funcin eval() para establecer dinmicamente y recuperar los valores de los nombres de clip de pelcula o cualquier propiedad de un objeto. La siguiente lnea de cdigo enva el nmero 6 al panel Salida.
name["mc" + i] = "left_corner";

Operandos
myArray : Object

- myArray Nombre de una matriz.

- a0,a1,...aN Elementos de una matriz; cualquier tipo nativo o instancia de objeto, incluidas las matrices anidadas.
a0, a1,...aN : Object i : Number

- i ndice de nmero entero mayor o igual que 0. - myObject Nombre de un objeto. - propertyName Cadena que denomina una propiedad del objeto.

myObject : Object

propertyName : String

Valor devuelto
Object

Sintaxis 1: Una referencia a una matriz. Sintaxis 2: Un valor de la matriz, ya sea un tipo nativo o una instancia de objeto (incluida una instancia de Array). Sintaxis 3: Una propiedad del objeto, ya sea un tipo nativo o una instancia de objeto (incluida una instancia de Array).

104

Elementos del lenguaje ActionScript

Ejemplo El ejemplo siguiente muestra dos formas de crear un nuevo objeto Array vaco; la primera lnea utiliza corchetes ([]):
var my_array:Array = []; var my_array:Array = new Array();

El ejemplo siguiente crea una matriz llamada employee_array y utiliza la sentencia trace() para enviar los elementos al panel Salida. En la cuarta lnea, se cambia un elemento de la matriz, y la quinta lnea enva la matriz recin modificada al panel Salida:
var employee_array = ["Barbara", "George", "Mary"]; trace(employee_array); // salida: Barbara,George,Mary employee_array[2] = "Sam"; trace(employee_array); // salida: Barbara,George,Sam

En el ejemplo siguiente, se evala la expresin entre corchetes ("piece" + i) y el resultado se utiliza como nombre de la variable que se va a recuperar del clip de pelcula my_mc: En este ejemplo, la variable i debe encontrarse en la misma lnea de tiempo que el botn. Si la variable i es igual a 5, por ejemplo, el valor de la variable piece5 en el clip de pelcula my_mc se mostrar en el panel Salida:
myBtn_btn.onRelease = function(){ x = my_mc["piece"+i]; trace(x); };

En el ejemplo siguiente, se evala la expresin entre corchetes y el resultado se utiliza como nombre de la variable que se va a recuperar del clip de pelcula name_mc:
name_mc["A" + i];

Si conoce la sintaxis de barras de Flash 4 ActionScript, puede emplear la funcin eval() para conseguir el mismo resultado:
eval("name_mc.A" & i);

Puede utilizar el siguiente ActionScript para reproducir indefinidamente todos los objetos del mbito _root, algo que resulta til para depurar:
for (i in _root) { trace(i+": "+_root[i]); }

Tambin puede utilizar el operador de acceso a una matriz ([]) del lado izquierdo de una sentencia de asignacin para establecer dinmicamente nombres de instancia, variable y objeto:
employee_array[2] = "Sam";

Vase tambin
Array, Object, Funcin eval

Operadores

105

Operador asignacin (=)


expression1 = expression2

Asigna el valor de expression2 (el parmetro a la derecha) a la variable, elemento de matriz o propiedad de expression1. La asignacin puede ser por valor o por referencia. La asignacin por valor copia el valor actual de expression2 y lo almacena en expression1. La asignacin por valor se utiliza cuando se asigna un nmero o un literal de cadena a una variable. La asignacin por referencia almacena una referencia a expression2 en expression1. La asignacin por referencia suele utilizarse con operador new. El uso del operador new crea un objeto en la memoria y se asigna a la variable una referencia a dicha ubicacin en la memoria. Operandos
expression1 : Object

- Una variable, un elemento de una matriz o una propiedad de un - Un valor de cualquier tipo.

objeto.
expression2 : Object

Valor devuelto
Object

- El valor asignado, expression2.

Ejemplo El ejemplo siguiente utiliza asignacin por valor para asignar el valor de 5 a la variable x.
var x:Number = 5;

El ejemplo siguiente utiliza asignacin por valor para asignar el valor "hello" a la variable x:
var x:String;x = " hello ";

El ejemplo siguiente utiliza asignacin por referencia para crear la variable moonsOfJupiter, que contiene una referencia a un objeto Array recin creado. A continuacin se utiliza asignacin por valor para copiar el valor "Callisto" al primer elemento de la matriz a la que hace referencia la variable moonsOfJupiter:
var moonsOfJupiter:Array = new Array();moonsOfJupiter[0] = "Callisto";

El ejemplo siguiente utiliza asignacin por referencia para crea un objeto nuevo y asignar una referencia a ese objeto a la variable mercury. A continuacin se utiliza asignacin por valor para asignar el valor de 3030 a la propiedad diameter del objeto mercury:
var mercury:Object = new Object(); mercury.diameter = 3030; // in miles trace (mercury.diameter); // output: 3030

106

Elementos del lenguaje ActionScript

El ejemplo siguiente se basa en el ejemplo anterior creando una variable llamada merkur ("mercury" en alemn) y asignndole el valor de mercury. De este modo se crean dos variables que hacen referencia al mismo objeto en la memoria, lo que significa que puede utilizar cualquiera de ellas para acceder a las propiedades del objeto. Seguidamente podemos cambiar la propiedad diameter para utilizar kilmetros en lugar de millas:
var merkur:Object = mercury; merkur.diameter = 4878; // in kilometers trace (mercury.diameter); // output: 4878

Vase tambin
Operador igualdad (==)

Operador AND en modo bit (&)


expression1 & expression2

Convierte expression1 y expression2 en enteros de 32 bits sin signo y ejecuta una operacin booleana AND en cada bit de los parmetros integer. Los nmeros de coma flotante se convierten en enteros al descartarse los dgitos despus de la coma decimal. El resultado es un nuevo entero de 32 bits. Los enteros positivos se convierten en un valor hexadecimal sin signo con un valor mximo de 4294967295 o 0xFFFFFFFF; se descartan los dgitos ms significativos de los valores mayores que el mximo cuando se convierten, de forma que el valor siga siendo de 32 bits. Los nmeros negativos se convierten en un valor hexadecimal sin signo a travs de la notacin complementaria del dos, siendo el mnimo -2147483648 o 0x800000000; los nmeros menores que el mnimo se convierten en el complemento del dos con una mayor precisin y tambin se descartan sus dgitos ms significativos. El valor devuelto se interpreta como un nmero complementario del dos con signo, de forma que el valor devuelto sea un entero del intervalo comprendido entre -2147483648 y 2147483647. Operandos
expression1 : Number expression2 : Number

- Un nmero. - Un nmero.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Operadores

107

Ejemplo El ejemplo siguiente compara la representacin de bits de los nmeros y devuelve 1 slo si los dos bits en la misma posicin son 1. En el siguiente cdigo ActionScript, aade 13 (binario 1101) y 11 (binario 1011) y devuelve 1 slo en la posicin en la que los nmeros tienen un 1.
var insert:Number = 13; var update:Number = 11; trace(insert & update); // salida: 9 (o 1001 - binario)

En los nmeros 13 y 11 el resultado es 9 porque slo la primera y la ltima posicin de ambos nmeros tienen el nmero 1. Los ejemplos siguientes muestran el comportamiento de la conversin del valor devuelto:
trace(0xFFFFFFFF); trace(0xFFFFFFFF & trace(0xFFFFFFFF & trace(4294967295 & trace(4294967295 & // 4294967295 0xFFFFFFFF); // -1 -1); // -1 -1); // -1 4294967295); // -1

Vase tambin
Operador asignacin de AND en modo bit (&=), Operador XOR en modo bit (^), Operador asignacin de XOR en modo bit (^=), Operador OR en modo bit (|), Operador asignacin de OR en modo bit (|=), Operador NOT en modo bit (~)

Operador asignacin de AND en modo bit (&=)


expression1 &= expression2

Asigna a expression1 el valor de expression1& expression2. Por ejemplo, las dos expresiones siguientes son equivalentes:
x &= y; x = x & y;

Operandos
expression1 : Number expression2 : Number

- Un nmero. - Un nmero.

Valor devuelto
Number

- El valor de expression1 & expression2 .

108

Elementos del lenguaje ActionScript

Ejemplo El ejemplo siguiente asigna el valor de 9 a x:


var x:Number = 15; var y:Number = 9; trace(x &= y); // salida: 9

Vase tambin
Operador AND en modo bit (&), Operador XOR en modo bit (^), Operador asignacin de XOR en modo bit (^=), Operador OR en modo bit (|), Operador asignacin de OR en modo bit (|=), Operador NOT en modo bit (~)

Operador desplazamiento a la izquierda en modo bit (<<)


expression1 << expression2

Convierte expression1 y expression2 en enteros de 32 bits y desplaza todos los bits de expression1 a la izquierda el nmero de posiciones especificado por el entero resultante de la conversin de expression2. Las posiciones de bit vacas fruto de esta operacin se llenan con 0 y los bits que se desplazan a la izquierda se descartan. Desplazar un valor una posicin a la izquierda equivale a multiplicarlo por 2. Los nmeros de coma flotante se convierten en enteros al descartarse los dgitos despus de la coma decimal. Los enteros positivos se convierten en un valor hexadecimal sin signo con un valor mximo de 4294967295 o 0xFFFFFFFF; se descartan los dgitos ms significativos de los valores mayores que el mximo cuando se convierten, de forma que el valor siga siendo de 32 bits. Los nmeros negativos se convierten en un valor hexadecimal sin signo a travs de la notacin complementaria del dos, siendo el mnimo -2147483648 o 0x800000000; los nmeros menores que el mnimo se convierten en el complemento del dos con una mayor precisin y tambin se descartan sus dgitos ms significativos. El valor devuelto se interpreta como un nmero complementario del dos con signo, de forma que el valor devuelto ser un entero del intervalo comprendido entre -2147483648 y 2147483647. Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que se va a desplazar a la izquierda. - Nmero o expresin que se convierte en un entero de 0 a 31.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Operadores

109

Ejemplo En el ejemplo siguiente, el entero 1 se desplaza 10 bits a la izquierda: x = 1 << 10 El resultado de esta operacin es x = 1024. Eso se debe a que 1 decimal es igual a 1 binario, 1 binario desplazado 10 bits a la izquierda es 10000000000 binario, y 10000000000 binario es 1024 decimal. En el ejemplo siguiente, el entero 7 se desplaza 8 bits a la izquierda: x = 7 << 8 El resultado de esta operacin es x = 1792. Eso se debe a que 7 decimal es igual a 111 binario, 111 binario desplazado 8 bits a la izquierda es 11100000000 binario, y 11100000000 binario es 1792 decimal. Si observa el ejemplo siguiente, comprobar que los bits se han desplazado dos espacios a la izquierda:
// 2 binario == 0010 // 8 binario == 1000 trace(2 << 2); // salida: 8

Vase tambin
Operador asignacin y desplazamiento a la derecha en modo bit (>>=), Operador desplazamiento a la derecha en modo bit (>>), Operador asignacin y desplazamiento a la izquierda en modo bit (<<=), Operador desplazamiento a la derecha en modo bit sin signo (>>>), Operador asignacin y desplazamiento a la derecha en modo bit sin signo (>>>=)

Operador asignacin y desplazamiento a la izquierda en modo bit (<<=)


expression1 <<= expression2

Este operador ejecuta una operacin de desplazamiento a la izquierda en modo bit (<<=) y almacena el contenido como un resultado en expression1. Las dos expresiones siguientes son equivalentes:
A <<= BA = (A << B)

Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que se va a desplazar a la izquierda. - Nmero o expresin que se convierte en un entero de 0 a 31.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

110

Elementos del lenguaje ActionScript

Ejemplo En el ejemplo siguiente, utilice el operador de asignacin y desplazamiento a la izquierda en modo bit (<<=) para desplazar todos los bits un espacio a la izquierda:
var x:Number = 4; // desplaza todos los bits una posicin a la izquierda. x <<= 1; trace(x); // salida: 8 // 4 decimal = 0100 binario // 8 decimal = 1000 binario

Vase tambin
Operador desplazamiento a la izquierda en modo bit (<<), Operador asignacin y desplazamiento a la derecha en modo bit (>>=), Operador desplazamiento a la derecha en modo bit (>>)

Operador NOT en modo bit (~)


~expression

Tambin conocido como operador complementario de uno u operador complementario en modo bit. Convierte expression en un entero de 32 bits sin signo y, a continuacin, aplica un complemento de uno en modo bit. Es decir, que cada bit que sea 0 se establece como 1 en el resultado y cada bit que sea 1 se establece como 0 en el resultado. El resultado es un entero de 32 bits sin signo. Por ejemplo, el valor hexadecimal 0x7777 se representa como este nmero binario: 0111011101110111 La negacin en modo bit de dicho valor hexadecimal, ~0x7777, se corresponde con este nmero binario: 1000100010001000 El valor hexadecimal correspondiente es 0x8888. Por lo tanto, ~0x7777 es 0x8888. El uso ms comn de los operadores en modo bit es la representacin de bits indicadores (valores booleanos empaquetados en 1 bit cada uno). Los nmeros de coma flotante se convierten en enteros al descartarse los dgitos despus de la coma decimal. Los enteros positivos se convierten en un valor hexadecimal sin signo con un valor mximo de 4294967295 o 0xFFFFFFFF; se descartan los dgitos ms significativos de los valores mayores que el mximo cuando se convierten, de forma que el valor siga siendo de 32 bits. Los nmeros negativos se convierten en un valor hexadecimal sin signo a travs de la notacin complementaria del dos, siendo el mnimo -2147483648 o 0x800000000; los nmeros menores que el mnimo se convierten en el complemento del dos con una mayor precisin y tambin se descartan sus dgitos ms significativos.

Operadores

111

El valor devuelto se interpreta como un nmero complementario del dos con signo, de forma que el valor devuelto sea un entero del intervalo comprendido entre -2147483648 y 2147483647. Operandos
expression : Number

- Un nmero.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Ejemplo El ejemplo siguiente demuestra un uso del operador NOT en modo bit (-) con bits indicadores:
var ReadOnlyFlag:Number = 0x0001; // define el bit 0 como el indicador de slo lectura var flags:Number = 0; trace(flags); /* Para establecer el indicador de slo lectura en la variable flags, el cdigo siguiente utiliza OR en modo bit: */ flags |= ReadOnlyFlag; trace(flags); /* Para borrar el indicador de slo lectura en la variable flags, primer cree una mscara con NOT en modo bit en ReadOnlyFlag. En la mscara, cada bit es un 1 salvo el indicador de slo lectura. A continuacin, utilice AND en modo bit con la mscara para borrar el indicador de slo lectura. El siguiente cdigo crea la mscara y lleva a cabo un AND en modo bit: */ flags &= ~ReadOnlyFlag; trace(flags); // salida: 0 1 0

Vase tambin
Operador AND en modo bit (&), Operador asignacin de AND en modo bit (&=), Operador XOR en modo bit (^), Operador asignacin de XOR en modo bit (^=), Operador OR en modo bit (|), Operador asignacin de OR en modo bit (|=)

112

Elementos del lenguaje ActionScript

Operador OR en modo bit (|)


expression1 | expression2

Convierte expression1 y expression2en enteros de 32 bits sin signo y devuelve 1 en cada posicin de bit donde los correspondientes bits, tanto de expression1 como expression2 son 1. Los nmeros de coma flotante se convierten en enteros al descartarse los dgitos despus de la coma decimal. El resultado es un nuevo entero de 32 bits. Los enteros positivos se convierten en un valor hexadecimal sin signo con un valor mximo de 4294967295 o 0xFFFFFFFF; se descartan los dgitos ms significativos de los valores mayores que el mximo cuando se convierten, de forma que el valor siga siendo de 32 bits. Los nmeros negativos se convierten en un valor hexadecimal sin signo a travs de la notacin complementaria del dos, siendo el mnimo -2147483648 o 0x800000000; los nmeros menores que el mnimo se convierten en el complemento del dos con una mayor precisin y tambin se descartan sus dgitos ms significativos. El valor devuelto se interpreta como un nmero complementario del dos con signo, de forma que el valor devuelto ser un entero del intervalo comprendido entre -2147483648 y 2147483647. Operandos
expression1 : Number expression2 : Number

- Un nmero. - Un nmero.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Ejemplo A continuacin se ofrece un ejemplo de una operacin OR (|) en modo bit:


// 15 decimal = 1111 binario var x:Number = 15; // 9 decimal = 1001 binario var y:Number = 9; // 1111 | 1001 = 1111 trace(x | y); // devuelve 15 decimal (1111 binario)

No se debe confundir | (OR en modo bit) con || (OR lgico). Vase tambin
Operador AND en modo bit (&), Operador asignacin de AND en modo bit (&=), Operador XOR en modo bit (^), Operador asignacin de XOR en modo bit (^=), Operador asignacin de OR en modo bit (|=), Operador NOT en modo bit (~)

Operadores

113

Operador asignacin de OR en modo bit (|=)


expression1 |= expression2

Asigna a expression1 el valor de expression1 | expression2. Por ejemplo, las dos sentencias siguientes son equivalentes:
x |= y; and x = x | y;

Operandos
expression1 : Number expression2 : Number

- Un nmero o variable. - Un nmero o variable.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Ejemplo El ejemplo siguiente utiliza el operador de asignacin OR en modo bit (|=)):


// 15 decimal = 1111 binario var x:Number = 15; // 9 decimal = 1001 binario var y:Number = 9; // 1111 |= 1001 = 1111 trace(x |= y); // devuelve 15 decimal (1111 binario)

Vase tambin
Operador AND en modo bit (&), Operador asignacin de AND en modo bit (&=), Operador XOR en modo bit (^), Operador asignacin de XOR en modo bit (^=), Operador OR en modo bit (|), Operador asignacin de OR en modo bit (|=), Operador NOT en modo bit (~)

Operador desplazamiento a la derecha en modo bit (>>)


expression1 >> expression2

Convierte expression1 y expression2 en enteros de 32 bits y desplaza todos los bits de expression1 a la derecha el nmero de posiciones especificado por el entero resultante de la conversin de expression2. Los bits que se desplazan fuera del extremo derecho se descartan. Para conservar el signo del original expression, los bits a la izquierda se completan con un 0 si el bit ms importante (el situado en el extremo izquierdo) de expression1 es 0, y con 1 si el bit ms importante es 1. Desplazar un valor una posicin a la derecha equivale a dividir por 2 y descartar el resto.

114

Elementos del lenguaje ActionScript

Los nmeros de coma flotante se convierten en enteros al descartarse los dgitos despus de la coma decimal. Los enteros positivos se convierten en un valor hexadecimal sin signo con un valor mximo de 4294967295 o 0xFFFFFFFF; se descartan los dgitos ms significativos de los valores mayores que el mximo cuando se convierten, de forma que el valor siga siendo de 32 bits. Los nmeros negativos se convierten en un valor hexadecimal sin signo a travs de la notacin complementaria del dos, siendo el mnimo -2147483648 o 0x800000000; los nmeros menores que el mnimo se convierten en el complemento del dos con una mayor precisin y tambin se descartan sus dgitos ms significativos. El valor devuelto se interpreta como un nmero complementario del dos con signo, de forma que el valor devuelto ser un entero del intervalo comprendido entre -2147483648 y 2147483647. Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que se va a desplazar a la derecha. - Nmero o expresin que se convierte en un entero de 0 a 31.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Ejemplo El ejemplo siguiente convierte 65535 en un entero de 32 bits y lo desplaza 8 bits a la derecha:
var x:Number = 65535 >> 8; trace(x); // produce el resultado 255

El ejemplo siguiente muestra el resultado del ejemplo anterior:


var x:Number = 255;

Eso se debe a que 65535 decimal es igual a 1111111111111111 binario (diecisis unos), 1111111111111111 binario desplazado 8 bits a la derecha es 11111111 binario, y 11111111 binario es 255 decimal. El bit ms significativo es 0 porque los enteros son de 32 bits, por lo que el bit de relleno es 0. El ejemplo siguiente convierte -1 en un entero de 32 bits y lo desplaza 1 bit a la derecha:
var x:Number = -1 >> 1; trace(x); // produce el resultado -1

El ejemplo siguiente muestra el resultado del ejemplo anterior:


var x:Number = -1;

Operadores

115

Esto se debe a que -1 decimal es igual a 11111111111111111111111111111111 binario (treinta y dos unos), desplazando un bit a la derecha hace que se descarte el bit menos significativo (el situado ms a la derecha) y que se rellene con 1 el bit ms significativo. El resultado es 11111111111111111111111111111111 binario (treinta y dos unos), lo que representa el entero de 32 bits -1. Vase tambin
Operador asignacin y desplazamiento a la derecha en modo bit (>>=)

Operador asignacin y desplazamiento a la derecha en modo bit (>>=)


expression1 >>= expression2

Este operador ejecuta una operacin de desplazamiento a la derecha en modo bit y almacena el contenido como un resultado en expression1. Las dos sentencias siguientes son equivalentes:
A >>= B; and A = (A >> B);

Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que se va a desplazar a la derecha. - Nmero o expresin que se convierte en un entero de 0 a 31.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Ejemplo El siguiente cdigo comentado utiliza el operador de asignacin y desplazamiento a la derecha en modo bit (>>==).
function convertToBinary(numberToConvert:Number):String { var result:String = ""; for (var i = 0; i<32; i++) { // Extrae el bit menos significativo utilizando AND en modo bit var lsb:Number = numberToConvert & 1; // Aade este bit al resultado string result = (lsb ? "1" : "0")+result; // Desplaza numberToConvert a la derecha un bit, para ver el bit siguiente numberToConvert >>= 1; } return result; }

116

Elementos del lenguaje ActionScript

trace(convertToBinary(479)); // Devuelve la cadena 00000000000000000000000111011111 // Esta cadena es la representacin binaria del decimal // nmero 479

Vase tambin
Operador desplazamiento a la derecha en modo bit (>>)

Operador desplazamiento a la derecha en modo bit sin signo (>>>)


expression1 >>> expression2

Es igual al operador de desplazamiento a la derecha en modo bit (>>), con la diferencia de que no conserva el signo de la expression original porque los bits a la izquierda se rellenan siempre con un 0. Los nmeros de coma flotante se convierten en enteros al descartarse los dgitos despus de la coma decimal. Los enteros positivos se convierten en un valor hexadecimal sin signo con un valor mximo de 4294967295 o 0xFFFFFFFF; se descartan los dgitos ms significativos de los valores mayores que el mximo cuando se convierten, de forma que el valor siga siendo de 32 bits. Los nmeros negativos se convierten en un valor hexadecimal sin signo a travs de la notacin complementaria del dos, siendo el mnimo -2147483648 o 0x800000000; los nmeros menores que el mnimo se convierten en el complemento del dos con una mayor precisin y tambin se descartan sus dgitos ms significativos. Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que se va a desplazar a la derecha. - Nmero o expresin que se convierte en un entero entre 0 y 31.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Ejemplo El ejemplo siguiente convierte -1 en un entero de 32 bits y lo desplaza 1 bit a la derecha:


var x:Number = -1 >>> 1; trace(x); // salida: 2147483647

Operadores

117

Esto se debe a que -1 decimal es 11111111111111111111111111111111 binario (treinta y dos unos) y cuando se desplaza a la derecha (sin signo) 1 bit, se descarta el bit menos significativo (situado ms a la derecha) y se rellena el bit ms significativo (situado ms a la izquierda) con un 0. El resultado es 01111111111111111111111111111111 binario, lo que representa el entero de 32 bits 2147483647. Vase tambin
Operador asignacin y desplazamiento a la derecha en modo bit (>>=)

Operador asignacin y desplazamiento a la derecha en modo bit sin signo (>>>=)


expression1 >>>= expression2

Ejecuta una operacin de desplazamiento a la derecha en modo bit sin signo y almacena el contenido como un resultado en expression1. Las dos sentencias siguientes son equivalentes:
A >>>= B; and A = (A >>> B);

Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que se va a desplazar a la derecha. - Nmero o expresin que se convierte en un entero de 0 a 31.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Ejemplo Vase tambin


Operador desplazamiento a la derecha en modo bit sin signo (>>>), Operador asignacin y desplazamiento a la derecha en modo bit (>>=)

Operador XOR en modo bit (^)


expression1 ^ expression2

Convierte expression1 y expression2 en enteros de 32 bits sin signo y devuelve 1 en cada posicin de bit donde los correspondientes bits de expression1 o de expression2 (pero no ambos) son 1. Los nmeros de coma flotante se convierten en enteros al descartarse los dgitos despus de la coma decimal. El resultado es un nuevo entero de 32 bits.

118

Elementos del lenguaje ActionScript

Los enteros positivos se convierten en un valor hexadecimal sin signo con un valor mximo de 4294967295 o 0xFFFFFFFF; se descartan los dgitos ms significativos de los valores mayores que el mximo cuando se convierten, de forma que el valor siga siendo de 32 bits. Los nmeros negativos se convierten en un valor hexadecimal sin signo a travs de la notacin complementaria del dos, siendo el mnimo -2147483648 o 0x800000000; los nmeros menores que el mnimo se convierten en el complemento del dos con una mayor precisin y tambin se descartan sus dgitos ms significativos. El valor devuelto se interpreta como un nmero complementario del dos con signo, de forma que el valor devuelto ser un entero del intervalo comprendido entre -2147483648 y 2147483647. Operandos
expression1 : Number expression2 : Number

- Un nmero. - Un nmero.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Ejemplo El ejemplo siguiente utiliza el operador XOR en modo bit en los decimales 15 y 9, y asigna el resultado a la variable x:
// 15 decimal = 1111 binario // 9 decimal = 1001 binario var x:Number = 15 ^ 9; trace(x); // 1111 ^ 1001 = 0110 // devuelve 6 decimal (0110 binario)

Vase tambin
Operador AND en modo bit (&), Operador asignacin de AND en modo bit (&=), Operador asignacin de XOR en modo bit (^=), Operador OR en modo bit (|), Operador asignacin de OR en modo bit (|=), Operador NOT en modo bit (~)

Operadores

119

Operador asignacin de XOR en modo bit (^=)


expression1 ^= expression2

Asigna a expression1 el valor de expression1 ^ expression2. Por ejemplo, las dos sentencias siguientes son equivalentes:
x ^= y x = x ^ y

Operandos
expression1 : Number expression2 : Number

- Enteros y variables. - Enteros y variables.

Valor devuelto
Number

- El resultado de la operacin en modo bit.

Ejemplo El ejemplo siguiente muestra una operacin de asignacin de XOR en modo bit (^=):
// 15 decimal = 1111 binario var x:Number = 15; // 9 decimal = 1001 binario var y:Number = 9; trace(x ^= y); // devuelve 6 decimal (0110 binario)

Vase tambin
Operador AND en modo bit (&), Operador asignacin de AND en modo bit (&=), Operador XOR en modo bit (^), Operador OR en modo bit (|), Operador asignacin de OR en modo bit (|=), Operador NOT en modo bit (~)

120

Elementos del lenguaje ActionScript

Operador delimitador de comentario en bloque (/*)


/* comentario */ /* comment comentario */

Indica una o varias lneas de comentarios de script. Los caracteres que aparecen entre la etiqueta de apertura de comentario (/*) y la etiqueta de cierre de comentario (*/) se interpretan como un comentario y el interpretador de ActionScript los omite. Utilice el delimitador de comentario // para identificar los comentarios de una sola lnea. Utilice el delimitador de comentario /* para identificar los comentarios en varias lneas sucesivas. Si no se inserta la etiqueta de cierre (*/) cuando se utiliza esta forma de delimitador de comentario, aparece un mensaje de error. Tambin aparece un mensaje de error si se intenta anidar comentarios. Despus de utilizar una etiqueta de apertura de comentario (/*), la primera etiqueta de cierre de comentario (*/) finalizar el comentario, independientemente del nmero de etiquetas de apertura (/*) que haya entre ambas. Operandos
comment

- Cualquier carcter.

Ejemplo El script siguiente utiliza delimitadores de comentarios al principio:


/* registra las posiciones X e Y de los clips de pelcula ball y bat */ var ballX:Number = ball_mc._x; var ballY:Number = ball_mc._y; var batX:Number = bat_mc._x; var batY:Number = bat_mc._y;

Este intento de anidar comentarios producir un mensaje de error:


/* se trata de un intento de anidar comentarios. /* Pero la primera etiqueta de cierre tendr su par correspondiente con la primera etiqueta de apertura */ y este texto no se interpretar como un comentario */

Vase tambin
Operador delimitador de comentario de lnea (//)

Operadores

121

Operador coma (,)


(expression1 , expression2 [, expressionN... ])

Evala primero expression1, a continuacin, expression2 y as sucesivamente. Este operador se utiliza principalmente con la sentencia de bucle for y a menudo con el operador de parntesis (). Operandos
expression1 : Number expression2 : Number expressionN : Number

- Expresin que se va a evaluar. - Expresin que se va a evaluar. - Cualquier nmero de expresiones adicionales que se van a evaluar.

Valor devuelto
Object

- El valor de expression1, a continuacin, expression2 y as sucesivamente.

Ejemplo El ejemplo siguiente utiliza el operador de coma (,) en un bucle for:


for (i = 0, trace("i = } // Salida: // i = 0, j // i = 1, j j = 0; i < 3 && j < 3; i++, j+=2) { " + i + ", j = " + j);

= 0 = 2

El ejemplo siguiente utiliza el operador de coma (,) sin el operador de parntesis () e ilustra que el operador de coma devuelve nicamente el valor de la primera expresin sin el operador de parntesis ():
var v:Number = 0; v = 4, 5, 6; trace(v); // salida: 4

El ejemplo siguiente utiliza el operador de coma (,) con el operador de parntesis () e ilustra que el operador de coma devuelve el valor de la ltima expresin cuando se utiliza con el operador de parntesis ():
var v:Number = 0; v = (4, 5, 6); trace(v); // salida: 6

El ejemplo siguiente utiliza el operador de coma (,) sin el operador de parntesis () e ilustra que el operador de coma evala secuencialmente todas las expresiones pero devuelve el valor de la primera expresin. La segunda expresin, z++, se evala y z se incrementa en uno.
var v:Number = 0; var z:Number = 0;

122

Elementos del lenguaje ActionScript

v = v + 4 , z++, v + 6; trace(v); // salida: 4 trace(z); // salida: 1

El ejemplo siguiente es idntico al ejemplo anterior, salvo por la adicin del operador de parntesis () e ilustra una vez ms que, cuando se utiliza con el operador de parntesis (), el operador de coma (,) devuelve el valor de la ltima expresin de la serie:
var v:Number = 0; var z:Number = 0; v = (v + 4, z++, v + 6); trace(v); // salida: 6 trace(z); // salida: 1

Vase tambin
Operador parntesis (())

Operador suma de concatenacin (cadenas)


string1 add string2

Desfasadodesde Flash Player 5. Adobe recomienda que utilice el operador de suma (+) cuando cree contenido para Flash Player 5 o versiones posteriores. Nota: en Flash Lite 2.0, tambin el operador add est desfasado y en su lugar debe utilizarse el operador (+). Concatena dos o ms cadenas. El operador de suma (+) sustituye al operador & de Flash 4; los archivos de Flash Player 4 que utilizan el operador & se convierten automticamente para utilizar el operador de suma (+) para la concatenacin de cadenas cuando pasan al entorno de edicin de Flash 5 o versiones posteriores. Debe utilizar el operador de suma (+) para concatenar cadenas si est creando contenido para Flash Player 4 o versiones anteriores de Flash Player. Operandos
string1 : String string2 : String

- Una cadena. - Una cadena.

Valor devuelto
String

- La cadena concatenada.

Vase tambin
Operador suma (+)

Operadores

123

Operador condicional (?:)


expression1 ? expression2 : expression3

Indica a Flash que evale expression1 y si el valor de expression1 es true, el operador devuelve el valor de expression2; en caso contrario devuelve el valor de expression3. Operandos
expression1 : Object

- expression1 - Expresin que da como resultado un valor booleano; normalmente una expresin de comparacin, como x < 5. - Valores de cualquier tipo. - Valores de cualquier tipo.

expression2 : Object expression3 : Object

Valor devuelto
Object

- El valor de expression2 o expression3.

Ejemplo La sentencia siguiente asigna el valor de la x a la variable z porque expression1 da como resultado true:
var x:Number = 5; var y:Number = 10; var z = (x < 6) ? x: y; trace (z); // devuelve 5

El ejemplo siguiente muestra una sentencia condicional escrita en forma abreviada:


var timecode:String = (new Date().getHours() < 11) ? "AM" : "PM"; trace(timecode);

La misma sentencia condicional tambin puede escribirse en forma no abreviada, como se muestra en el ejemplo siguiente:
if (new Date().getHours() < 11) { var timecode:String = "AM"; } else { var timecode:String = "PM"; } trace(timecode);

124

Elementos del lenguaje ActionScript

Operador decremento (--)


--expresin expression--

Operador unario de decremento previo y decremento posterior que resta 1 de expression. La expression puede ser una variable, un elemento de una matriz o una propiedad de un objeto. La forma de decremento previo del operador (--expression) resta 1 de expression y devuelve el resultado. La forma de decremento posterior del operador (expression--) resta 1 de expression y devuelve el valor inicial de expression (el valor antes de la resta). Operandos
expression : Number

- Nmero o variable que da como resultado un nmero.

Valor devuelto
Number

- El resultado del valor decrementado.

Ejemplo La forma de decremento previo del operador decrementa x hasta 2 (x - 1 = 2) y devuelve el resultado como y:
var x:Number = 3; var y:Number = --x; //y es igual a 2

La forma de decremento posterior del operador decrementa x hasta 2 (x - 1 = 2) y devuelve el valor original de x como el resultado de y:
var x:Number = 3; var y:Number = x--; //y es igual a 3

El ejemplo siguiente reproduce indefinidamente de 10 a 1, y cada repeticin del bucle decrementa la variable de contador i en 1.
for (var i = 10; i>0; i--) { trace(i); }

Operador divisin (/)


expression1 / expression2

Divide expression1 por expression2. El resultado de la operacin de divisin es un nmero de coma flotante de doble precisin. Operandos
expression : Number

- Nmero o variable que da como resultado un nmero.

Operadores

125

Valor devuelto
Number

- El resultado de coma flotante de la operacin.

Ejemplo La sentencia siguiente divide el ancho y el alto actuales del escenario y, a continuacin, muestra el resultado en el panel Salida.
trace(Stage.width/2); trace(Stage.height/2);

Con un ancho y un alto de escenario predeterminados de 550 x 400, el resultado es 275 y 150. Vase tambin
Operador mdulo (%)

Operador asignacin de divisin (/=)


expression1 /= expression2

Asigna a expression1 el valor de expression1 / expression2. Por ejemplo, las dos sentencias siguientes son equivalentes:
x /= y; and x = x / y;

Operandos
expression1 : Number expression2 : Number

- Nmero o variable que da como resultado un nmero. - Nmero o variable que da como resultado un nmero.

Valor devuelto
Number

- Un nmero.

Ejemplo El cdigo siguiente ilustra el uso del operador asignacin de divisin (/=)) con variables y nmeros:
var x:Number = 10; var y:Number = 2; x /= y; trace(x); // salida: 5

Vase tambin
Operador divisin (/)

126

Elementos del lenguaje ActionScript

Operador punto (.)


object.property_or_method instancename.variable instancename.childinstance instancename.childinstance.variable

Se utiliza para navegar por las jerarquas de clips de pelcula y acceder a variables, propiedades o clips de pelcula anidados (secundarios). El operador de punto se utiliza tambin para probar o establecer las propiedades de un objeto o clase de nivel superior, para ejecutar un mtodo de un objeto o clase de nivel superior o para crear una estructura de datos. Operandos
object : Object - Una instancia de una clase. El objeto puede ser una instancia de cualquiera de las clases de ActionScript incorporadas o una clase personalizada. Este parmetro se ubica siempre a la izquierda del operador de punto (.).

- Nombre de una propiedad o mtodo asociado con un objeto. Todos los mtodos y propiedades vlidos para las clases incorporadas se enumeran en las tablas de resumen de mtodo y propiedades de dicha clase. Este parmetro se ubica siempre a la derecha del operador de punto (.).
property_or_method instancename : MovieClip - El nombre de instancia de un clip de pelcula. variable - El nombre de instancia a la izquierda del operador de punto (.) tambin puede representar una variable en la lnea de tiempo del clip de pelcula. childinstance : MovieClip - Nombre de instancia de un clip de pelcula que es un elemento secundario o anidado de otro clip de pelcula.

Valor devuelto
Object

- El mtodo, propiedad o clip de pelcula que aparece a la derecha del punto.

Ejemplo El ejemplo siguiente identifica el valor actual de la variable hairColor en el clip de pelcula person_mc:
person_mc.hairColor

El entorno de edicin de Flash 4 no admita la sintaxis con punto, pero los archivos de Flash MX 2004 publicados para Player 4 pueden utilizar el operador de punto. El ejemplo anterior equivale a la siguiente sintaxis de Flash 4 (desfasada):
/person_mc:hairColor

Operadores

127

El ejemplo siguiente crea un clip de pelcula nuevo en el mbito _root. A continuacin se crea un campo de texto dentro del clip de pelcula llamado container_mc. La propiedad autoSize del campo de texto se establece como true y a continuacin se rellena con la fecha actual.
this.createEmptyMovieClip("container_mc", this.getNextHighestDepth()); this.container_mc.createTextField("date_txt", this.getNextHighestDepth(), 0, 0, 100, 22); this.container_mc.date_txt.autoSize = true; this.container_mc.date_txt.text = new Date();

El operador de punto (.) se utiliza para referirse a instancia dentro del archivo SWF y cuando es necesario establecer propiedades y valores para esas instancias.

Operador igualdad (==)


expression1 == expression2

Comprueba la igualdad de dos expresiones. El resultado es true si las expresiones son iguales. La definicin de igual depende del tipo de datos del parmetro:

Los valores numricos y booleanos se comparan por su valor y se consideran iguales si tienen el mismo valor. Las expresiones de cadena son iguales si tienen el mismo nmero de caracteres y stos son idnticos. Las variables que representan objetos, matrices y funciones se comparan por su referencia. Dos de estas variables son iguales si hacen referencia al mismo objeto, matriz o funcin. Dos matrices independientes nunca se consideran iguales, aunque tengan el mismo nmero de elementos.

Si se comparan por su valor y expression1 y expression2 tienen tipos de datos distintos, ActionScript intentar convertir el tipo de datos de expression2 para que coincida con el de expression1. Operandos
expression1 : Object

- Un nmero, cadena, valor booleano, variable, objeto, matriz o - Un nmero, cadena, valor booleano, variable, objeto, matriz o

funcin.
expression2 : Object

funcin. Valor devuelto


Boolean

- El resultado booleano de la comparacin.

128

Elementos del lenguaje ActionScript

Ejemplo El ejemplo siguiente utiliza el operador de igualdad (==)) con una sentencia if:
var a:String = "David", b:String = "David"; if (a == b) { trace("David is David"); }

Los ejemplos siguientes muestran los resultados de operaciones que comparan tipos mixtos:
var x:Number = 5; var y:String = "5"; trace(x == y); // salida: true var x:String = "5"; var y:String = "66"; trace(x == y); // salida: false var x:String = "chris"; var y:String = "steve"; trace(x == y); // salida: false

Los ejemplos siguientes muestran comparacin por referencia. El primer ejemplo compara dos matrices con una longitud y elementos idnticos. El operador de igualdad devolver false para estas dos matrices. Si bien las matrices parecen iguales, la comparacin por referencia requiere que ambas hagan referencia a la misma matriz. El segundo ejemplo crea la variable thirdArray, que seala a la misma matriz que la variable firstArray. El operador de igualdad devolver true para estas dos matrices porque las dos variables hacen referencia a la misma matriz.
var firstArray:Array = new Array("one", "two", "three"); var secondArray:Array = new Array("one", "two", "three"); trace(firstArray == secondArray); // devolver false // Las matrices slo se consideran iguales // si las variables hacen referencia a la misma matriz. var thirdArray:Array = firstArray; trace(firstArray == thirdArray); // devolver true

Vase tambin
Operador NOT lgico (!), Operador desigualdad (!=), Operador desigualdad estricta (!==), Operador AND lgico (&&), Operador OR lgico (||), Operador igualdad estricta (===)

Operadores

129

Operador igualdad (eq) (cadenas)


expression1 eq expression2

Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse == (equality). Compara la igualdad de dos expresiones y devuelve un valor de true si la representacin de cadena de expression1 es igual a la representacin de cadena expression2, y false en caso contrario. Operandos
expression1 : Object expression2 : Object

- Nmeros, cadenas o variables. - Nmeros, cadenas o variables.

Valor devuelto
Boolean

- El resultado de la comparacin.

Vase tambin
Operador igualdad (==)

Operador mayor que (>)


expression1 > expression2

Compara dos expresiones y determina si expression1 es mayor que expression2; si lo es, el operador devuelve true. Si expression1 es menor o igual que expression2, el operador devuelve false. Las expresiones de cadena se evalan por orden alfabtico; todas las letras maysculas preceden a las minsculas. Operandos
expression1 : Object expression2 : Object

- Un nmero o cadena. - Un nmero o cadena.

Valor devuelto
Boolean

- El resultado booleano de la comparacin.

130

Elementos del lenguaje ActionScript

Ejemplo En el ejemplo siguiente, el operador de mayor que (>) se utiliza para determinar si el valor del campo de texto score_txt es mayor que 90:
if (score_txt.text>90) { trace("Congratulations, you win!"); } else { trace("sorry, try again"); }

Operador mayor que (gt) (cadenas)


expression1 gt expression2

Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse > (mayor que). Compara la representacin de cadena de expression1 con la representacin de cadena de expression2 y devuelve true si expression1 es mayor que expression2; en caso contrario devuelve false. Operandos
expression1 : Object expression2 : Object

- Nmeros, cadenas o variables. - Nmeros, cadenas o variables.

Valor devuelto
Boolean

- El resultado booleano de la comparacin.

Vase tambin
Operador mayor que (>)

Operador mayor o igual que (>=)


expression1 >= expression2

Compara dos expresiones y determina si expression1 es mayor o igual que expression2 (true) o expression1 es menor que expression2 (false). Operandos
expression1 : Object expression2 : Object

- Una cadena, un entero o un nmero de coma flotante. - Una cadena, un entero o un nmero de coma flotante.

Operadores

131

Valor devuelto
Boolean

- El resultado booleano de la comparacin.

Ejemplo En el ejemplo siguiente, el operador de mayor o igual que (>=) se emplea para determinar si la hora actual es mayor o igual que 12:
if (new Date().getHours() >= 12) { trace("good afternoon"); } else { trace("good morning"); }

Operador mayor o igual que (ge) (cadenas)


expression1 ge expression2

Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse >= (mayor o igual que). Compara la representacin de cadena de expression1 con la representacin de cadena de expression2 y devuelve true si expression1 es mayor o igual que expression2, false. Operandos
expression1 : Object expression2 : Object

- Nmeros, cadenas o variables. - Nmeros, cadenas o variables.

Valor devuelto
Boolean

- El resultado de la comparacin.

Vase tambin
Operador mayor o igual que (>=)

132

Elementos del lenguaje ActionScript

Operador incremento (++)


++expresin expression++

Operador unario de incremento previo e incremento posterior que aade 1 a expression. La expression puede ser una variable, un elemento de una matriz o una propiedad de un objeto. La forma de incremento previo del operador (++expression) suma 1 de expression y devuelve el resultado. La forma de incremento posterior del operador (expression++) suma 1 de expression y devuelve el valor inicial expression (el valor antes de la suma).
The pre-increment form of the operator increments x to 2 (x + 1 = 2) and returns the result as y: var x:Number = var y:Number = trace("x:"+x); trace("y:"+y); 1; ++x; //rastrea x:2 //rastrea y:2

La forma de incremento posterior del operador aumenta x hasta 2 (x + 1 = 2) y devuelve el valor original de x como el resultado de y:
var x:Number = var y:Number = trace("x:"+x); trace("y:"+y); 1; x++; //rastrea x:2 //rastrea y:1

Operandos
expression : Number

- Nmero o variable que da como resultado un nmero.

Valor devuelto
Number

- El resultado del incremento.

Ejemplo El ejemplo siguiente utiliza ++ como operador de incremento posterior para hacer que un bucle while se ejecute cinco veces:
var i:Number = 0; while (i++ < 5) { trace("this is execution " + i); } /* salida: this is execution 1 this is execution 2 this is execution 3 this is execution 4 this is execution 5 */

Operadores

133

El ejemplo siguiente utiliza ++ como operador de incremento previo:


var a:Array = new Array(); var i:Number = 0; while (i<10) { a.push(++i); } trace(a.toString()); //rastrea: 1,2,3,4,5,6,7,8,9,10

Este ejemplo tambin utiliza ++ como operador de incremento previo.


var a:Array = []; for (var i = 1; i <= 10; ++i) { a.push(i); } trace(a.toString()); //rastrea: 1,2,3,4,5,6,7,8,9,10

Este script muestra el siguiente resultado en el panel Salida: 1,2,3,4,5,6,7,8,9,10 El ejemplo siguiente utiliza ++ como operador de incremento posterior en un bucle while:
// utiliza un bucle while var a:Array = new Array(); var i:Number = 0; while (i<10) { a.push(i++); } trace(a.toString()); //rastrea 0,1,2,3,4,5,6,7,8,9

El ejemplo siguiente utiliza ++ como operador de incremento posterior en un bucle for:


// utiliza un bucle for var a:Array = new Array(); for (var i = 0; i<10; i++) { a.push(i); } trace(a.toString()); //rastrea 0,1,2,3,4,5,6,7,8,9

Este script muestra el siguiente resultado en el panel Salida:


0,1,2,3,4,5,6,7,8,9

Operador desigualdad (!=)


expression1 != expression2

Prueba el contrario exacto del operador de igualdad (==). Si expression1 es igual que expression2, el resultado es false. Como ocurre con el operador de igualdad (==), la definicin de igual depende de los tipos de datos que se comparan, tal y como se muestra en la siguiente lista:

Los nmeros, cadenas y valores booleanos se comparan por su valor. Los objetos, matrices y funciones se comparan por su referencia. Una variable se compara por su valor o referencia, en funcin de su tipo.

134

Elementos del lenguaje ActionScript

La comparacin por su valor significa que dos expresiones tienen el mismo valor. Por ejemplo, la expresin (2 + 3) es igual que la expresin (1 + 4) si se comparan sus valores. La comparacin por su referencia significa que dos expresiones son nicamente iguales si ambas hacen referencia al mismo objeto, matriz o funcin. No se comparan los valores dentro del objeto, matriz o funcin. Si se comparan por su valor y expression1 y expression2 tienen tipos de datos distintos, ActionScript intentar convertir el tipo de datos de expression2 para que coincida con el de expression1. Operandos
expression1 : Object

- Un nmero, cadena, valor booleano, variable, objeto, matriz o - Un nmero, cadena, valor booleano, variable, objeto, matriz o

funcin.
expression2 : Object

funcin. Valor devuelto


Boolean

- El resultado booleano de la comparacin.

Ejemplo El ejemplo siguiente ilustra el resultado del operador de desigualdad (!=):


trace(5 != 8); // devuelve true trace(5 != 5) //devuelve false

El ejemplo siguiente ilustra el uso del operador de desigualdad (!=) en una sentencia if:
var a:String = "David"; var b:String = "Fool"; if (a != b) { trace("David is not a fool"); }

El ejemplo siguiente ilustra la comparacin por referencia con dos funciones:


var a:Function = function() { trace("foo"); }; var b:Function = function() { trace("foo"); }; a(); // foo b(); // foo trace(a != b); // true a = b; a(); // foo b(); // foo trace(a != b); // false // rastrea el resultado de la sentencia: foo foo true foo foo false

Operadores

135

El ejemplo siguiente ilustra la comparacin por referencia con dos matrices:


var a:Array = [ 1, 2, 3 ]; var b:Array = [ 1, 2, 3 ]; trace(a); // 1, 2, 3 trace(b); // 1, 2, 3 trace(a!=b); // true a = b; trace(a); // 1, 2, 3 trace(b); // 1, 2, 3 trace(a != b); // false // rastrea el resultado de la sentencia: 1,2,3 1,2,3 true 1,2,3 1,2,3 false

Vase tambin
Operador NOT lgico (!), Operador desigualdad estricta (!==), Operador AND lgico (&&), Operador OR lgico (||), Operador igualdad (==), Operador igualdad estricta (===)

Operador desigualdad (<>)


expression1 <> expression2

Desfasado desde Flash Player 5. Este operador est desfasado. Adobe recomienda que utilice el operador != (inequality). Prueba el contrario exacto del operador de igualdad (==). Si expression1 es igual que expression2, el resultado es false. Como ocurre con el operador de igualdad (==), la definicin de igual depende de los tipos de datos que se comparan:

Los nmeros, cadenas y valores booleanos se comparan por su valor. Los objetos, matrices y funciones se comparan por su referencia. Las variables se comparan por su valor o por referencia, en funcin de su tipo.

Operandos
expression1 : Object

- Un nmero, cadena, valor booleano, variable, objeto, matriz o - Un nmero, cadena, valor booleano, variable, objeto, matriz o

funcin.
expression2 : Object

funcin. Valor devuelto


Boolean

- El resultado booleano de la comparacin.

Vase tambin
Operador desigualdad (!=)

136

Elementos del lenguaje ActionScript

Operador instanceof
object instanceof classConstructor

Comprueba si object es una instancia de classConstructor o una subclase de classConstructor. El operador instanceof no convierte tipos de datos simples en objetos envolventes. Por ejemplo, el cdigo siguiente devuelve true:
new String("Hello") instanceof String;

Mientras que el cdigo siguiente devuelve false:


"Hello" instanceof String;

Operandos
object : Object

- Un objeto ActionScript.

classConstructor : Function

- Una referencia a una funcin constructora de ActionScript, como String o Date.

Valor devuelto
Boolean - Si object es una instancia o una subclase de classConstructor, instanceof devuelve true; de lo contrario devuelve false. Adems, _global instanceof Object devuelve false.

Vase tambin
Operador typeof

Operador menor que (<)


expression1 < expression2

Compara dos expresiones y determina si expression1 es menor que expression2; si lo es, el operador devuelve true. Si expression1 es mayor o igual que expression2, el operador devuelve false. Las expresiones de cadena se evalan por orden alfabtico; todas las letras maysculas preceden a las minsculas. Operandos
expression1 : Number expression2 : Number

- Un nmero o cadena. - Un nmero o cadena.

Operadores

137

Valor devuelto
Boolean

- El resultado booleano de la comparacin.

Ejemplo Los ejemplos siguientes muestran resultados de true y false para comparaciones numricas y de cadena:
trace(3 < 10); // true trace(10 < 3); // false trace("Allen" < "Jack"); // true trace("Jack" < "Allen"); //false trace("11" < "3"); // true trace("11" < 3); // false (comparacin numrica) trace("C" < "abc"); // true trace("A" < "a"); // true

Operador menor que (lt) (cadenas)


expression1 lt expression2

Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse < (menor que). Compara expression1 con expression2 y devuelve truesi expression1 es menor que expression2; de lo contrario devuelve false. Operandos
expression1 : Object expression2 : Object

- Nmeros, cadenas o variables. - Nmeros, cadenas o variables.

Valor devuelto
Boolean

- El resultado de la comparacin.

Vase tambin
Operador menor que (<)

138

Elementos del lenguaje ActionScript

Operador menor o igual que (<=)


expression1 <= expression2

Compara dos expresiones y determina si expression1 es menor o igual que expression2; si lo es, el operador devuelve true. Si expression1 es mayor que expression2, el operador devuelve false. Las expresiones de cadena se evalan por orden alfabtico; todas las letras maysculas preceden a las minsculas. Operandos
expression1 : Object expression2 : Object

- Un nmero o cadena. - Un nmero o cadena.

Valor devuelto
Boolean

- El resultado booleano de la comparacin.

Ejemplo Los ejemplos siguientes muestran resultados de true y false para comparaciones numricas y de cadena:
trace(5 <= 10); // true trace(2 <= 2); // true trace(10 <= 3); // false trace("Allen" <= "Jack"); // true trace("Jack" <= "Allen"); // false trace("11" <= "3"); // true trace("11" <= 3); // false (comparacin numrica) trace("C" <= "abc"); // true trace("A" <= a); // true

Operador menor o igual que (le) (cadenas)


expression1 le expression2

Desfasadodesde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse <= (menor o igual que). Compara expression1 con expression2 y devuelve un valor de true siexpression1 es menor o igual que expression2; de lo contrario devuelve false. Operandos
expression1 : Object expression2 : Object

- Nmeros, cadenas o variables. - Nmeros, cadenas o variables.

Operadores

139

Valor devuelto
Boolean

- El resultado de la comparacin.

Vase tambin
Operador menor o igual que (<=)

Operador delimitador de comentario de lnea (//)


// comment

Indica el principio de un comentario de script. Los caracteres que aparecen entre el delimitador de comentario (//)) y el carcter de final de lnea se interpretan como un comentario y el interpretador de ActionScript los omite. Operandos
comment

- Cualquier carcter.

Ejemplo El script siguiente utiliza delimitadores de comentario para identificar la primera, tercera, quinta y sptima lneas como comentarios:
// registra la posicin X del clip de pelcula ball var ballX:Number = ball_mc._x; // registra la posicin XY del clip de pelcula ball var ballY:Number = ball_mc._y; // registra la posicin X del clip de pelcula bat var batX:Number = bat_mc._x; // registra la posicin XY del clip de pelcula ball var batY:Number = bat_mc._y;

Vase tambin
Operador delimitador de comentario en bloque (/*)

140

Elementos del lenguaje ActionScript

Operador AND lgico (&&)


expression1 && expression2

Ejecuta una operacin booleana en los valores una de las expresiones o en ambas. Evala expression1 (la expresin en la parte izquierda del operador) y devuelve false si la expresin da como resultado false. Si expression1 da como resultado true, se evala expression2 (la expresin en la parte derecha del operador. Si expression2 da como resultado true, el resultado final es true; de lo contrario es false. La expresin evala true&&true true true&&false false false&&false false false&&true false Operandos
expression1 : Number

- Un valor booleano o una expresin que se convierta en un valor - Un valor booleano o una expresin que se convierta en un valor

booleano.
expression2 : Number

booleano. Valor devuelto


Boolean

- Un resultado booleano de la operacin lgica.

Ejemplo El ejemplo siguiente utiliza el operador AND lgico (&&) para realizar una prueba para determinar si un jugador ha ganado la partida. La variable turns y la variable score se actualizan cuando un jugador juega o gana puntos durante el juego. El script muestra "You Win the Game!" en el panel Salida cuando la puntuacin del jugador llega a 75 o ms en tres jugadas o menos.
var turns:Number = 2; var score:Number = 77; if ((turns <= 3) && (score >= 75)) { trace("You Win the Game!"); } else { trace("Try Again!"); } // salida: You Win the Game!

Vase tambin
Operador NOT lgico (!), Operador desigualdad (!=), Operador desigualdad estricta (!==), Operador OR lgico (||), Operador igualdad (==), Operador igualdad estricta (===)

Operadores

141

Operador AND lgico (and)


condition1 and condition2

Desfasado desde Flash Player 5. Adobe recomienda el uso del operador lgico AND (&&)). Realiza una operacin de AND lgica (&&)en Flash Player 4. Si las dos expresiones dan como resultado true, toda la expresin ser true. Operandos
condition1 : Boolean

- condition1,condition2Condiciones o expresiones que dan como resultado true o false. - condition1,condition2Condiciones o expresiones que dan como resultado true o false.

condition2 : Boolean

Valor devuelto
Boolean

- Un resultado booleano de la operacin lgica.

Vase tambin
Operador AND lgico (&&)

Operador NOT lgico (!)


! expression

Invierte el valor booleano de una variable o expresin. Si expression es una variable con el valor absoluto o convertido true, el valor de !expression es false. Si la expresin x && y da como resultado false, la expresin !(x && y) da como resultado true. Las siguientes expresiones ilustran el resultado del uso del operador NOT lgico (!):
! true

devuelve false! false devuelve true

Operandos
expression : Boolean

- Expresin o variable que da como resultado un valor booleano.

Valor devuelto
Boolean

- El resultado booleano de la operacin lgica.

142

Elementos del lenguaje ActionScript

Ejemplo En el ejemplo siguiente, la variable happy se establece como false. La condicin if da como resultado la condicin !happy y, si la condicin es true, la sentencia trace() enva una cadena al panel Salida.
var happy:Boolean = false; if (!happy) { trace("don't worry, be happy"); // rastrea don't worry, be happy }

La sentencia realiza seguimiento porque !false es igual a true. Vase tambin


Operador desigualdad (!=), Operador desigualdad estricta (!==), Operador AND lgico (&&), Operador OR lgico (||), Operador igualdad (==), Operador igualdad estricta (===)

Operador NOT lgico (not)


not expression

Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse ! (logical NOT). Ejecuta una operacin NOT (!) lgica en Flash Player 4. Operandos
expression : Object -

Una variable u otra expresin que se convierte en un valor booleano.

Valor devuelto
Boolean

- El resultado de la operacin lgica.

Vase tambin
Operador NOT lgico (!)

Operador OR lgico (||)


expression1 || expression2

Evala expression1 (la expresin en la parte izquierda del operador) y devuelve true si la expresin da como resultado true. Si expression1 da como resultado false, se evala expression2 (la expresin en la parte derecha del operador. Si expression2 da como resultado false, el resultado final es false; de lo contrario es true.

Operadores

143

Si utiliza una llamada de funcin como expression2, esa llamada no ejecutar la funcin si expression1 da como resultado true. El resultado es true si una o ambas expresiones dan como resultado true; el resultado slo ser false si ambas expresiones dan como resultado false. Puede utilizar el operador OR lgico con cualquier nmero de operandos; si alguno de los operandos da como resultado true, el resultado es true. Operandos
expression1 : Number

- Un valor booleano o una expresin que se convierta en un valor - Un valor booleano o una expresin que se convierta en un valor

booleano.
expression2 : Number

booleano. Valor devuelto


Boolean

- El resultado de la operacin lgica.

Ejemplo El ejemplo siguiente utiliza el operador lgico OR (||) en una sentencia if. La segunda expresin da como resultado true,, por lo que el resultado final es true:
var x:Number = 10; var y:Number = 250; var start:Boolean = false; if ((x > 25) || (y > 200) || (start)) { trace("the logical OR test passed"); // salida: the logical OR test passed }

El mensaje que ha pasado la prueba de OR lgico aparece porque una de las condiciones de la sentencia if es true (y>200). Si bien las otras dos expresiones dan como resultado false, siempre que una condicin d como resultado true, se ejecutar el bloque if. El ejemplo siguiente demuestra cmo el uso de una llamada de funcin como expression2 puede producir resultados imprevistos. Si la expresin de la izquierda del operador da como resultado true, ese resultado se devolver sin evaluar la expresin de la derecha (no se llamar a la funcin fx2()).
function fx1():Boolean { trace("fx1 called"); return true; } function fx2():Boolean { trace("fx2 called"); return true; }

144

Elementos del lenguaje ActionScript

if (fx1() || fx2()) { trace("IF statement entered"); } /* Se enva la siguiente informacin al panel Salida: /* Se enva la siguiente informacin al archivo de registro: fx1 llam a la sentencia IF introducida */

Vase tambin
Operador NOT lgico (!), Operador desigualdad (!=), Operador desigualdad estricta (!==), Operador AND lgico (&&), Operador igualdad (==), Operador igualdad estricta (===)

Operador OR lgico (or)


condition1 or condition2

Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse || (logical OR). Evala condition1 y condition2, y si alguna es true, toda la expresin es true. Operandos
condition1 : Boolean condition2 : Boolean

- Expresin que da como resultado true o false. - Expresin que da como resultado true o false.

Valor devuelto
Boolean

- El resultado de la operacin lgica.

Vase tambin
Operador OR lgico (||), Operador OR en modo bit (|)

Operador mdulo (%)


expression1 % expression2

Calcula el resto de expression1 dividido entre expression2. Si uno de los parmetros expression es no numrico, el operador de mdulo (%) intenta convertirlos en nmeros. expression puede ser un nmero o una cadena que se convierte en un valor numrico. El signo del resultado de la operacin de mdulo coincide con el signo del dividendo (el primer nmero). Por ejemplo, -4 % 3 y -4 % -3 dan ambos como resultado -1.

Operadores

145

Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que da como resultado un nmero. - Nmero o expresin que da como resultado un nmero.

Valor devuelto
Number

- El resultado de la operacin aritmtica.

Ejemplo El siguiente ejemplo numrico utiliza el operador de mdulo (%)):


trace(12%5); // rastrea 2 trace(4,3%2,1); // rastrea 0.0999999999999996 trace(4%4); // rastrea 0

El primer trace devuelve 2, en lugar de 12/5 o 2,4, porque el operador de mdulo (%) slo devuelve el resto. El segundo trace devuelve 0,0999999999999996 en lugar del previsto 0,1 debido a las limitaciones en la precisin de coma flotante del clculo binario. Vase tambin
Operador divisin (/), round (mtodo Math.round)

Operador asignacin de mdulo (%=)


expression1 %= expression2

Asigna a expression1 el valor de expression1 % expression2. Las dos sentencias siguientes son equivalentes:
x %= y; and x = x % y;

Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que da como resultado un nmero. - Nmero o expresin que da como resultado un nmero.

Valor devuelto
Number

- El resultado de la operacin aritmtica.

Ejemplo El ejemplo siguiente asigna el valor de 4 a la variable x:


var x:Number = 14; var y:Number = 5; trace(x %= y); // salida: 4

146

Elementos del lenguaje ActionScript

Vase tambin
Operador mdulo (%)

Operador multiplicacin (*)


expression1 * expression2

Multiplica dos expresiones numricas. Si ambas expresiones son enteros, el producto es un entero. Si una o ambas expresiones son nmeros de coma flotante, el producto es un nmero de coma flotante. Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que da como resultado un nmero. - Nmero o expresin que da como resultado un nmero.

Valor devuelto
Number

- Un entero o un nmero de coma flotante.

Ejemplo Sintaxis 1: La sentencia siguiente multiplica los enteros 2 y 3:


trace(2*3); // salida: 6

El resultado, 6, es un entero. Sintaxis 2: Esta sentencia multiplica los nmeros de coma flotante 2,0 y 3,1416:
trace(2,0*3,1416); // salida: 6.2832

El resultado, 6,2832, es un nmero de coma flotante.

Operador asignacin de multiplicacin (*=)


expression1 *= expression2

Asigna a expression1 el valor de expression1 * expression2. Por ejemplo, las dos expresiones siguientes son equivalentes:
x *= y x = x * y

Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que da como resultado un nmero. - Nmero o expresin que da como resultado un nmero.

Operadores

147

Valor devuelto
Number - El valor de expression1 * expression2 . Si una expresin no puede convertirse en un valor numrico, devuelve NaN (no es un nmero).

Ejemplo Sintaxis 1: El ejemplo siguiente asigna el valor 50 a la variable x:


var x:Number = 5; var y:Number = 10; trace(x *= y); // salida: 50

Sintaxis 2: La segunda y tercera lneas del ejemplo siguiente calculan las expresiones de la parte derecha del signo igual y asignan los resultados a x e y:
var i:Number = var x:Number = var y:Number = trace(x *= y); 5; 4 - 6; i + 2; // salida: -14

Vase tambin
Operador multiplicacin (*)

Operador new
new constructor()

Crea un objeto nuevo, inicialmente annimo, y llama a la funcin identificada por el parmetro constructor. El operador new pasa a la funcin parmetros opcionales entre parntesis, as como el objeto recin creado, al que se hace referencia utilizando la palabra clave this. A continuacin, la funcin constructor puede utilizar this para establecer las variables del objeto. Operandos
constructor : Object - Una funcin seguida de parmetros opcionales entre parntesis. La

funcin suele ser el nombre del tipo de objeto (por ejemplo, Array, Number o Object) que se va a construir. Ejemplo El ejemplo siguiente crea la funcin Book() y, a continuacin, utiliza el operador new para crear los objetos book1 y book2.
function Book(name, price){ this.name = name; this.price = price;

148

Elementos del lenguaje ActionScript

} book1 = new Book("Confederacy of Dunces", 19.95); book2 = new Book("The Floating Opera", 10.95);

El ejemplo siguiente utiliza el operador new para crear un objeto Array con 18 elementos:
golfCourse_array = new Array(18);

Vase tambin
Operador acceso a matriz ([]), Operador inicializador de objeto ({})

Operador distinto (ne) (cadenas)


expression1 ne expression2

Desfasadodesde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse != (inequality). Compara expression1 con expression2 y devuelve true si expression1 no es igual que expression2; de lo contrario devuelve false. Operandos
expression1 : Object expression2 : Object

- Nmeros, cadenas o variables. - Nmeros, cadenas o variables.

Valor devuelto
Boolean

- Devuelve true si expression1 es distinto de expression2, y false en caso contrario.

Vase tambin
Operador desigualdad (!=)

Operador inicializador de objeto ({})


object = { name1 : value1 , name2 : value2 ,... nameN : valueN } {expression1; [...expressionN]}

Crea un nuevo objeto y lo inicializa con los pares de propiedades name y value. Utilizar este operador equivale a utilizar la nueva sintaxis de new Object y llenar los pares de propiedades con el operador de asignacin. El prototipo del objeto recin creado se denomina de forma genrica el objeto Object. Este operador se utiliza adems para marcar bloques de cdigo contiguo asociado con sentencias de control de flujo (for, while, if, else, switch) y funciones.

Operadores

149

Operandos
object : Object

- El objeto que se va a crear.. name1,2,...N Los nombres de las propiedades. value1,2,...N Los valores correspondientes para cada propiedad name.

Valor devuelto
Object

Sintaxis 1: Un objeto Object. Sintaxis 2: Ninguno, excepto cuando una funcin tiene una sentencia return explcita, en cuyo caso el tipo devuelto se especifica en la implementacin de la funcin. Ejemplo La primera lnea del cdigo siguiente crea un objeto vaco utilizando el operador de inicializador de objeto ({}); la segunda lnea crea un objeto nuevo empleando una funcin constructora:
var object:Object = {}; var object:Object = new Object();

El ejemplo siguiente crea una account de objeto e inicializa las propiedades name, address, city, state, zip y balance con los valores correspondientes:
var account:Object = {name:"Macromedia, Inc.", address:"600 Townsend Street", city:"San Francisco", state:"California", zip:"94103", balance:"1000"}; for (i in account) { trace("account." + i + " = " + account[i]); }

El ejemplo siguiente muestra cmo pueden anidarse los inicializadores de objeto y matriz entre s:
var person:Object = {name:"Gina Vechio", children:["Ruby", "Chickie", "Puppa"]};

El ejemplo siguiente utiliza la informacin del ejemplo anterior y produce el mismo resultado utilizando las funciones constructoras:
var person:Object = new Object(); person.name = "Gina Vechio"; person.children = new Array(); person.children[0] = "Ruby"; person.children[1] = "Chickie"; person.children[2] = "Puppa";

El ejemplo ActionScript anterior tambin se puede escribir con el formato siguiente:


var person:Object = new Object(); person.name = "Gina Vechio"; person.children = new Array("Ruby", "Chickie", "Puppa");

150

Elementos del lenguaje ActionScript

Vase tambin
Object

Operador parntesis (())


(expression1 [, expression2]) (expression1, expression2) function (parameter1,..., parameterN)

Ejecuta una operacin de agrupacin en uno o varios parmetros, lleva a cabo una evaluacin secuencial de las expresiones o rodea uno o varios parmetros y los pasa como parmetros a una funcin fuera del parntesis. Sintaxis 1: Controla el orden de ejecucin de los operadores en la expresin. Los parntesis sustituyen el orden de precedencia normal y pueden hacer que las expresiones entre parntesis se evalen primero. Cuando se anidan los parntesis, el contenido de los parntesis ms interiores se evala antes que el contenido de los ms exteriores. Sintaxis 2: Da como resultado una serie de expresiones, separadas por comas, en una secuencia y devuelve el resultado de la expresin final. Sintaxis 3: Rodea uno o varios parmetros y los pasa como parmetros a la funcin que est fuera del parntesis. Operandos
expression1 : Object expression2 : Object function : Function

- Nmeros, cadenas, variables o texto. - Nmeros, cadenas, variables o texto.

- Funcin que se ejecutar sobre el contenido del parntesis.

parameter1...parameterN : Object - Una serie de parmetros que se ejecutar antes de que se pasen los resultados como parmetros a la funcin que est fuera del parntesis.

Ejemplo Sintaxis 1: Las sentencias siguientes muestran el uso de los parntesis para controlar el orden de ejecucin de las expresiones (el valor de cada expresin aparece en el panel Salida):
trace((2 + 3)*(4 + 5)); // muestra 45 trace((2 + 3) * (4 + 5)); // escribe 45 trace(2 + (3 * (4 + 5))); // // muestra 29 trace(2 + (3 * (4 + 5))); / / // escribe 29 trace(2+(3*4)+5); // muestra 19 trace(2 + (3 * 4) + 5); / / escribe 19

Operadores

151

Sintaxis 2: El ejemplo siguiente evala la funcin foo() y, a continuacin, la funcin bar(), y devuelve el resultado de la expresin a + b:
var a:Number = 1; var b:Number = 2; function foo() { a += b; } function bar() { b *= 10; } trace((foo(), bar(), a + b)); // devuelve 23

Sintaxis 3: El ejemplo siguiente muestra el uso de parntesis con funciones:


var today:Date = new Date(); trace(today.getFullYear()); // rastrea el ao actual function traceParameter(param):Void { trace(param); } traceParameter(2 * 2); //rastrea 4

Vase tambin
Sentencia with

Operador igualdad estricta (===)


expression1 === expression2

Comprueba la igualdad de dos expresiones; el operador de igualdad estricta (===) hace lo mismo que el operador de igualdad (==) con la diferencia de que los tipos de datos no se convierten. El resultado es true si ambas expresiones, incluidos sus tipos de datos, son iguales. La definicin de igual depende del tipo de datos del parmetro:

Los valores numricos y booleanos se comparan por su valor y se consideran iguales si tienen el mismo valor. Las expresiones de cadena son iguales si tienen el mismo nmero de caracteres y stos son idnticos. Las variables que representan objetos, matrices y funciones se comparan por su referencia. Dos de estas variables son iguales si hacen referencia al mismo objeto, matriz o funcin. Dos matrices independientes nunca se consideran iguales, aunque tengan el mismo nmero de elementos.

Operandos
expression1 : Object

- Un nmero, cadena, valor booleano, variable, objeto, matriz o - Un nmero, cadena, valor booleano, variable, objeto, matriz o

funcin.
expression2 : Object

funcin.

152

Elementos del lenguaje ActionScript

Valor devuelto
Boolean

- El resultado booleano de la comparacin.

Ejemplo Los comentarios del cdigo siguiente muestran el valor devuelto de operaciones que utilizan los operadores de igualdad y de igualdad estricta:
// Los dos devuelven true, ya que no se realiza ninguna conversin var string1:String = "5"; var string2:String = "5"; trace(string1 == string2); // true trace(string1 === string2); // true // La introduccin automtica de datos en este ejemplo convierte 5 en "5" var string1:String = "5"; var num:Number = 5; trace(string1 == num); // true trace(string1 === num); // false // La introduccin automtica de datos en este ejemplo convierte true en "1" var string1:String = "1"; var bool1:Boolean = true; trace(string1 == bool1); // true trace(string1 === bool1); // false // La introduccin automtica de datos en este ejemplo convierte false en "0" var string1:String = "0"; var bool2:Boolean = false; trace(string1 == bool2); // true trace(string1 === bool2); // false

Los ejemplos siguientes muestran cmo el operador de igualdad estricta trata las variables que son referencias de forma distinta a las variables que contienen valores literales. Esta es una razn para utilizar en todo momento literales de cadena y evitar el uso del operador new con la clase String.
// Crea una variable string con un valor literal var str:String = "asdf"; // Crea una variable que sea una referencia var stringRef:String = new String("asdf"); // El operador de igualdad no distingue entre literales, variables // ni referencias trace(stringRef == "asdf"); // true trace(stringRef == str); // true trace("asdf" == str); // true // El operador de igualdad estricta distingue entre las variables que son referencias // y los literales y variables trace(stringRef === "asdf"); // false trace(stringRef === str); // false

Operadores

153

Vase tambin
Operador NOT lgico (!), Operador desigualdad (!=), Operador desigualdad estricta (!==), Operador AND lgico (&&), Operador OR lgico (||), Operador igualdad (==)

Operador desigualdad estricta (!==)


expression1 !== expression2

Prueba el contrario exacto del operador de igualdad estricta (===). El operador de desigualdad estricta realiza lo mismo que el operador de desigualdad, con la diferencia de que no se convierten los tipos de datos. Si expression1 es igual que expression2 y sus tipos de datos son iguales, el resultado es false. Como ocurre con el operador de igualdad estricta (===), la definicin de igual depende de los tipos de datos que se comparan, tal y como se muestra en la siguiente lista:

Los nmeros, cadenas y valores booleanos se comparan por su valor. Los objetos, matrices y funciones se comparan por su referencia. Una variable se compara por su valor o referencia, en funcin de su tipo.

Operandos
expression1 : Object

- Un nmero, cadena, valor booleano, variable, objeto, matriz o - Un nmero, cadena, valor booleano, variable, objeto, matriz o

funcin.
expression2 : Object

funcin. Valor devuelto


Boolean

- El resultado booleano de la comparacin.

Ejemplo Los comentarios del cdigo siguiente muestran el valor devuelto de operaciones que utilizan los operadores de igualdad (==), de igualdad estricta (===) y de desigualdad estricta (!==):
var s1:String = "5"; var s2:String = "5"; var s3:String = "Hello"; var n:Number = 5; var b:Boolean = true; trace(s1 == s2); // true trace(s1 == s3); // false trace(s1 == n); // true trace(s1 == b); // false

154

Elementos del lenguaje ActionScript

trace(s1 trace(s1 trace(s1 trace(s1 trace(s1 trace(s1 trace(s1 trace(s1

=== === === === !== !== !== !==

s2); // true s3); // false n); // false b); // false s2); // false s3); // true n); // true b); // true

Vase tambin
Operador NOT lgico (!), Operador desigualdad (!=), Operador AND lgico (&&), Operador OR lgico (||), Operador igualdad (==), Operador igualdad estricta (===)

Operador delimitador de cadena (")


"text"

Si se utilizan antes y despus de caracteres, las comillas (") indican que los caracteres tienen un valor literal y se consideran una cadena y no una variable ni un valor numrico ni otro elemento de ActionScript. Operandos
text : String

- Una secuencia de cero o ms caracteres.

Ejemplo El ejemplo siguiente utiliza comillas (") para indicar que el valor de la variable yourGuess es la cadena literal "Prince Edward Island" y no el nombre de una variable. El valor de province es una variable, no un literal; para determinar el valor de province es necesario localizar el valor de yourGuess.
var yourGuess:String = "Prince Edward Island"; submit_btn.onRelease = function() { trace(yourGuess); }; // muestra Prince Edward Island en el panel Salida // escribe Prince Edward Island en el archivo de registro

Vase tambin
String, Funcin String

Operadores

155

Operador resta (-)


(Negation) -expression (Subtraction) expression1 - expression2

Se emplea para negar o restar. Sintaxis 1: Si se utiliza para negar, invierte el signo de la expression numrica. Sintaxis 2: Si se utiliza para restar, ejecuta una resta aritmtica en dos expresiones numricas, restando expression2 a expression1. Si ambas expresiones son enteros, la diferencia es un entero. Si una o ambas expresiones son nmeros de coma flotante, la diferencia es un nmero de coma flotante. Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que da como resultado un nmero. - Nmero o expresin que da como resultado un nmero.

Valor devuelto
Number

- Un entero o un nmero de coma flotante.

Ejemplo Sintaxis 1: La sentencia siguiente invierte el signo de la expresin 2 + 3:


trace(-(2+3)); // salida: -5

Sintaxis 2: La sentencia siguiente resta el entero 2 del entero 5:


trace(5-2); // salida: 3

El resultado, 3, es un entero. Sintaxis 3: La sentencia siguiente resta el nmero de coma flotante 1,5 del nmero de coma flotante 3,25:
trace(3,25-1,5); // salida: 1.75

El resultado, 1,75, es un nmero de coma flotante.

Operador asignacin de resta (-=)


expression1 -= expression2

Asigna a expression1 el valor de expression1- expression2. Por ejemplo, las dos sentencias siguientes son equivalentes:
x -= y ; x = x - y;

Las expresiones de cadenas deben convertirse a nmeros; en caso contrario, el resultado es NaN (que no es nmero).

156

Elementos del lenguaje ActionScript

Operandos
expression1 : Number expression2 : Number

- Nmero o expresin que da como resultado un nmero. - Nmero o expresin que da como resultado un nmero.

Valor devuelto
Number

- El resultado de la operacin aritmtica.

Ejemplo El ejemplo siguiente utiliza el operador de asignacin de resta (-=)) para restar 10 de 5 y asigna el resultado a la variable x:
var x:Number = 5; var y:Number = 10; x -= y; trace(x); // salida: -5

El ejemplo siguiente muestra cmo se convierten las cadenas en nmeros:


var x:String = "5"; var y:String = "10"; x -= y; trace(x); // salida: -5

Vase tambin
Operador resta (-)

Operador type (:)


[ modifiers ] var variableName : type function functionName () : type { ... } function functionName (parameter1:type , ... , parameterN:type) [:type ]{ ... }

Se utiliza en la tcnica "strict data typing"; este operador especifica el tipo de variable, el tipo de devolucin de funcin o el tipo de parmetro de funcin. Cuando se utiliza en una asignacin o declaracin de variable, este operador especifica el tipo de la variable; cuando se utiliza en una declaracin o definicin de funcin, este operador especifica el tipo de devolucin de la funcin; cuando se utiliza con un parmetro de funcin en una definicin de funcin, este operador especifica el tipo de variable que se espera para dicho parmetro. Los tipos son una funcin slo de compilacin. Todos los tipos se comprueban durante la compilacin y se generan errores cuando hay una discordancia. Pueden producirse discordancias durante las operaciones de asignacin, llamadas a funciones y eliminacin de referencias a miembros de clase con el operador de punto (.). Para evitar errores de discordancia de tipo, utilice "strict data typing".

Operadores

157

Los tipos que pueden utilizarse son todos los tipos de objetos nativos, clases e interfaces definidas por el usuario, Function y Void. Los tipos nativos reconocidos son Boolean, Number y String. Tambin se admiten como tipos nativos todas las clases incorporadas. Operandos
variableName : Object - Identificador de una variable. type - Tipo de datos nativo, nombre de clase definido o nombre de interfaz. functionName - Un identificador de una funcin. parameter - Un identificador de un parmetro de funcin.

Ejemplo Sintaxis 1: El ejemplo siguiente declara una variable pblica llamada userName cuyo tipo es String y le asigna una cadena vaca:
var userName:String = "";

Sintaxis 2: El ejemplo siguiente muestra cmo especificar el tipo de parmetro de una funcin definiendo una funcin llamada randomInt() que toma un parmetro llamado integer de tipo Number:
function randomInt(integer:Number):Number { return Math.round(Math.random()*integer); } trace(randomInt(8));

Sintaxis 3: El ejemplo siguiente define una funcin llamada squareRoot() que toma un parmetro llamado val de tipo Number y devuelve la raz cuadrada de val, tambin de tipo Number:
function squareRoot(val:Number):Number { return Math.sqrt(val); } trace(squareRoot(121));

Vase tambin
Sentencia var, Sentencia function

158

Elementos del lenguaje ActionScript

Operador typeof
typeof(expression)

El operador typeof evala expression y devuelve una cadena que especifica si la expresin es String, MovieClip, Object, Function, Number, o valor Boolean. Operandos
expression : Object

- Una cadena, clip de pelcula, botn, objeto o funcin.

Valor devuelto
String - Una representacin de String del tipo de expression. La tabla siguiente muestra los resultados del operador typeof en cada tipo de expression.

Tipo de expresin
Cadena Clip de pelcula Button Campo de texto Number Boolean Object Function

Resultado
string movieclip object object number boolean object function

Vase tambin
Operador instanceof

Operador void
void expression

El operador void evala una expresin y, a continuacin, descarta su valor, devolviendo undefined. El operador void se emplea a menudo en comparaciones utilizando el operador == para comprobar valores no definidos. Operandos
expression : Object

- Expresin que se va a evaluar.

Operadores

159

Sentencias
Las sentencias son elementos del lenguaje que realizan o especifican una accin. Por ejemplo, la sentencia return devuelve un resultado como valor de la funcin en la que se ejecuta. La sentencia if evala una condicin para determinar la siguiente accin que debe realizarse. La sentencia switch crea una estructura ramificada para sentencias de ActionScript. Resumen de sentencias
Sentencia
break

Descripcin
Aparece en un bucle (for, for..in, do..while owhile) o en un bloque de sentencias asociadas con un determinado caso de una sentencia switch. Define una condicin de la sentencia switch. Define una clase personalizada que permite crear instancias de objetos que comparten mtodos y propiedades definidas por el usuario. Salta por encima de todas las sentencias restantes en el bucle ms interior e inicia la siguiente repeticin del bucle como si se hubiera pasado el control hasta el final del bucle de la forma habitual. Define el caso predeterminado de una sentencia switch. Destruye la referencia de objeto especificada por el parmetro reference y devuelve true si se elimina la referencia correctamente; de lo contrario, devuelve false. Similar al bucle while, con la diferencia de que las sentencias se ejecutan una vez antes de la evaluacin inicial de la condicin. Especifica que el objeto basado en la clase especificada puede aadir propiedades dinmicas y acceder a ellas en tiempo de ejecucin. Especifica las sentencias que se ejecutarn si la condicin en la sentencia if devuelve false. Evala una condicin y especifica las sentencias que se ejecutarn si la condicin en la sentencia if inicial devuelve false. Define una clase que es una subclase de otra clase; la ltima es la superclase. Evala la expresin init (inicializar) una vez y, a continuacin, inicia una secuencia de reproduccin indefinida. Repite las propiedades de un objeto o los elementos de una matriz y ejecuta statement para cada propiedad o elemento. Consta de un conjunto de sentencias que se definen para ejecutar una determinada tarea.

case class

continue

default delete

do..while

dynamic

else

else if

extends

for

for..in

function

160

Elementos del lenguaje ActionScript

Sentencia
get

Descripcin
Permite la obtencin implcita de propiedades asociadas con objetos basados en las clases definidas en archivos de clase externos. Evala una condicin para determinar la siguiente accin en un archivo SWF. Especifica que una clase debe definir todos los mtodos declarados en la interfaz o interfaces que se estn implementando. Permite acceder a las clases sin especificar sus nombres completos. Define una interfaz. Permite verificar en tiempo de compilacin los tipos de clases definidas anteriormente. Especifica que una variable o funcin est nicamente disponible para la clase que la declara o define o para las subclases de dicha clase. Especifica que una variable o funcin est disponible para cualquier origen de llamada. Especifica el valor devuelto por una funcin. Permite el establecimiento implcito de propiedades asociadas con objetos basados en las clases definidas en archivos de clase externos. Asigna un valor a una variable. Especifica que una variable o funcin se cree nicamente una sola vez por cada clase, en lugar de crearse en cada objeto basado en dicha clase. Invoca la versin de superclase de un mtodo o constructor. Crea una estructura ramificada para sentencias de ActionScript. Genera o emite un error que puede controlarse o capturarse mediante un bloque de cdigo catch{}. continuacin, responda al error.

if

implements

import interface intrinsic

private

public

return set

set variable static

super switch throw

try..catch..finally Incluya un bloque de cdigo en el que puede producirse un error y, a

var while

Se utiliza para declarar variables locales o de la lnea de tiempo. Evala una condicin y, si sta da como resultado true, ejecuta una sentencia o serie de sentencias antes de volver a ejecutar el bucle para evaluar la condicin nuevamente. Permite especificar un objeto (como un clip de pelcula) con el parmetro object y evaluar expresiones y acciones en dicho objeto con el parmetro statement(s).

with

Sentencias

161

Sentencia break
break

Aparece en un bucle (for, for..in, do..while owhile) o en un bloque de sentencias asociadas con un determinado caso de una sentencia switch. Cuando se utiliza en un bucle, la sentencia break ordena a Flash que omita el resto del cuerpo del bucle, detenga la accin de bucle y ejecute la sentencia a continuacin de la sentencia de bucle. Cuando se utiliza en una sentencia switch, la sentencia break ordena a Flash que omita el resto de sentencias en ese bloque de sentencias case y que salte a la primera sentencia que vaya a continuacin del bloque switch. En bucles anidados, la sentencia break slo omite el resto del bucle inmediato, no toda la serie de bucles anidados. Para salir de toda una serie de bucles anidados, debe usar try..catch..finally. Ejemplo El ejemplo siguiente utiliza la sentencia break para salir de un bucle que, de otro modo, sera infinito:
var i:Number = 0; while (true) { trace(i); if (i >= 10) { break; // esto terminar/saldr del bucle } i++; }

que obtiene el resultado siguiente:


0 1 2 3 4 5 6 7 8 9 10

Vase tambin
Sentencia for

162

Elementos del lenguaje ActionScript

Sentencia case
case expression : statement(s)

Define una condicin de la sentencia switch. Si el parmetro expression es igual que el parmetro expression de la sentencia switch que utiliza igual estricta (===), Flash Player ejecutar sentencias en el parmetro statement(s) hasta que encuentre una sentencia break o el final de la sentencia switch. Si se utiliza la sentencia case fuera de una sentencia switch, se produce un error y el script no se compila. Nota:debera finalizar siempre el parmetro statement(s) con una sentencia break. Si omite break statement del parmetro statement(s), contina ejecutndose con la siguiente sentencia case en la lugar de salir de la sentencia switch. Parmetros
expression:String

- Cualquier expresin.

Ejemplo El ejemplo siguiente define condiciones para la sentencia switch thisMonth. Si thisMonth es igual que la expresin de la sentencia case, se ejecutar la sentencia.
var thisMonth:Number = new Date().getMonth(); switch (thisMonth) { case 0 : trace("January"); break; case 1 : trace("February"); break; case 5 : case 6 : case 7 : trace("Some summer month"); break; case 8 : trace("September"); break; default : trace("some other month"); }

Vase tambin
Sentencia break

Sentencias

163

Sentencia class
[dynamic] class className [ extends superClass ] [ implements interfaceName[, interfaceName... ] ] { // class definition here}

Define una clase personalizada que permite crear instancias de objetos que comparten mtodos y propiedades definidas por el usuario. Por ejemplo, si est desarrollando un sistema de seguimiento de facturas, podra crear una clase invoice (factura) que defina todos los mtodos y propiedades que debera tener cada factura. Utilizara entonces el nuevo comando new invoice() para crear objetos invoice. El nombre de la clase debe coincidir con el nombre del archivo externo que contiene la clase. El nombre del archivo externo debe ser el nombre de la clase con la extensin de archivo .as. Por ejemplo, si se denomina a una clase Student, el archivo que defina la clase debe denominarse Student.as. Si una clase est contenida en un paquete, la declaracin de clase debe utilizar el nombre completo con el formato base.sub1.sub2.MyClass. Adems, el archivo AS de la clase debe almacenarse en la ruta de una estructura de directorios que refleje la estructura del paquete, como base/sub1/sub2/MyClass.as. Si la definicin de la clase tiene el formato "class MyClass", se encuentra en el paquete predeterminado y el archivo MyClass.as debera situarse en el nivel superior de algn directorio de la ruta. Por este motivo, es aconsejable planificar una estructura de directorios antes de empezar a crear clases. De otro modo, si decide mover archivos de clases despus de crearlos, deber modificar las sentencias de declaracin de clases para reflejar su nueva ubicacin. No es posible anidar definiciones de clase, es decir, no se pueden definir clases adicionales en una definicin de clase. Para indicar que los objetos pueden aadir propiedades dinmicas y acceder a ellas en tiempo de ejecucin, incluya la palabra clave dynamic antes de la sentencia class. Para declarar que una clase implemente una interfaz, utilice la palabra clave implements. Para crear subclases de una clase, utilice la palabra clave extends. (Una clase slo puede ampliar una clase pero puede implementar varias interfaces.) Puede utilizar las palabras clave implements y extends en una sola sentencia. En el siguiente ejemplo se muestran diversos usos habituales de las palabras claves implements y extends:
class C implements Interface_i, Interface_j // Correcto class C extends Class_d implements Interface_i, Interface_j // Correcto class C extends Class_d, Class_e // Incorrecto

Parmetros
className:String

- Nombre completo de la clase.

164

Elementos del lenguaje ActionScript

Ejemplo En el siguiente ejemplo se crea una clase llamada Plant. El constructor Plant utiliza dos parmetros.
// Nombre de archivo Plant.as class Plant { // Define los nombres y los tipos de las propiedades var leafType:String; var bloomSeason:String; // La siguiente lnea es el constructor // porque tiene el mismo nombre que la clase function Plant(param_leafType:String, param_bloomSeason:String) { // Asigna los valores transferidos a las propiedades cuando se haya creado el nuevo objeto Plant this.leafType = param_leafType; this.bloomSeason = param_bloomSeason; } // Crea mtodos para devolver valores de la propiedad, ya que la prctica ms recomendable // no es hacer referencia directa a la propiedad de una clase function getLeafType():String { return leafType; } function getBloomSeason():String { return bloomSeason; } }

En un archivo de script externo o en el panel Acciones, utilice el operador new para crear un objeto Plant.
var pineTree:Plant = new Plant("Evergreen", "N/A"); // Confirma que los parmetros se han pasado correctamente trace(pineTree.getLeafType()); trace(pineTree.getBloomSeason());

En el siguiente ejemplo se crea una clase llamada ImageLoader. El constructor ImageLoader utiliza tres parmetros.
// Nombre de archivo ImageLoader.as class ImageLoader extends MovieClip { function ImageLoader(image:String, target_mc:MovieClip, init:Object) { var listenerObject:Object = new Object(); listenerObject.onLoadInit = function(target) { for (var i in init) { target[i] = init[i]; } };

Sentencias

165

var JPEG_mcl:MovieClipLoader = new MovieClipLoader(); JPEG_mcl.addListener(listenerObject); JPEG_mcl.loadClip(image, target_mc); } }

En un archivo de script externo o en el panel Acciones, utilice el operador new para crear un objeto ImageLoader.
var jakob_mc:MovieClip = this.createEmptyMovieClip("jakob_mc", this.getNextHighestDepth()); var jakob:ImageLoader = new ImageLoader("http://www.helpexamples.com/flash/ images/image1.jpg", jakob_mc, {_x:10, _y:10, _alpha:70, _rotation:-5});

Vase tambin
Sentencia dynamic

Sentencia continue
continue

Salta por encima de todas las sentencias restantes en el bucle ms interior e inicia la siguiente repeticin del bucle como si se hubiera pasado el control hasta el final del bucle de la forma habitual. No tiene ningn efecto fuera de un bucle. Ejemplo En el siguiente bucle while, continue hace que el intrprete de Flash omita el resto del cuerpo del bucle y salte a la parte superior del bucle, donde se comprueba la condicin:
trace("example 1"); var i:Number = 0; while (i<10) { if (i % 3 == 0) { i++; continue; } trace(i); i++; }

166

Elementos del lenguaje ActionScript

En el siguiente bucle do..while, continue hace que el intrprete de Flash omita el resto del cuerpo del bucle y salte a la parte inferior del bucle, donde se comprueba la condicin:
trace("example 2"); var i:Number = 0; do { if (i % 3 == 0) { i++; continue; } trace(i); i++; } while (i < 10);

En un bucle for, continue hace que el intrprete de Flash omita el resto del cuerpo del bucle. En el ejemplo siguiente, si el mdulo i 3 es igual a 0, se omitir la sentencia trace(i):
trace("example 3"); for (var i = 0; i<10; i++) { if (i % 3 == 0) { continue; } trace(i); }

En el siguiente bucle for..in, continue hace que el intrprete de Flash omita el resto del cuerpo del bucle y salte otra vez a la parte superior del bucle, donde se procesa el siguiente valor de la numeracin:
for (i in _root) { if (i == "$version") { continue; } trace(i); }

Vase tambin
Sentencia do..while

Sentencias

167

Sentencia default
default : sentencias

Define el caso predeterminado de una sentencia switch. Las sentencias se ejecutan si el parmetro expression de la sentencia switch no equivale (mediante la operacin de igualdad estricta [===]) a ninguno de los parmetros expression que siguen a las palabras claves case de una determinada sentencia switch. No es necesario que la sentencia switch tenga una sentencia case default. Una sentencia case default no tiene que ser necesariamente la ltima de la lista. Si se utiliza una sentencia default fuera de una sentencia switch, se produce un error y el script no se compila. Parmetros
statements:String

- Cualquier sentencia.

Ejemplo En el ejemplo siguiente, la expresin A no es igual a las expresiones B o D, por lo que se ejecuta la sentencia que sigue a la palabra clave default y la sentencia trace() se enva al panel Salida.
var dayOfWeek:Number = new Date().getDay(); switch (dayOfWeek) { case 1 : trace("Monday"); break; case 2 : trace("Tuesday"); break; case 3 : trace("Wednesday"); break; case 4 : trace("Thursday"); break; case 5 : trace("Friday"); break; default : trace("Weekend"); }

Vase tambin
Sentencia switch

168

Elementos del lenguaje ActionScript

Sentencia delete
delete reference

Destruye la referencia de objeto especificada por el parmetro reference y devuelve true si se elimina la referencia correctamente; de lo contrario, devuelve false. Este operador es til para liberar la memoria que utilizan los scripts. Puede utilizar el operador delete para eliminar referencias a objetos. Tras eliminar todas las referencias a un objeto, Flash Player se encarga de eliminar el objeto y de liberar la memoria utilizada por dicho objeto. Aunque delete es un operador, suele utilizarse como una sentencia, tal y como se muestra en el siguiente ejemplo:
delete x;

El operador delete puede no ejecutarse correctamente y devolver false si el parmetro reference no existe o no puede eliminarse. No pueden eliminarse los objetos y propiedades predefinidos, ni las variables declaradas en una funcin con la sentencia var. No se puede utilizar el operador delete para eliminar clips de pelcula. Valor devuelto
Boolean

- Valor booleano.

Parmetros
reference:Object

- Nombre de la variable o del objeto que se va a eliminar.

Ejemplo Sintaxis 1: El ejemplo siguiente crea un objeto, lo utiliza y lo elimina cuando ya no es necesario:
var account:Object = new Object(); account.name = "Jon"; account.balance = 10000; trace(account.name); //salida: Jon delete account; trace(account.name); //salida: undefined

Sintaxis 2: El ejemplo siguiente elimina una propiedad de un objeto:


// crea el nuevo objeto "account" var account:Object = new Object(); // asigna el nombre de la propiedad a la cuenta account.name = "Jon"; // elimina la propiedad delete account.name;

Sentencias

169

Sintaxis 3: El ejemplo siguiente elimina una propiedad de un objeto:


var my_array:Array = new Array(); my_array[0] = "abc"; // my_array.length == 1 my_array[1] = "def"; // my_array.length == 2 my_array[2] = "ghi"; // my_array.length == 3 // my_array[2] se elimina, pero Array.length no cambia delete my_array[2]; trace(my_array.length); // salida: 3 trace(my_array); // salida: abc,def,undefined

Sintaxis 4: El ejemplo siguiente muestra el comportamiento de delete en referencias de objeto:


var ref1:Object = new Object(); ref1.name = "Jody"; // copia la variable de referencia en una nueva variable // y elimina ref1 ref2 = ref1; delete ref1; trace("ref1.name "+ref1.name); //salida: ref1.name undefined trace("ref2.name "+ref2.name); //salida: ref2.name Jody

Si no se hubiera copiado ref1 en ref2, el objeto se habra eliminado cuando se elimin ref1 porque no habra referencias a l. Si elimina ref2, no hay referencias al objeto, que se destruir y la memoria que ocupaba quedar disponible. Vase tambin
Sentencia var

Sentencia do..while
do { statement(s) } while (condition)

Similar al bucle while, con la diferencia de que las sentencias se ejecutan una vez antes de la evaluacin inicial de la condicin. Las sentencias a continuacin slo se ejecutan si la condicin da como resultado true. Un bucle do..while garantiza que el cdigo dentro del bucle se ejecutar al menos una vez. Aunque esto tambin puede realizarse con un bucle while colocando una copia de las sentencias que se van a ejecutar antes de que se inicie el bucle while, muchos programadores creen que es ms fcil leer los bucles do..while. Si la condicin da siempre como resultado true, el bucle do..while es infinito. Si se introduce un bucle infinito, habr problemas con Flash Player y finalmente se obtendr un mensaje de advertencia o se bloquear el reproductor. Siempre que sea posible, utilice un bucle for si sabe el nmero de veces que desea ejecutar el bucle. Aunque es fcil leer y depurar los bucles for, no siempre pueden sustituir a los bucles do..while.

170

Elementos del lenguaje ActionScript

Parmetros
condition:Boolean - La condicin que se va a evaluar. Las statement(s) dentro del bloque de cdigo do se ejecutan siempre que el parmetro condition de como resultado true .

Ejemplo El ejemplo siguiente utiliza un bucle do..while para evaluar si una condicin es true, y realiza un seguimiento de myVar hasta myVar que es mayor que 5. Cuando myVar es mayor que 5, el bucle termina.
var myVar:Number = 0; do { trace(myVar); myVar++; } while (myVar < 5); /* salida: 0 1 2 3 4 */

Vase tambin
Sentencia break

Sentencia dynamic
dynamic class className [ extends superClass ] [ implements interfaceName[, interfaceName... ] ] { // class definition here }

Especifica que el objeto basado en la clase especificada puede aadir propiedades dinmicas y acceder a ellas en tiempo de ejecucin. La verificacin de tipos en clases dinmicas es menos estricto que en clases no dinmicas porque los miembros a los que se accede dentro de la definicin de clase y en instancias de la clase no se comparan con los definidos en el mbito de la clase. Sin embargo, pueden verificarse los tipos return y parameter de las funciones de miembros de clase. Este comportamiento es especialmente til cuando se trabaja con objetos MovieClip, porque hay varias formas de aadir propiedades y objetos a un clip de pelcula dinmicamente, por ejemplo, mediante MovieClip.createEmptyMovieClip() y MovieClip.createTextField(). Las subclases de clases dinmicas son tambin dinmicas.

Sentencias

171

Ejemplo En el ejemplo siguiente, la clase Person2 an no se ha marcado como dinmica, por lo que al llamar a una funcin no declarada en ella se genera un error en tiempo de compilacin:
class Person2 { var name:String; var age:Number; function Person2(param_name:String, param_age:Number) { trace ("anything"); this.name = param_name; this.age = param_age; } }

En un archivo FLA o AS que se encuentre en el mismo directorio, aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
// Antes de aadir contenido dinmico var craig:Person2 = new Person2("Craiggers", 32); for (i in craig) { trace("craig." + i + " = " + craig[i]); } /* salida: craig.age = 32 craig.name = Craiggers */

Si aade una funcin no declarada, dance, se generar un error, como se muestra en el ejemplo siguiente:
trace(""); craig.dance = true; for (i in craig) { trace("craig." + i + " = " + craig[i]); } /* salida: **Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 14: There is no property with the name 'dance'. craig.dance = true; Total ActionScript Errors: 1 Reported Errors: 1 */

Aada la palabra clave dynamic a la clase Person2, de modo que la primera lnea aparezca de este modo:
dynamic class Person2 {

Pruebe el cdigo de nuevo. Obtendr el resultado siguiente:


craig.dance = true craig.age = 32 craig.name = Craiggers

Vase tambin
Sentencia class

172

Elementos del lenguaje ActionScript

Sentencia else
if (condition){ statement(s); } else { statement(s); }

Especifica las sentencias que se ejecutarn si la condicin en la sentencia if devuelve false. Las llaves ({}) que se utilizan para incluir el bloque de sentencias que se ejecutarn con la sentencia else no son necesarias si slo se va a ejecutar una sentencia. Parmetros
condition:Boolean

- Expresin que da como resultado true o false.

Ejemplo En el ejemplo siguiente se utiliza la condicin else para comprobar si la variable age_txt es mayor o menor que 18:
if (age_txt.text>=18) { trace("welcome, user"); } else { trace("sorry, junior"); userObject.minor = true; userObject.accessAllowed = false; }

En el ejemplo siguiente las llaves (({})) no son necesarias porque slo una sentencia sigue a la sentencia else:
if (age_txt.text>18) { trace("welcome, user"); } else trace("sorry, junior");

Vase tambin
Sentencia if

Sentencia else if
if (condition){ statement(s); } else if (condition){ statement(s);}

Evala una condicin y especifica las sentencias que se ejecutarn si la condicin en la sentencia if inicial devuelve false. Si la condicin else if devuelve true, el intrprete de Flash ejecuta las sentencias que hay entre llaves ({}), a continuacin de la condicin. Si la condicin else if es false, Flash omite las sentencias entre llaves y ejecuta las sentencias que hay a continuacin. Utilice la sentencia elseif para crear una lgica ramificada en los scripts. Si hay varias ramas, debera pensar en la posibilidad de utilizar una sentencia switch. Parmetros
condition:Boolean

- Expresin que da como resultado true o false.

Sentencias

173

Ejemplo El ejemplo siguiente utiliza sentencias else if para comparar score_txt con un valor especificado:
if (score_txt.text>90) { trace("A"); } else if (score_txt.text>75) { trace("B"); } else if (score_txt.text>60) { trace("C"); } else { trace("F"); }

Vase tambin
Sentencia if

Sentencia extends
Sintaxis 1:
class className extends otherClassName {}

Sintaxis 2:
interface interfaceName extends otherInterfaceName {}

Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de dilogo Configuracin de publicacin del archivo FLA. Esta palabra clave slo se admite cuando se utiliza en archivos de script externos y no en scripts escritos en el panel Acciones. Define una clase que es una subclase de otra clase; la ltima es la superclase. La subclase hereda todos los mtodos, propiedades, funciones, etc. definidos en la superclase. Las interfaces tambin pueden ampliarse con la palabra clave extends. Una interfaz que ampla otra interfaz incluye todas las declaraciones del mtodo de la interfaz original. Parmetros
className:String

- Nombre de la clase que se define.

Ejemplo En el ejemplo siguiente, la clase Car ampla la clase Vehicle de modo que se hereden todos sus mtodos, propiedades y funciones. Si el script crea una instancia de un objeto Car, podrn utilizarse los mtodos de la clase Car y de la clase Vehicle. El ejemplo siguiente muestra el contenido de un archivo llamado Vehicle.as, que define la clase Vehicle:
class Vehicle { var numDoors:Number; var color:String; function Vehicle(param_numDoors:Number, param_color:String) {

174

Elementos del lenguaje ActionScript

this.numDoors = param_numDoors; this.color = param_color; } function start():Void { trace("[Vehicle] start"); } function stop():Void { trace("[Vehicle] stop"); } function reverse():Void { trace("[Vehicle] reverse"); } }

El ejemplo siguiente muestra un segundo archivo AS, llamado Car.as, en el mismo directorio. Esta clase ampla la clase Vehicle, modificndola de tres formas. En primer lugar, la clase Car aade una variable fullSizeSpare para realizar un seguimiento de si el objeto car tiene una rueda de repuesto a tamao completo. En segundo lugar, aade un nuevo mtodo especfico de coches, activateCarAlarm(), que activa la alarma antirrobo del coche. En tercer lugar, anula la funcin stop()para aadir el hecho de que la clase Car utiliza un sistema de frenado ABS para detenerse.
class Car extends Vehicle { var fullSizeSpare:Boolean; function Car(param_numDoors:Number, param_color:String, param_fullSizeSpare:Boolean) { this.numDoors = param_numDoors; this.color = param_color; this.fullSizeSpare = param_fullSizeSpare; } function activateCarAlarm():Void { trace("[Car] activateCarAlarm"); } function stop():Void { trace("[Car] stop with anti-lock brakes"); } }

El ejemplo siguiente crea una instancia de un objeto Car, llama a un mtodo definido en la clase Vehicle (start()), luego llama al mtodo anulado por la clase Car (stop()) y, por ltimo, llama a un mtodo de la clase Car (activateCarAlarm()):
var myNewCar:Car = new Car(2, "Red", true); myNewCar.start(); // salida: [Vehicle] start myNewCar.stop(); // salida: [Car] stop with anti-lock brakes myNewCar.activateCarAlarm(); // salida: [Car] activateCarAlarm

Sentencias

175

Tambin se puede escribir una subclase de la clase Vehicle utilizando la palabra clave super, que puede utilizar la subclase para acceder a propiedades y mtodos de la superclase. El ejemplo siguiente muestra un tercer archivo AS, llamado Truck.as, tambin en el mismo directorio. La clase Truck utiliza la palabra clave super en el constructor y tambin en la funcin reverse() anulada.
class Truck extends Vehicle { var numWheels:Number; function Truck(param_numDoors:Number, param_color:String, param_numWheels:Number) { super(param_numDoors, param_color); this.numWheels = param_numWheels; } function reverse():Void { beep(); super.reverse(); } function beep():Void { trace("[Truck] make beeping sound"); } }

El ejemplo siguiente crea una instancia del objeto Truck, llama a un mtodo anulado por la clase Truck (reverse()) y, a continuacin, llama a un mtodo definido en la clase Vehicle (stop()):
var myTruck:Truck = new Truck(2, "White", 18); myTruck.reverse(); // salida: [Truck] make beeping sound [Vehicle] reverse myTruck.stop(); // salida: [Vehicle] stop

Vase tambin
Sentencia class

Sentencia for
for(init; condition; next) { statement(s); }

Evala la expresin init (inicializar) una vez y, a continuacin, inicia una secuencia de reproduccin indefinida. La secuencia de reproduccin indefinida se inicia evaluando la expresin condition. Si la expresin condition da como resultado true, se ejecuta statement y se evala la expresin next. La secuencia de reproduccin indefinida se inicia nuevamente con la evaluacin de la expresin condition. Las llaves ({}) que se utilizan para incluir el bloque de sentencias que se ejecutarn con la sentencia for no son necesarias si slo se va a ejecutar una sentencia.

176

Elementos del lenguaje ActionScript

Parmetros
init - Expresin que se va a evaluar antes de iniciar la secuencia de reproduccin indefinida; normalmente es una expresin de asignacin. En este parmetro tambin se permite la sentencia var.

Ejemplo El ejemplo siguiente utiliza for para aadir los elementos a una matriz:
var my_array:Array = new Array(); for (var i:Number = 0; i < 10; i++) { my_array[i] = (i + 5) * 10; } trace(my_array); // salida: 50,60,70,80,90,100,110,120,130,140

El ejemplo siguiente utiliza for para realizar la misma accin repetidamente. En el cdigo, el bucle for aade los nmeros de 1 a 100.
var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) { sum += i; } trace(sum); // salida: 5050

El ejemplo siguiente muestra que las llaves ({}) no son necesarias si slo se va a ejecutar una sentencia:
var sum:Number = 0; for (var i:Number = 1; i <= 100; i++) sum += i; trace(sum); // salida: 5050

Vase tambin
Operador incremento (++)

Sentencia for..in
for (variableIterant in object) { ] statement(s); }

Repite las propiedades de un objeto o los elementos de una matriz y ejecuta statement para cada propiedad o elemento. Los mtodos de un objeto no se enumeran mediante la accin for..in. Algunas propiedades no pueden enumerarse mediante la accin for..in. Por ejemplo, las propiedades de clip de pelcula como _x e _y no se enumeran. En archivos de clase externos, los miembros estticos no pueden enumerarse, a diferencia de los miembros de instancias.

Sentencias

177

La sentencia for..in repite las propiedades de los objetos de la cadena prototipo del objeto repetido. Primero se enumeran las propiedades del objeto, luego las propiedades de su prototipo inmediato y seguidamente las propiedades del prototipo del prototipo, y as sucesivamente. La sentencia for..in no enumera el mismo nombre de propiedad dos veces. Si el objeto child tiene un prototipo parent y ambos contienen la propiedad prop, la sentencia for..in a la que se llama en child enumera la propiedad prop correspondiente a child pero ignora la de parent. Las llaves ({}) que se utilizan para incluir el bloque de sentencias que se ejecutarn con la sentencia for..in no son necesarias si slo se va a ejecutar una sentencia. Si escribe un bucle for..in en un archivo de clase (un archivo AS externo), los miembros de instancias no estarn disponibles para el bucle, pero s los miembros estticos. Sin embargo, si escribe un bucle for..in en un archivo FLA para una instancia de la clase, los miembros de instancias estarn disponibles, pero no los miembros estticos. Parmetros
variableIterant:String

- Nombre de una variable que actuar como repetidor, haciendo referencia a cada propiedad de un objeto o elemento de una matriz. Ejemplo En el siguiente ejemplo se utiliza for..in para repetir las propiedades de un objeto:

var myObject:Object = {firstName:"Tara", age:27, city:"San Francisco"}; for (var prop in myObject) { trace("myObject."+prop+" = "+myObject[prop]); } //salida myObject.firstName = Tara myObject.age = 27 myObject.city = San Francisco

En el siguiente ejemplo se utiliza for..in para repetir los elementos de una matriz:
var myArray:Array = new Array("one", "two", "three"); for (var index in myArray) trace("myArray["+index+"] = " + myArray[index]); // salida: myArray[2] = three myArray[1] = two myArray[0] = one

El ejemplo siguiente utiliza el operador typeof con for..in para repetir un determinado tipo de elemento secundario:
for (var name in this) { if (typeof (this[name]) == "movieclip") { trace("I have a movie clip child named "+name); } }

178

Elementos del lenguaje ActionScript

Nota: si tiene varios clips de pelcula, el resultado consiste en los nombres de instancia de esos clips. El ejemplo siguiente enumera los elementos secundarios de un clip de pelcula y enva cada uno al fotograma 2 en sus lneas de tiempo respectivas. El clip de pelcula RadioButtonGroup es un elemento principal con tres secundarios, _RedRadioButton_, _GreenRadioButton_, y _BlueRadioButton_:
for (var name in RadioButtonGroup) { RadioButtonGroup[name].gotoAndStop(2); }

Sentencia function
Sintaxis 1: (Declara una funcin con nombre.)function functionname([parameter0,
parameter1,...parameterN]){statement(s)}Sintaxis 2: (Declara una funcin annima y

devuelve una referencia.)function ([parameter0, parameter1,...parameterN]){


statement(s) }

Consta de un conjunto de sentencias que se definen para ejecutar una determinada tarea. Puede definir una funcin en una ubicacin e invocarla o llamarla desde distintos scripts de un archivo SWF. Cuando defina una funcin, puede adems especificar parmetros para dicha funcin. Los parmetros son marcadores de posicin de los valores sobre los que opera la funcin. Puede pasar distintos parmetros a una funcin cada vez que la llame para poder reutilizar una misma funcin en situaciones diferentes. Utilice la sentencia return en sentencias (statement(s)) de una funcin para que sta genere o devuelva un valor. Puede utilizar esta sentencia para definir una funcin (function) con los valores especificados de functionname, parameters y statement(s). Cuando un script llama a una funcin, se ejecutan las sentencias de la definicin de la funcin. Se permite la creacin de referencias hacia delante; en un mismo script, una funcin puede declararse despus de llamarse. Una definicin de funcin sustituye cualquier definicin anterior de la misma funcin. Puede utilizar esta sintaxis donde se permita una sentencia. Tambin puede utilizar esta sentencia para crear una funcin annima y devolverle una referencia. Esta sintaxis se utiliza en expresiones y es especialmente til para instalar mtodos en objetos. Para aadir funcionalidad, puede utilizar el objeto arguments en la definicin de la funcin. El objeto arguments suele utilizarse para crear una funcin que acepte un nmero variable de parmetros y para crear una funcin annima recursiva.

Sentencias

179

Valor devuelto
String - Sintaxis 1: El formulario de declaracin no devuelve nada. Sintaxis 2: Una referencia

a la funcin annima. Parmetros


functionname:String

- Nombre de la funcin declarada.

Ejemplo
2)

El ejemplo siguiente define la funcin sqr, que acepta un parmetro y devuelve Math.pow(x, del parmetro:
function sqr(x:Number) { return Math.pow(x, 2); } var y:Number = sqr(3); trace(y); // salida: 9

Si se define y utiliza la funcin en el mismo script, la definicin de funcin puede aparecer despus de usar la funcin:
var y:Number = sqr(3); trace(y); // salida: 9 function sqr(x:Number) { return Math.pow(x, 2); }

La funcin siguiente crea un objeto LoadVars y carga params.txt en el archivo SWF. Cuando el archivo se carga correctamente, se realiza un seguimiento de variables cargadas (variables loaded):
var myLV:LoadVars = new LoadVars(); myLV.load("params.txt"); myLV.onLoad = function(success:Boolean) { trace("variables loaded"); }

Sentencia get
function get property () { // aqu van sus sentencias }

Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de dilogo Configuracin de publicacin del archivo FLA. Esta palabra clave slo se admite cuando se utiliza en archivos de script externos y no en scripts escritos en el panel Acciones.

180

Elementos del lenguaje ActionScript

Permite la obtencin implcita de propiedades asociadas con objetos basados en las clases definidas en archivos de clase externos. El uso de mtodos get implcitos permite acceder a propiedades de los objetos sin necesidad de acceder directamente a la propiedad. Los mtodos get/set implcitos son la abreviatura sintctica del mtodo Object.addProperty() en ActionScript 1. Parmetros
property:String get;

- Palabra que se utiliza para hacer referencia a la propiedad a la que accede este valor debe coincidir con el valor utilizado en el comando set correspondiente.

Ejemplo En el ejemplo siguiente se define una clase Team. La clase Team incluye mtodos get/set que permiten recuperar y establecer propiedades dentro de la clase:
class Team { var teamName:String; var teamCode:String; var teamPlayers:Array = new Array(); function Team(param_name:String, param_code:String) { this.teamName = param_name; this.teamCode = param_code; } function get name():String { return this.teamName; } function set name(param_name:String):Void { this.teamName = param_name; } }

Introduzca el cdigo ActionScript siguiente en un fotograma de la lnea de tiempo:


var giants:Team = new Team("San Fran", "SFO"); trace(giants.name); giants.name = "San Francisco"; trace(giants.name); /* salida: San Fran San Francisco */

Cuando realiza un seguimiento de giants.name, utilice el mtodo get para devolver el valor de la propiedad. Vase tambin
addProperty (mtodo Object.addProperty)

Sentencias

181

Sentencia if
if (condition){ statement(s); }

Evala una condicin para determinar la siguiente accin en un archivo SWF. Si la condicin es true, Flash ejecuta las sentencias que hay entre llaves ({}), a continuacin de la condicin. Si la condicin es false, Flash omite las sentencias entre llaves y ejecuta las sentencias que hay a continuacin. Utilice la sentencia if junto con las sentencias else y else if para crear una lgica ramificada en los scripts. Las llaves ({}) que se utilizan para incluir el bloque de sentencias que se ejecutarn con la sentencia if no son necesarias si slo se va a ejecutar una sentencia. Parmetros
condition:Boolean

- Expresin que da como resultado true o false.

Ejemplo En el ejemplo siguiente, la condicin dentro de los parntesis evala la variable name para comprobar si tiene el valor literal "Erica". Si lo tiene, se ejecutar la funcin play() dentro de las llaves.
if(name == "Erica"){ play(); }

El ejemplo siguiente utiliza una sentencia if para evaluar cunto tarda un usuario en hacer clic en la instancia submit_btn en un archivo SWF. Si un usuario hace clic en el botn ms de 10 segundos despus de que se reproduzca el archivo SWF, la condicin dar como resultado true y aparecer el mensaje dentro de las llaves ({}) en un campo de texto que se crea en tiempo de ejecucin (utilizando createTextField()). Si el usuario hace clic en el botn menos de 10 segundos de que se reproduzca el archivo SWF, la condicin dar como resultado false y aparecer otro mensaje.
this.createTextField("message_txt", this.getNextHighestDepth, 0, 0, 100, 22); message_txt.autoSize = true; var startTime:Number = getTimer(); this.submit_btn.onRelease = function() { var difference:Number = (getTimer() - startTime) / 1000; if (difference > 10) { this._parent.message_txt.text = "Not very speedy, you took "+difference+" seconds."; }

182

Elementos del lenguaje ActionScript

else { this._parent.message_txt.text = "Very good, you hit the button in "+difference+" seconds."; } };

Vase tambin
Sentencia else

Sentencia implements
myClass implements interface01 [, interface02 , ...]

Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de dilogo Configuracin de publicacin del archivo FLA. Esta palabra clave slo se admite cuando se utiliza en archivos de script externos y no en scripts escritos en el panel Acciones. Especifica que una clase debe definir todos los mtodos declarados en la interfaz o interfaces que se estn implementando. Ejemplo Vase interface. Vase tambin
Sentencia class

Sentencia import
import className import packageName.*

Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de dilogo Configuracin de publicacin del archivo FLA. Esta sentencia es compatible con el panel Acciones, as como con archivos de clases externas. Permite acceder a las clases sin especificar sus nombres completos. Por ejemplo, si desea utilizar una clase personalizada macr.util.users.UserClass en un script, debe referirse a ella por su nombre completo o importarla; si la importa, puede referirse a ella por el nombre de clase:
// antes de la importacin var myUser:macr.util.users.UserClass = new macr.util.users.UserClass(); // despus de la importacin import macr.util.users.UserClass; var myUser:UserClass = new UserClass();

Sentencias

183

Si hay varios archivos de clase en el paquete (working_directory/macr/utils/users) a los que desea acceder, puede importarlos todos en una sola sentencia, tal y como se muestra en el siguiente ejemplo:
import macr.util.users.*;

Debe emitir la sentencia import antes de intentar acceder a la clase importada sin especificar su nombre completo. Si importa una clase pero no la utiliza en el script, la clase no se exporta como parte del archivo SWF. Eso significa que puede importar grandes paquetes sin preocuparse del tamao del archivo SWF; el cdigo de bytes asociado con una clase se incluye en un archivo SWF nicamente si dicha clase se utiliza realmente. La sentencia import slo se aplica al script actual (fotograma u objeto) en el que se llama. Por ejemplo, supongamos que importa todas las clases del paquete macr.util en el fotograma 1 de un documento de Flash. En dicho fotograma, puede hacer referencia a las clases del paquete por sus nombres simples:
// En el fotograma 1 de un archivo FLA: import macr.util.*; var myFoo:foo = new foo();

Sin embargo, en otro script del fotograma necesitara hacer referencia a las clases del paquete por sus nombres completos (var myFoo:foo = new macr.util.foo();) o aadir una sentencia import al otro fotograma que importa las clases en dicho paquete. Parmetros
className:String

- Nombre completo de una clase definida en un archivo de clase externo.

Sentencia interface
interface InterfaceName [extends InterfaceName ] {}

Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de dilogo Configuracin de publicacin del archivo FLA. Esta palabra clave slo se admite cuando se utiliza en archivos de script externos y no en scripts escritos en el panel Acciones.

184

Elementos del lenguaje ActionScript

Define una interfaz. Una interfaz es similar a una clase, pero presenta estas diferencias importantes:

Las interfaces slo contienen declaraciones de mtodos, no su implementacin. Es decir, cada clase que implementa una interfaz debe proporcionar una implementacin para cada mtodo declarado en la interfaz. Slo se permiten miembros pblicos en una definicin de interfaz; no se permiten miembros de instancias ni de clases. En las definiciones de interfaces no se permiten las sentencias get ni set.

Ejemplo El ejemplo siguiente muestra varias formas de definir e implementar interfaces:


(in top-level package .as files Ia, B, C, Ib, D, Ic, E) // nombre de archivo Ia.as interface Ia { function k():Number; // slo la declaracin del mtodo function n(x:Number):Number; // sin implementacin } // nombre de archivo B.as class B implements Ia { function k():Number { return 25; } function n(x:Number):Number { return x + 5; } } // script externo o panel Acciones // archivo de script var mvar:B = new B(); trace(mvar.k()); // 25 trace(mvar.n(7)); // 12 // nombre de archivo c.as class C implements Ia { function k():Number { return 25; } } // error: la clase debe implementar todos los mtodos de la interfaz // nombre de archivo Ib.as interface Ib { function o():Void; } class D implements Ia, Ib { function k():Number { return 15; } function n(x:Number):Number { return x * x; }

Sentencias

185

function o():Void { trace("o"); } } // script externo o panel Acciones // archivo de script mvar = new D(); trace(mvar.k()); // 15 trace(mvar.n(7)); // 49 trace(mvar.o()); // "o" interface Ic extends Ia { function p():Void; } class E implements Ib, Ic { function k():Number { return 25; } function n(x:Number):Number { return x + 5; } function o():Void { trace("o"); } function p():Void { trace("p"); } }

Vase tambin
Sentencia class

Sentencia intrinsic
intrinsic class className [extends superClass] [implements interfaceName [, interfaceName...] ] { //la definicin de la clase va aqu }

Permite verificar en tiempo de compilacin los tipos de clases definidas anteriormente. Flash utiliza declaraciones de clase intrinsic para permitir la comprobacin de tipos de clases incorporadas en tiempo de compilacin, como Array, Object y String. Esta palabra clave indica al compilador que no se requiere una implementacin de funcin y que no se debe generar ningn cdigo de bytes para ella. La palabra clave intrinsic tambin puede emplearse con declaraciones de variable y funcin. Flash utiliza esta palabra clave para permitir la comprobacin de tipos en tiempo de compilacin para funciones y propiedades globales.

186

Elementos del lenguaje ActionScript

La palabra clave intrinsic se ha creado especficamente para permitir la comprobacin de tipos en tiempo de compilacin para clases y objetos incorporados, as como variables y funciones globales. Esta palabra clave no se ha diseado par uso general, aunque puede tener cierto valor para desarrolladores que desean permitir la comprobacin de tipos en tiempo de compilacin con clases definidas anteriormente, especialmente si las clases se definen empleando ActionScript 1.0. Esta palabra clave slo se admite cuando se utiliza en archivos de script externos y no en scripts escritos en el panel Acciones. Ejemplo El ejemplo siguiente muestra cmo permitir la comprobacin de archivos en tiempo de compilacin para una clase ActionScript 1.0 definida anteriormente. El cdigo generar un error de tiempo de compilacin porque la llamada myCircle.setRadius() enva un valor de cadena (String) como parmetro en lugar de un valor de nmero (Number). Puede evitar el error cambiando el parmetro por un valor de nmero (Number) (por ejemplo, cambiando "10" por 10).
// El siguiente cdigo debe insertarse en un archivo llamado Circle.as // que resida dentro de la ruta de clases: intrinsic class Circle { var radius:Number; function Circle(radius:Number); function getArea():Number; function getDiameter():Number; function setRadius(param_radius:Number):Number; } // Esta definicin de la clase de ActionScript 1.0 puede insertarse en el archivo FLA. // La clase Circle se define con ActionScript 1.0 function Circle(radius) { this.radius = radius; this.getArea = function(){ return Math.PI*this.radius*this.radius; }; this.getDiameter = function() { return 2*this.radius; }; this.setRadius = function(param_radius) { this.radius = param_radius; } } // Cdigo de ActionScript 2.0 que utiliza la clase Circle var myCircle:Circle = new Circle(5); trace(myCircle.getArea());

Sentencias

187

trace(myCircle.getDiameter()); myCircle.setRadius("10"); trace(myCircle.radius); trace(myCircle.getArea()); trace(myCircle.getDiameter());

Vase tambin
Sentencia class

Sentencia private
class someClassName{ private var name; private function name() { // las sentencias van aqu } }

Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de dilogo Configuracin de publicacin del archivo FLA. Esta palabra clave slo se admite cuando se utiliza en archivos de script externos y no en scripts escritos en el panel Acciones. Especifica que una variable o funcin est nicamente disponible para la clase que la declara o define o para las subclases de dicha clase. Palabra clave; una variable o funcin est disponible para cualquier origen de llamada. Utilice esta palabra clave si desea restringir el acceso a una variable o funcin. Puede utilizar esta palabra clave nicamente en definiciones de clases, no en definiciones de interfaces. Parmetros
name:String

- Nombre de la variable o funcin que desea especificar como private (privada).

Ejemplo El siguiente ejemplo muestra cmo se pueden ocultar ciertas propiedades de una clase con la palabra clave private. Cree un archivo AS nuevo llamado Login.as:
class Login { private var loginUserName:String; private var loginPassword:String; public function Login(param_username:String, param_password:String) { this.loginUserName = param_username; this.loginPassword = param_password; } public function get username():String {

188

Elementos del lenguaje ActionScript

return this.loginUserName; } public function set username(param_username:String):Void { this.loginUserName = param_username; } public function set password(param_password:String):Void { this.loginPassword = param_password; } }

En el mismo directorio que Login.as, cree un nuevo documento FLA o AS. Introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
import Login; var gus:Login = new Login("Gus", "Smith"); trace(gus.username); // salida: Gus trace(gus.password); // salida: undefined trace(gus.loginPassword); // error

Dado que loginPassword es una variable private, no se puede acceder a ella desde fuera del archivo de clase Login.as. Si se intenta acceder a la variable private, se obtendr un mensaje de error. Vase tambin
Sentencia public

Sentencia public
class someClassName{ public var name; public function name() { // aqu van las sentencias } }

Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de dilogo Configuracin de publicacin del archivo FLA. Esta palabra clave slo se admite cuando se utiliza en archivos de script externos y no en scripts escritos en el panel Acciones. Especifica que una variable o funcin est disponible para cualquier origen de llamada. Dado que las variables y funciones son pblicas de forma predeterminada, esta palabra clave se utiliza principalmente por motivos de estilo. Por ejemplo, quiz desee utilizarla para mantener la coherencia de un bloque de cdigo que contenga adems variables privadas o estticas. Parmetros
name:String

- Nombre de la variable o funcin que desea especificar como public (pblica).

Sentencias

189

Ejemplo El ejemplo siguiente muestra cmo se pueden utilizar variables pblicas en un archivo de clase. Cree un archivo de clase nuevo llamado User.as e introduzca el cdigo siguiente:
class User { public var age:Number; public var name:String; }

A continuacin, cree un archivo FLA o AS nuevo en el mismo directorio e introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
import User; var jimmy:User = new User(); jimmy.age = 27; jimmy.name = "jimmy";

Si cambia una de las variables pblicas en la clase User por una variable privada, se generar un error al intentar acceder a la propiedad. Vase tambin
Sentencia private

Sentencia return
return[expression]

Especifica el valor devuelto por una funcin. La sentencia return evala expression y devuelve el resultado como valor de la funcin en la que se ejecuta. La sentencia return devuelve inmediatamente la ejecucin a la funcin que realiza la llamada. Si la sentencia return se utiliza sola, devuelve undefined.. No es posible devolver mltiples valores. Si intenta hacerlo, slo se devolver el ltimo valor. En el siguiente ejemplo se devuelve c:
return a, b, c ;

Si es necesario devolver mltiples valores, quiz desee utilizar una matriz u objeto en su lugar. Valor devuelto
String

- El parmetro expression evaluado, si se proporciona.

Parmetros
expression - Cadena, nmero, valor booleano, matriz u objeto que se va a evaluar y devolver

como un valor de la funcin. Este parmetro es opcional.

190

Elementos del lenguaje ActionScript

Ejemplo El ejemplo siguiente utiliza la sentencia return dentro del cuerpo de la funcin sum() para devolver el valor sumado de los tres parmetros. La siguiente lnea de cdigo llama a sum() y asigna el valor devuelto a la variable newValue.
function sum(a:Number, b:Number, c:Number):Number { return (a + b + c); } var newValue:Number = sum(4, 32, 78); trace(newValue); // salida: 114

Vase tambin
Sentencia function

Sentencia set
function set property(varName) { // las sentencias van aqu }

Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de dilogo Configuracin de publicacin del archivo FLA. Esta palabra clave slo se admite cuando se utiliza en archivos de script externos y no en scripts escritos en el panel Acciones. Permite el establecimiento implcito de propiedades asociadas con objetos basados en las clases definidas en archivos de clase externos. El uso de mtodos set implcitos permite modificar el valor de la propiedad de un objeto sin acceder a la propiedad directamente. Los mtodos get/ set implcitos son la abreviatura sintctica del mtodo Object.addProperty() en ActionScript 1. Parmetros
property:String

- Palabra que hace referencia a la propiedad a la que accede set; este valor debe coincidir con el valor utilizado en el comando get correspondiente.

Ejemplo El ejemplo siguiente crea una clase Login que demuestra cmo se puede utilizar la palabra clave set para establecer variables privadas:
class Login { private var loginUserName:String; private var loginPassword:String; public function Login(param_username:String, param_password:String) { this.loginUserName = param_username;

Sentencias

191

this.loginPassword = param_password; } public function get username():String { return this.loginUserName; } public function set username(param_username:String):Void { this.loginUserName = param_username; } public function set password(param_password:String):Void { this.loginPassword = param_password; } }

En un archivo FLA o AS que se encuentre en el mismo directorio que Login.as, introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
var gus:Login = new Login("Gus", "Smith"); trace(gus.username); // salida: Gus gus.username = "Rupert"; trace(gus.username); // salida: Rupert

En el ejemplo siguiente, la funcin get se ejecuta cuando se realiza un seguimiento del valor. La funcin set slo se activa cuando se le pasa un valor, como se muestra en la lnea:
gus.username = "Rupert";

Vase tambin
Sentencia get

Sentencia set variable


set("variableString",expression)

Asigna un valor a una variable. Una variable es un contenedor que almacena datos. El contenedor es siempre el mismo, pero el contenido puede cambiar. La modificacin del valor de una variable a medida que se reproduce el archivo SWF permite registrar y guardar informacin sobre las acciones del usuario, registrar valores que se modifican conforme se reproduce el archivo SWF o comprobar si una determinada condicin es true o false. Las variables pueden contener cualquier tipo de datos (por ejemplo, String, Number, Boolean, Object o MovieClip). La lnea de tiempo de cada archivo SWF y clip de pelcula tiene su propio conjunto de variables y cada variable tiene su propio valor independiente de las variables de otras lneas de tiempo. En una sentencia set set se permite el uso de "strict data typing". Si se utiliza esta sentencia para establecer una variable en un valor cuyo tipos de datos sea distinto del tipo de datos asociado con la variable en un archivo de clase, no se genera ningn error de compilador.

192

Elementos del lenguaje ActionScript

Una distincin sutil pero importante que hay que tener en cuenta es que el parmetro variableString es una cadena, no un nombre de variable. Si pasa a set() un nombre de variable que ya existe como primer parmetro, sin poner el nombre entre comillas (""), la variable se evala antes de que se le asigne el valor de expression. Por ejemplo, si crea una variable de cadena denominada myVariable y le asigna el valor "Tuesday" pero se olvida de ponerlo entre comillas, crear accidentalmente una nueva variable denominada Tuesday que contenga el valor que intent asignar a myVariable:
var myVariable:String = "Tuesday"; set (myVariable, "Saturday"); trace(myVariable); // produce el resultado Tuesday trace(Tuesday); // produce el resultado Saturday

Para evitarlo, utilice las comillas (""):


set ("myVariable", "Saturday"); trace(myVariable); //produce el resultado Saturday

Parmetros
variableString:String

- Cadena que denomina una variable que contiene el valor del

parmetro expression. Ejemplo En el ejemplo siguiente se asigna un valor a una variable. Se asigna el valor de "Jakob" a la variable name.
set("name", "Jakob"); trace(name);

El cdigo siguiente se reproduce tres veces y crea tres nuevas variables, llamadas caption0, caption1 y caption2:
for (var i = 0; i<3; i++) { set("caption" + i, "this is caption " + i); } trace(caption0); trace(caption1); trace(caption2);

Vase tambin
Sentencia var

Sentencias

193

Sentencia static
class someClassName{ static var name; static function name() { // las sentencias van aqu } }

Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de dilogo Configuracin de publicacin del archivo FLA. Esta palabra clave slo se admite cuando se utiliza en archivos de script externos y no en scripts escritos en el panel Acciones. Especifica que una variable o funcin se cree nicamente una sola vez por cada clase, en lugar de crearse en cada objeto basado en dicha clase. Puede acceder a un miembro de clase esttico sin crear una instancia de la clase mediante la sintaxis someClassName.name. Si crea una instancia de la clase, puede acceder adems a un miembro esttico a travs de la instancia, pero nicamente a travs de una funcin no esttica que tenga acceso al miembro esttico. Puede utilizar esta palabra clave nicamente en definiciones de clases, no en definiciones de interfaces. Parmetros
name:String

- Nombre de la variable o funcin que desea especificar como static (esttica).

Ejemplo El ejemplo siguiente demuestra cmo se puede utilizar la palabra clave static para crear un contador que realiza un seguimiento del nmero de instancias de la clase que se han creado. Dado que la variable numInstances es esttica, se crear slo una vez para toda la clase, no para cada instancia individual. Cree un archivo nuevo llamado User.as e introduzca el cdigo siguiente:
class Users { private static var numInstances:Number = 0; function Users() { numInstances++; } static function get instances():Number { return numInstances; } }

194

Elementos del lenguaje ActionScript

Cree un documento FLA o AS en el mismo directorio e introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
trace(Users.instances); var user1:Users = new Users(); trace(Users.instances); var user2:Users = new Users(); trace(Users.instances);

Vase tambin
Sentencia private

Sentencia super
super.method([arg1, ..., argN]) super([arg1, ..., argN])

El primer estilo de sintaxis puede utilizarse en el cuerpo de un mtodo de objeto para invocar la versin de superclase de un mtodo y puede pasar opcionalmente parmetros (arg1 ... argN) al mtodo de superclase. Esto resulta til para crear mtodos de subclase que aaden un comportamiento adicional a los mtodos de superclase a la vez que invocan los mtodos de superclase para que ejecuten su comportamiento original. El segundo estilo de sintaxis puede utilizarse en el cuerpo de una funcin constructora para invocar la versin de superclase de la funcin constructora y, opcionalmente, puede pasarle parmetros. Esto resulta til para crear una subclase que ejecute una inicializacin adicional y que adems invoque el constructor de superclase para que inicialice la superclase. Valor devuelto En ambos casos se invoca una funcin. La funcin puede devolver cualquier valor. Parmetros
method:Function

- Mtodo que se invocar en la superclase.

argN - Parmetros opcionales que se pasan a la versin de superclase del mtodo (sintaxis 1) o a la funcin constructora de la superclase (sintaxis 2).

Sentencias

195

Sentencia switch
switch (expression){caseClause: [defaultClause:] }

Crea una estructura ramificada para sentencias de ActionScript. Al igual que la sentencia if, la sentencia switch prueba una condicin y ejecuta sentencias si la condicin devuelve un valor true. Todas las sentencias switch deberan incluir un caso predeterminado. El caso predeterminado debera incluir una sentencia break para evitar un error de paso al siguiente caso si se aade posteriormente otro caso. Cuando se pasa al siguiente caso, no se incluye una sentencia break. Parmetros
expression

- Cualquier expresin.

Ejemplo En el ejemplo siguiente, si el parmetro String.fromCharCode(Key.getAscii()) da como resultado A, se ejecuta la sentencia trace() que sigue a case "A"; si el parmetro da como resultado a, se ejecuta la sentencia trace() que sigue a case "a" y as sucesivamente. Si ninguna expresin case coincide con el parmetro String.fromCharCode(Key.getAscii()), se ejecuta la sentencia trace() que sigue a la palabra clave default.
var listenerObj:Object = new Object(); listenerObj.onKeyDown = function() { switch (String.fromCharCode(Key.getAscii())) { case "A" : trace("you pressed A"); break; case "a" : trace("you pressed a"); break; case "E" : case "e" : trace("you pressed E or e"); break; case "I" : case "i" : trace("you pressed I or i"); break; default : trace("you pressed some other key"); break; } }; Key.addListener(listenerObj);

196

Elementos del lenguaje ActionScript

Vase tambin
Operador igualdad estricta (===)

Sentencia throw
throw expression

Genera o emite un error que puede controlarse o capturarse mediante un bloque de cdigo catch{}. Si un bloque catch no captura una excepcin, la representacin de cadena del valor emitido se enva al panel Salida. Normalmente, se emiten instancias de la clase Error o de sus subclases (vase el apartado Ejemplo). Parmetros
expression:Object

Expresin u objeto de ActionScript.

Ejemplo En este ejemplo, una funcin llamada checkEmail() comprueba si la cadena que se le pasa es una direccin de correo electrnico con el formato adecuado. Si la cadena no contiene un smbolo @, la funcin emite un error.
function checkEmail(email:String) { if (email.indexOf("@") == -1) { throw new Error("Invalid email address"); } } checkEmail("someuser_theirdomain.com");

El cdigo siguiente llama a continuacin a la funcin checkEmail() dentro de un bloque de cdigo try. Si email_txt no contiene una direccin de correo electrnico vlida, el mensaje de error aparece en un campo de texto error_txt.
try { checkEmail("Joe Smith"); } catch (e) { error_txt.text = e.toString(); }

En el ejemplo siguiente se emite una subclase de la clase Error. La funcin checkEmail() se modifica para emitir una instancia de esa subclase.
// Define InvalidEmailError de la subclase Error // En InvalidEmailError.as: class InvalidEmailAddress extends Error { var message = "Invalid email address."; }

Sentencias

197

En un archivo FLA o AS, introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
import InvalidEmailAddress; function checkEmail(email:String) { if (email.indexOf("@") == -1) { throw new InvalidEmailAddress(); } } try { checkEmail("Joe Smith"); } catch (e) { this.createTextField("error_txt", this.getNextHighestDepth(), 0, 0, 100, 22); error_txt.autoSize = true; error_txt.text = e.toString(); }

Vase tambin
Error

Sentencia try..catch..finally
try {// ... bloque try ... } finally { // ... bloque finally ... } try {// ... bloque try ... } catch(error [:ErrorType1]) // ... bloque catch ... } [catch(error[:ErrorTypeN]) { // ... bloque catch ... }] [finally { // ... bloque finally ... }]

Incluya un bloque de cdigo en el que puede producirse un error y, a continuacin, responda al error. Si alguna parte del cdigo del bloque try genera un error (mediante la sentencia throw), el control pasa al bloque catch, si existe uno, y a continuacin al bloque de cdigo finally, si existe uno. El bloque finally se ejecuta siempre, independientemente de que se haya emitido o no un error. Si el cdigo del bloque try no emite un error (es decir, si el bloque try se completa con normalidad), contina ejecutndose el cdigo en el bloque finally. El bloque finally se ejecuta aunque el bloque try finalice con una sentencia return. Un bloque try debe ir seguido de un bloque catch, un bloque finally, o ambos. Un nico bloque try puede tener varios bloques catch pero slo un bloque finally bloque. Puede anidar los bloques try tantos niveles como desee.

198

Elementos del lenguaje ActionScript

El parmetro error especificado en un controlador catch debe ser un identificador sencillo, como e, theException o x. Tambin puede escribirse la variable en un controlador catch. Cuando se utilizan con varios bloques catch, los errores clasificados por tipos permiten capturar varios tipos de errores emitidos desde un solo bloque try. Si la excepcin emitida es un objeto, el tipo coincidir si el objeto emitido es una subclase del tipo especificado. Si se emite un error de un tipo especfico, se ejecuta el bloque catch que controla el error correspondiente. Si se emite una excepcin que no es del tipo especificado, el bloque catch no se ejecuta y la excepcin se enva automticamente fuera del bloque try a un controlador catch coincidente. Si se emite un error en una funcin y sta no incluye un controlador catch, el intrprete de ActionScript abandona esta funcin y cualquier otra que realice llamadas hasta que encuentra un bloque catch. Durante este proceso, se realizan llamadas a controladores finally en todos los niveles. Parmetros
error:Object - Expresin emitida desde una sentencia throw, normalmente una instancia de

la clase Error o una de sus subclases. Ejemplo El ejemplo siguiente muestra cmo crear una sentencia try..finally. Dado que la ejecucin del cdigo del bloque finally est garantizada, suele emplearse para realizar la limpieza necesaria despus de que se ejecuta un bloque try. En el ejemplo siguiente, setInterval() llama a una funcin cada 1.000 milisegundos (1 segundo). Si se produce un error, se emitir dicho error y ser recogido por el bloque catch. El bloque finally siempre se ejecuta, tanto si se produce un error como si no. Dado que se utiliza setInterval(), debe situarse clearInterval() en el bloque finally para garantizar que el intervalo se borra de la memoria.
myFunction = function () { trace("this is myFunction"); }; try { myInterval = setInterval(this, "myFunction", 1000); throw new Error("my error"); } catch (myError:Error) { trace("error caught: "+myError); } finally { clearInterval(myInterval); trace("error is cleared"); }

Sentencias

199

En el ejemplo siguiente, el bloque finally se utiliza para eliminar un objeto ActionScript, independientemente de que se haya producido un error o no. Cree un archivo AS nuevo llamado Account.as.
class Account { var balance:Number = 1000; function getAccountInfo():Number { return (Math.round(Math.random() * 10) % 2); } }

Cree un documento AS o FLA en el mismo directorio que Account.as e introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
import Account; var account:Account = new Account(); try { var returnVal = account.getAccountInfo(); if (returnVal != 0) { throw new Error("Error getting account information."); } } finally { if (account != null) { delete account; } }

El ejemplo siguiente demuestra una sentencia try..catch. Se ejecutar el cdigo que se encuentra dentro del bloque try. Si un cdigo del bloque try emite una excepcin, el control pasar al bloque catch, que mostrar el mensaje de error en un campo de texto utilizando el mtodo Error.toString(). Cree un documento FLA en el mismo directorio que Account.as e introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
import Account; var account:Account = new Account(); try { var returnVal = account.getAccountInfo(); if (returnVal != 0) { throw new Error("Error getting account information."); } trace("success"); } catch (e) { this.createTextField("status_txt", this.getNextHighestDepth(), 0, 0, 100, 22); status_txt.autoSize = true; status_txt.text = e.toString(); }

200

Elementos del lenguaje ActionScript

El ejemplo siguiente muestra un bloque de cdigo try con mltiples bloques de cdigo catch clasificados. Segn el tipo de error que se haya producido, el bloque de cdigo try emite un tipo de objeto distinto. En este caso, myRecordSet es una instancia de una clase (hipottica) llamada RecordSet cuyo mtodo sortRows() puede emitir dos tipos de errores, RecordSetException y MalformedRecord. En el ejemplo siguiente, los objetos RecordSetException y MalformedRecord son subclases de la clase Error. Cada uno se define en su propio archivo de clase AS.
// En RecordSetException.as: class RecordSetException extends Error { var message = "Record set exception occurred."; } // En MalformedRecord.as: class MalformedRecord extends Error { var message = "Malformed record exception occurred."; }

En el mtodo sortRows() de la clase RecordSet se emite uno de los objetos de error definidos anteriormente, segn el tipo de excepcin que se haya producido. El ejemplo siguiente muestra qu aspecto puede tener este cdigo:
class RecordSet { function sortRows() { var returnVal:Number = randomNum(); if (returnVal == 1) { throw new RecordSetException(); } else if (returnVal == 2) { throw new MalformedRecord(); } } function randomNum():Number { return Math.round(Math.random() * 10) % 3; } }

Por ltimo, en otro archivo AS o script FLA, el cdigo siguiente invoca el mtodo sortRows() en una instancia de la clase RecordSet. Define bloques catch para cada tipo de error que emite sortRows().
import RecordSet; var myRecordSet:RecordSet = new RecordSet(); try { myRecordSet.sortRows(); trace("everything is fine"); } catch (e:RecordSetException) { trace(e.toString()); }

Sentencias

201

catch (e:MalformedRecord) { trace(e.toString()); }

Vase tambin
Error

Sentencia var
var variableName [= value1][...,variableNameN[=valueN]]

Se utiliza para declarar variables locales. Si declara variables en una funcin, las variables son locales. Se definen para la funcin y caducan al finalizar la llamada a la funcin. En concreto, una variable definida mediante var es local en el bloque de cdigo que la contiene. Los bloques de cdigo se delimitan mediante llaves ({}). Si declara variables fuera de una funcin, las variables estarn disponibles en toda la lnea de tiempo que contiene la sentencia. No puede declarar como variable local una variable incluida en el mbito de otro objeto.
my_array.length = 25; // correcto var my_array.length = 25; // error de sintaxis

Cuando utilice var, puede aplicar "strict data typing" a la variable. Puede declarar mltiples variables en una sentencia, separando las declaraciones con comas (si bien esta sintaxis puede reducir la claridad del cdigo):
var first:String = "Bart", middle:String = "J.", last:String = "Bartleby";

Nota: debe utilizar adems var cuando declare propiedades en definiciones de clase en scripts externos. Los archivos de clase tambin son compatibles con los mbitos de variables pblicas, privadas y estticas. Parmetros
variableName:String

- Un identificador.

Ejemplo El cdigo ActionScript siguiente crea una matriz nueva de nombres de producto. Array.push aade un elemento al final de la matriz.. Si desea utilizar "strict data typing", es fundamental que utilice la palabra clave var. Sin var delante de product_array, obtendr errores cuando intente utilizar "strict data typing".
var product_array:Array = new Array("MX 2004", "Studio", "Dreamweaver", "Flash", "ColdFusion", "Contribute", "Breeze"); product_array.push("Flex");

202

Elementos del lenguaje ActionScript

trace(product_array); // salida: MX 2004,Studio,Dreamweaver,Flash,ColdFusion,Contribute,Breeze,Flex

Sentencia while
while(condition) { statement(s); }

Evala una condicin y, si sta da como resultado true, ejecuta una sentencia o serie de sentencias antes de volver a ejecutar el bucle para evaluar la condicin nuevamente. Despus de que la condicin d como resultado false, se omite la sentencia o serie de sentencias y finaliza el bucle. La sentencia while ejecuta la siguiente serie de pasos. Cada repeticin de pasos del 1 al 4 se denomina repeticin del bucle. Al principio de cada repeticin se vuelve a probar la condicin condition, tal y como se muestra en los siguientes pasos:

Se evala la expresin condition. Si condition da como resultado true o un valor que se convierte en el valor booleano true, por ejemplo, un nmero distinto de cero, vaya al paso 3. De lo contrario, se completa la sentencia while y se reanuda la ejecucin en la sentencia que hay a continuacin del bucle while. Ejecute el bloque de sentencias statement(s). Vaya al paso 1.

La reproduccin indefinida suele utilizarse para ejecutar una accin mientras la variable de contador sea inferior al valor especificado. Al final de cada bucle se incrementa el contador hasta que se alcanza el valor especificado. En dicho punto, condition ya no es true y finaliza el bucle. Las llaves ({}) que se utilizan para incluir el bloque de sentencias que se ejecutarn con la sentencia while no son necesarias si slo se va a ejecutar una sentencia. Parmetros
condition:Boolean

- Expresin que da como resultado true o false.

Ejemplo En el ejemplo siguiente, la sentencia while se utiliza para comprobar una expresin. Cuando el valor de i es menor que 20, se realizar un seguimiento de dicho valor (i). Cuando la condicin deja de ser true, se bucle finaliza.
var i:Number = 0; while (i<20) { trace(i);

Sentencias

203

i += 3; }

El resultado siguiente se muestra en el panel Salida.


0 3 6 9 12 15 18

Vase tambin
Sentencia continue

Sentencia with
with (object:Object) { statement(s); }

Permite especificar un objeto (como un clip de pelcula) con el parmetro object y evaluar expresiones y acciones en dicho objeto con el parmetro statement(s). De esta forma, evitar tener que escribir una y otra vez el nombre del objeto o la ruta de acceso al objeto. El parmetro object se convierte en el contexto en el que se leen las propiedades, variables y funciones del parmetro statement(s). Por ejemplo, si object es my_array, y dos de las propiedades especificadas son length y concat, dichas propiedades se leen automticamente como my_array.length y my_array.concat. En otro ejemplo, si object es state.california, se llama a todas las acciones o sentencias dentro de la sentencia with incluidas desde dentro de la instancia california. Para buscar el valor de un identificador en el parmetro statement(s), ActionScript empieza al principio de la cadena de mbito especificada por object y busca el identificador en cada nivel de la cadena de mbito, en un orden especfico. La cadena de mbito que utiliza la sentencia with para dirigirse a los identificadores empieza con el primer elemento de la siguiente lista y contina hasta el ltimo elemento:

El objeto especificado en el parmetro object en la sentencia with ms interior. El objeto especificado en el parmetro object en la sentencia with ms interior. El objeto Activation (un objeto temporal que se crea automticamente cuando se llama a una funcin que contiene las variables locales a las que se llama en la funcin). El clip de pelcula que contiene el script que se est ejecutando. El objeto Global (objetos incorporados como Math y String).

204

Elementos del lenguaje ActionScript

Para establecer una variable dentro de una sentencia with, debe haber declarado la variable fuera de la sentencia with o debe introducir la ruta de acceso completa a la lnea de tiempo en la que desea incluir la variable. Si establece una variable en una sentencia with sin declararla, la sentencia with buscar el valor segn la cadena de mbito. Si la variable no existe ya, se establecer el nuevo valor en la lnea de tiempo desde la que se ha llamado a la sentencia with. En lugar de utilizar with(), puede utilizar rutas directas. Si cree que es incmodo escribir las largas rutas de acceso, puede crear una variable local y almacenar la ruta en la variable, que a continuacin puede reutilizar en el cdigo, tal y como ocurre en el siguiente cdigo ActionScript:
var shortcut = this._parent._parent.name_txt; shortcut.text = "Hank"; shortcut.autoSize = true;

Parmetros
object:Object

- Una instancia de un objeto o clip de pelcula de ActionScript.

Ejemplo El ejemplo siguiente establece las propiedades _x e _y de la instancia someOther_mc y, a continuacin, indica a someOther_mc que pase al fotograma 3 y se detenga.
with (someOther_mc) { _x = 50; _y = 100; gotoAndStop(3); }

El fragmento de cdigo siguiente muestra cmo escribir el cdigo anterior sin utilizar una sentencia with.
someOther_mc._x = 50; someOther_mc._y = 100; someOther_mc.gotoAndStop(3);

La sentencia with resulta til para acceder a mltiples elementos de una lista de cadena de mbito simultneamente. En el ejemplo siguiente, el objeto Math incorporado se sita delante de la cadena de mbito. El establecimiento de Math como objeto predeterminado resuelve los identificadores cos, sin y PI en Math.cos, Math.sin y Math.PI, respectivamente. Los identificadores a, x, y y r no son mtodos ni propiedades del objeto Math, pero dado que existen en el mbito de activacin de objetos de la funcin polar(), se resuelven en las variables locales correspondientes.
function polar(r:Number):Void { var a:Number, x:Number, y:Number; with (Math) { a = PI * pow(r, 2); x = r * cos(PI);

Sentencias

205

y = r * sin(PI / 2); } trace("area = " + a); trace("x = " + x); trace("y = " + y); } polar(3);

El resultado siguiente se muestra en el panel Salida.


area = 28.2743338823081 x = -3 y = 3

Comandos fscommand2
Los siguientes comandos estn disponibles para la funcin fscommand2(). Si desea obtener una descripcin de la funcin fscommand2(), consulte Funcin fscommand2 en "Funciones globales". fscommand2, comandos
Comando
tion FullScreen

Descripcin
especificado. Establece el tamao del rea de visualizacin que se utilizar para la representacin. Devuelve el nivel actual de la batera. Establece un parmetro que identifica el dispositivo en el que se ejecuta Flash Lite. Establece un parmetro que representa el identificador exclusivo del dispositivo (por ejemplo, el nmero de serie). Flash Lite.

ExtendBacklightDura Ampla la duracin de la retroiluminacin durante un periodo de tiempo

GetBatteryLevel GetDevice

GetDeviceID

GetFreePlayerMemory Devuelve la cantidad de memoria Heap (en kilobytes) disponible en

GetMaxBatteryLevel GetMaxSignalLevel

Devuelve el nivel mximo de la batera del dispositivo. Devuelve el nivel mximo de intensidad de seal como un valor numrico. Devuelve el nivel mximo de volumen del dispositivo como un valor numrico.

GetMaxVolumeLevel

GetNetworkConnectio Devuelve el nombre de la conexin de red activa o predeterminada. nName

206

Elementos del lenguaje ActionScript

Comando
atus

Descripcin

GetNetworkConnectSt Devuelve un valor que indica el estado de la conexin de red activa.

GetNetworkGeneration Devuelve la generacin de la red inalmbrica mvil actual (por

ejemplo, redes mviles 2G o de segunda generacin).


GetNetworkName

Establece un parmetro para el nombre de la red actual. reciente. Devuelve un valor que indica el estado de la red del telfono (es decir, si existe una red registrada y si el telfono se encuentra actualmente en itinerancia). Establece un parmetro que identifica la plataforma actual, que describe en trminos generales la clase del dispositivo. Devuelve un valor que indica si la fuente de alimentacin se obtiene de una batera o de una fuente externa. Devuelve la intensidad de seal actual como un valor numrico. Devuelve un valor que indica la ubicacin de las teclas programables en el dispositivo. Flash Lite.

GetNetworkRequestSt Devuelve un valor que indica el estado de la solicitud HTTP ms atus GetNetworkStatus

GetPlatform

GetPowerSource

GetSignalLevel GetSoftKeyLocation

GetTotalPlayerMemory Devuelve la cantidad total de memoria Heap (en kilobytes), asignada a

GetVolumeLevel

Devuelve el nivel de volumen actual del dispositivo como un valor numrico. Provoca que el reproductor Flash Lite detenga la reproduccin y se cierre. Restablece las teclas programables en su configuracin original. Establece el color del rectngulo de seleccin en cualquier color. Especifica el modo en que debera abrirse el campo de texto de introduccin. Reasigna las teclas programables de un dispositivo mvil. Inicia la funcin de vibracin del telfono. Detiene la vibracin, si sta se estaba produciendo.

Quit

ResetSoftKeys SetFocusRectColor SetInputTextType

SetSoftKeys StartVibrate StopVibrate

Comandos fscommand2

207

Comando fscommand2 ExtendBacklightDuration


ExtendBacklightDuration

Ampla la duracin de la retroiluminacin durante un periodo de tiempo especificado. Si la duracin es mayor que cero, este comando especifica la cantidad de tiempo en segundos (con un mximo de 60 segundos) que deber mantenerse la retroiluminacin. Si este periodo de tiempo transcurre sin ninguna llamada adicional a este comando, el comportamiento de la retroiluminacin volver a la duracin predeterminada. Si la duracin es igual a cero, el comportamiento de la retroiluminacin vuelve inmediatamente al comportamiento predeterminado. Nota: esta funcin depende del sistema. Por ejemplo, algunos sistemas limitan la duracin total a la que se puede ampliar la retroiluminacin. Nota: este comando no se admite en dispositivos BREW.
Comando Parmetros Valor devuelto
-1: no se admite 0: se ha producido un error y no ha sido posible completar la operacin. 1: correcto

ExtendBacklightDuration duration Duracin de retroiluminacin, en segundos. Valor mximo de 60 segundos.

Ejemplo En el siguiente ejemplo, la duracin de la retroiluminacin se ampla durante 45 segundos:


status = FSCommand2("ExtendBacklightDuration", 45)

Comando fscommand2 FullScreen


FullScreen

Establece el tamao del rea de visualizacin que se utilizar para la representacin. El tamao puede ser una variable definida o un valor constante de cadena, con uno de los valores siguientes: true (pantalla completa) o false (inferior a pantalla completa). Cualquier otro valor se trata como false. Nota: este comando slo se admite si Flash Lite se ejecuta en modo independiente. No est admitido si el reproductor se ejecuta en el contexto de otra aplicacin (por ejemplo, como complemento de un navegador).
Comando
FullScreen

Parmetros
size

Valor devuelto
-1: no se admite. 0: se admite.

208

Elementos del lenguaje ActionScript

Ejemplo En el siguiente ejemplo se define el tamao del rea de visualizacin en pantalla completa:
status = fscommand2("FullScreen", true);

Comando fscommand2 GetBatteryLevel


GetBatteryLevel

Devuelve el nivel actual de la batera. Se trata de un valor numrico entre 0 y el mximo valor devuelto por la variable GetMaxBatteryLevel. Nota: este comando no se admite en dispositivos BREW.
Comando
GetBatteryLevel

Parmetros
Ninguno.

Valor devuelto
-1: no se admite. Otros valores numricos: nivel actual de la batera.

Ejemplo En el siguiente ejemplo, la variable battLevel se establece en el nivel actual de la batera:


battLevel = fscommand2("GetBatteryLevel");

Comando fscommand2 GetDevice


GetDevice

Establece un parmetro que identifica el dispositivo en el que se ejecuta Flash Lite. Este identificador suele ser el nombre del modelo.
Comando
GetDevice

Parmetros

Valor devuelto

device Cadena que recibe -1: no se admite. 0: se admite. el identificador del dispositivo. Puede ser el nombre de una variable o un valor de la cadena que contiene el nombre de una variable.

Comandos fscommand2

209

Ejemplo El ejemplo siguiente asigna el identificador de dispositivo a la variable device:


status = fscommand2("GetDevice", "device");

A continuacin se incluyen algunos resultados de muestra y los dispositivos a los que hacen referencia: Telfono Mitsubishi 506i. DFOMA1 Telfono Mitsubishi FOMA1. F506i Telfono Fujitsu 506i. FFOMA1 Telfono Fujitsu FOMA1. N506i Telfono NEC 506i. NFOMA1 Telfono NEC FOMA1. Nokia3650 Telfono Nokia 3650. p506i Telfono Panasonic 506i. PFOMA1 Telfono Panasonic FOMA1. SH506i Telfono Sharp 506i. SHFOMA1 Telfono Sharp FOMA1. SO506i Telfono Sony 506i.
D506i

Comando fscommand2 GetDeviceID


GetDeviceID

Establece un parmetro que representa el identificador exclusivo del dispositivo (por ejemplo, el nmero de serie).
Comando
GetDeviceID

Parmetros

Valor devuelto

-1: no se admite. id Cadena que recibe el identificador exclusivo del 0: se admite. dispositivo. Puede ser el nombre de una variable o un valor de la cadena que contiene el nombre de una variable.

Ejemplo El ejemplo siguiente asigna el identificador exclusivo a la variable deviceID:


status = fscommand2("GetDeviceID", "deviceID");

Comando fscommand2 GetFreePlayerMemory


GetFreePlayerMemory

Devuelve la cantidad de memoria Heap (en kilobytes) disponible en Flash Lite.


Comando
GetFreePlayerMemory

Parmetros
Ninguno

Valor devuelto
-1: no se admite. 0 o valor positivo: kilobytes disponibles de memoria Heap.

210

Elementos del lenguaje ActionScript

Ejemplo El siguiente ejemplo establece el estado igual que la cantidad de memoria libre:
status = fscommand2("GetFreePlayerMemory");

Comando fscommand2 GetMaxBatteryLevel


GetMaxBatteryLevel

Devuelve el nivel mximo de la batera del dispositivo. Se trata de un valor numrico mayor que 0. Nota: este comando no se admite en dispositivos BREW.
Comando
GetMaxBatteryLevel

Parmetros
Ninguno

Valor devuelto
-1: no se admite. Otros valores: nivel mximo de la batera.

Ejemplo El siguiente ejemplo establece la variable maxBatt en el nivel mximo de la batera:


maxBatt = fscommand2("GetMaxBatteryLevel");

Comando fscommand2 GetMaxSignalLevel


GetMaxSignalLevel

Devuelve el nivel mximo de intensidad de seal como un valor numrico. Nota: este comando no se admite en dispositivos BREW.
Comando
GetMaxSignalLevel

Parmetros
Ninguno

Valor devuelto
-1: no se admite. Otros valores numricos: nivel mximo de la seal.

Ejemplo El ejemplo siguiente asigna la intensidad mxima de la seal a la variable sigStrengthMax:


sigStrengthMax = fscommand2("GetMaxSignalLevel");

Comandos fscommand2

211

Comando fscommand2 GetMaxVolumeLevel


GetMaxVolumeLevel

Devuelve el nivel mximo de volumen del dispositivo como un valor numrico.


Comando
GetMaxVolumeLevel

Parmetros
Ninguno

Valor devuelto
-1: no se admite. Otros valores: nivel mximo de volumen.

Ejemplo En el siguiente ejemplo, la variable maxvolume se establece en el nivel mximo de volumen del dispositivo:
maxvolume = fscommand2("GetMaxVolumeLevel"); trace (maxvolume); // salida: 80

Comando fscommand2 GetNetworkConnectionName


GetNetworkConnectionName

Devuelve el nombre de la conexin de red activa o predeterminada. Para telfonos mviles, esta conexin tambin recibe el nombre de punto de acceso. Nota: este comando no se admite en dispositivos BREW.
Comando Parmetros Valor devuelto
-1: no se admite. 0: correcto: devuelve el nombre de la

GetNetworkConnection Ninguno Name

conexin de red activa.


1: correcto: devuelve el nombre de la

conexin de red predeterminada.


2: No se puede recuperar el nombre de

la conexin

Ejemplo En el siguiente ejemplo se devuelve el nombre de la conexin de red activa o predeterminada en el argumento myConnectionName:
status = FSCommand2("GetNetworkConnectionName", "myConnectionName");

212

Elementos del lenguaje ActionScript

Comando fscommand2 GetNetworkConnectStatus


GetNetworkConnectStatus

Devuelve un valor que indica el estado de la conexin de red activa. Nota: este comando no se admite en dispositivos BREW.
Comando
GetNetworkConnect Status

Parmetros Valor devuelto


Ninguno
-1: no se admite. 0: actualmente hay una conexin de red activa. 1: el dispositivo est intentando conectarse a la red. 2: actualmente no hay ninguna conexin de red

activa.
3: la conexin de red est suspendida. 4: no se puede determinar la conexin de red.

Ejemplo En el siguiente ejemplo, se asigna un estado de conexin de red a la variable connectstatus y, a continuacin, se utiliza una sentencia switch para actualizar un campo de texto con el estado de la conexin:
connectstatus = FSCommand2("GetNetworkConnectStatus"); switch (connectstatus) { connectstatus = FSCommand2("GetNetworkConnectStatus"); switch (connectstatus) { connectstatus = FSCommand2("GetNetworkConnectStatus"); switch (connectstatus) { case -1 : _root.myText += "connectstatus not supported" + "\n"; break; case 0 : _root.myText += "connectstatus shows active connection" + "\n"; break; case 1 : _root.myText += "connectstatus shows attempting connection" + "\n"; break; case 2 : _root.myText += "connectstatus shows no connection" + "\n"; break; case 3 : _root.myText += "connectstatus shows suspended connection" + "\n"; break; case 4 : _root.myText += "connectstatus shows indeterminable state" + "\n"; break; }

Comandos fscommand2

213

Comando fscommand2 GetNetworkGeneration


GetNetworkGeneration

Devuelve la generacin de la red inalmbrica mvil actual (por ejemplo, redes mviles 2G o de segunda generacin).
Comando
GetNetworkGeneration

Parmetros
Ninguno

Valor devuelto
-1: no se admite. 0: Generacin de red inalmbrica mvil

desconocida
1: 2G 2: 2.5G 3: 3G

Ejemplo En el siguiente ejemplo se muestra la sintaxis para devolver la generacin de la red:


status = fscommand2("GetNetworkGeneration");

Comando fscommand2 GetNetworkName


GetNetworkName

Establece un parmetro para el nombre de la red actual. Nota: este comando no se admite en dispositivos BREW.
Comando
GetNetworkName

Parmetros
networkName Cadena que representa el nombre de la red. Puede ser el nombre de una variable o un valor de la cadena que contiene el nombre de una variable. Si la red est registrada y se puede determinar su nombre, networkname se establece en el nombre de la red; de lo contrario, se establece en una cadena vaca.

Valor devuelto
-1: no se admite.
0: no hay ninguna red

registrada.
1: la red est

registrada, pero se ignora su nombre. 2: la red est registrada y se conoce su nombre.

Ejemplo En el siguiente ejemplo se asigna el nombre de la red actual al parmetro myNetName y un valor de estado a la variable netNameStatus:
netNameStatus = fscommand2("GetNetworkName", myNetName);

214

Elementos del lenguaje ActionScript

Comando fscommand2 GetNetworkRequestStatus


GetNetworkRequestStatus

Devuelve un valor que indica el estado de la solicitud HTTP ms reciente. Nota: este comando no se admite en dispositivos BREW.
Comando Parmetros Valor devuelto
-1: el comando no se admite. 0: existe una solicitud pendiente, se ha

GetNetworkRequestStatus Ninguno

establecido una conexin de red, el nombre del host del servidor se ha resuelto y se ha realizado una conexin con el servidor. 1: existe una solicitud pendiente y se est estableciendo una conexin de red. 2: existe una solicitud pendiente pero an no se ha establecido una conexin de red. 3: existe una solicitud pendiente, se ha establecido una conexin de red y el nombre del host del servidor se est resolviendo. 4: la solicitud ha fallado debido a un error de red. 5: la solicitud ha fallado debido a un fallo de conexin con el servidor. 6: el servidor ha devuelto un error HTTP (por ejemplo, 404). 7: la solicitud ha fallado debido a un fallo al acceder al servidor DNS o al resolver el nombre del servidor. 8: La solicitud se ha realizado correctamente. 9: la solicitud ha fallado porque se agot el tiempo de espera. 10: la solicitud no se ha realizado todava.

Ejemplo En el siguiente ejemplo, se asigna el estado de la solicitud HTTP ms reciente a la variable requesttatus y, a continuacin, se utiliza una sentencia switch para actualizar un campo de texto con el estado:
requeststatus = fscommand2("GetNetworkRequestStatus"); switch (requeststatus) { case -1 : _root.myText += "requeststatus not supported" + "\n"; break; case 0 : _root.myText += "connection to server has been made" + "\n"; break;

Comandos fscommand2

215

case 1 : _root.myText break; case 2 : _root.myText break; case 3 : _root.myText break; case 4 : _root.myText break; case 5 : _root.myText break; case 6 : _root.myText break; case 7 : _root.myText break; case 8 : _root.myText break; case 9 : _root.myText break; case 10 : _root.myText break; }

+= "connection is being established" + "\n";

+= "pending request, contacting network" + "\n";

+= "pending request, resolving domain" + "\n";

+= "failed, network error" + "\n";

+= "failed, couldn't reach server" + "\n";

+= "HTTP error" + "\n";

+= "DNS failure" + "\n";

+= "request has been fulfilled" + "\n";

+= "request timedout" + "\n";

+= "no HTTP request has been made" + "\n";

Comando fscommand2 GetNetworkStatus


GetNetworkStatus

Devuelve un valor que indica el estado de la red del telfono (es decir, si existe una red registrada y si el telfono se encuentra actualmente en itinerancia).
Comando
GetNetworkStatus

Parmetros
Ninguno

Valor devuelto
-1: el comando no se admite. 0: ninguna red registrada. 1: en red original. 2: en red original ampliada. 3: itinerancia (lejos de la red principal).

216

Elementos del lenguaje ActionScript

Ejemplo En el siguiente ejemplo, se asigna un estado de conexin de red a la variable networkstatus y, a continuacin, se utiliza una sentencia switch para actualizar un campo de texto con el estado:
networkstatus = fscommand2("GetNetworkStatus"); switch(networkstatus) { case -1 : _root.myText += "network status not supported" + "\n"; break; case 0 : _root.myText += "no network registered" + "\n"; break; case 1 : _root.myText += "on home network" + "\n"; break; case 2 : _root.myText += "on extended home network" + "\n"; break; case 3 : _root.myText += "roaming" + "\n"; break; }

Comando fscommand2 GetPlatform


GetPlatform

Establece un parmetro que identifica la plataforma actual, que describe en trminos generales la clase del dispositivo. Para dispositivos con sistemas operativos abiertos, este identificador suele coincidir con el nombre y la versin del sistema operativo.
Comando
GetPlatform

Parmetros
platform Cadena que

Valor devuelto

-1: no se admite. recibe el identificador de la 0: se admite. plataforma.

Ejemplo En el siguiente ejemplo se define el parmetro platform en el identificador para la plataforma actual:
status = fscommand2("GetPlatform", "platform");

En los ejemplos siguientes se muestran algunos resultados de muestra para platform:


506i Telfono 506i. FOMA1 Telfono FOMA1. Symbian6.1_s60.1 Telfono Symbian 6.1, de

la serie 60 y versin 1. Symbian7.0 Telfono Symbian 7.0.

Comandos fscommand2

217

Comando fscommand2 GetPowerSource


GetPowerSource

Devuelve un valor que indica si la fuente de alimentacin se obtiene de una batera o de una fuente externa. Nota: este comando no se admite en dispositivos BREW.
Comando
GetPowerSource

Parmetros
Ninguno

Valor devuelto
-1: no se admite. 0: el dispositivo funciona gracias a una

batera.
1: el dispositivo funciona gracias a una

fuente de alimentacin externa.

Ejemplo En el siguiente ejemplo, se establece la variable myPower para indicar la fuente de alimentacin o se establece en -1 si no ha sido posible conseguirlo:
myPower = fscommand2("GetPowerSource");

Comando fscommand2 GetSignalLevel


GetSignalLevel

Devuelve la intensidad de seal actual como un valor numrico. Nota: este comando no se admite en dispositivos BREW.
Comando
GetSignalLevel

Parmetros
Ninguno

Valor devuelto
-1: no se admite. Otros valores numricos: nivel de seal actual, entre 0 y el mximo valor devuelto por GetMaxSignalLevel.

Ejemplo El ejemplo siguiente asigna el valor del nivel de la seal a la variable sigLevel:
sigLevel = fscommand2("GetSignalLevel");

218

Elementos del lenguaje ActionScript

Comando fscommand2 GetSoftKeyLocation


GetSoftKeyLocation

Devuelve un valor que indica la ubicacin de las teclas programables en el dispositivo.


Comando
GetSoftKeyLocation

Parmetros
Ninguno

Valor devuelto
-1: no se admite. 0: teclas programables arriba. 1: teclas programables a la izquierda. 2: teclas programables abajo. 3: teclas programables a la derecha.

Ejemplo El siguiente ejemplo establece la variable status para indicar la ubicacin de las teclas programables o en -1 si las teclas programables no son compatibles con el dispositivo:
status = fscommand2("GetSoftKeyLocation");

Comando fscommand2 GetTotalPlayerMemory


GetTotalPlayerMemory

Devuelve la cantidad total de memoria Heap (en kilobytes), asignada a Flash Lite.
Comando
GetTotalPlayerMemory

Parmetros
Ninguno

Valor devuelto
-1: no se admite. 0 o un valor positivo: kilobytes totales

de memoria Heap.

Ejemplo En el siguiente ejemplo, se establece la variable status en la cantidad total de memoria Heap:
status = fscommand2("GetTotalPlayerMemory");

Comandos fscommand2

219

Comando fscommand2 GetVolumeLevel


GetVolumeLevel

Devuelve el nivel de volumen actual del dispositivo como un valor numrico.


Comando
GetVolumeLevel

Parmetros
Ninguno

Valor devuelto
-1: no se admite. Otros valores numricos: nivel de volumen actual, entre 0 y el valor devuelto por fscommand2("GetMaxVolumeLevel").

Ejemplo El ejemplo siguiente asigna el nivel actual del volumen a la variable volume:
volume = fscommand2("GetVolumeLevel"); trace (volume); // salida: 50

Comando fscommand2 Quit


Quit

Provoca que el reproductor Flash Lite detenga la reproduccin y se cierre. Este comando slo se admite si Flash Lite se ejecuta en modo independiente. No est admitido si el reproductor se ejecuta en el contexto de otra aplicacin (por ejemplo, como complemento de un navegador).
Comando
Quit

Parmetros
Ninguno

Valor devuelto
-1: no se admite.

Ejemplo El siguiente ejemplo provoca que Flash Lite detenga la reproduccin y se cierre si se ejecuta en modo independiente:
status = fscommand2("Quit");

220

Elementos del lenguaje ActionScript

Comando fscommand2 ResetSoftKeys


ResetSoftKeys

Restablece las teclas programables en su configuracin original. Este comando slo se admite si Flash Lite se ejecuta en modo independiente. No est admitido si el reproductor se ejecuta en el contexto de otra aplicacin (por ejemplo, como complemento de un navegador).
Comando
ResetSoftKeys

Parmetros
Ninguno

Valor devuelto
-1: no se admite.

Ejemplo La siguiente sentencia restablece las teclas programables en su configuracin original.


status = fscommand2("ResetSoftKeys");

Comando fscommand2 SetFocusRectColor


SetFocusRectColor

Establece el color del rectngulo de seleccin en cualquier color. El rango de valores admitidos para rojo, verde y azul es 0-255. En Flash, no se puede cambiar el color predeterminado del rectngulo de seleccin, que es amarillo.
Comando
SetFocusRectColor

Parmetros
Ninguno

Valor devuelto
-1: no se admite. 0: no se puede determinar 1: correcto

Ejemplo La siguiente sentencia restablece el color del rectngulo de seleccin:


status = fscommand2("SetFocusRectColor, <red>, <green>, <blue>);

Comandos fscommand2

221

Comando fscommand2 SetInputTextType


SetInputTextType

Especifica el modo en que debera abrirse el campo de texto de introduccin. Flash Lite admite la funcin de introduccin de texto solicitando a la aplicacin host que inicie la interfaz de introduccin de texto especfica del dispositivo genrico, que suele recibir el nombre de procesador principal (FEP). Si no se utiliza el comando SetInputTextType, el FEP se abre en modo predeterminado.
Comando
SetInputTextType

Parmetros
variableName Nombre del campo de

Valor devuelto

0: fallido. 1: correcto. introduccin de texto. Puede ser el nombre de una variable o un valor de la cadena que contiene el nombre de una variable. Nota: el nombre de la variable del campo de texto no es el mismo que el de la instancia. Puede especificar un nombre de variable del campo de texto en el cuadro de texto Var del inspector de propiedades, o bien mediante ActionScript. Por ejemplo, el siguiente cdigo restringe la introduccin a caracteres numricos para la instancia del campo de texto (numTxt) cuyo nombre de variable asociado es "numTxt_var".

var numTxt:TextField;numTxt.variable = "numTxt_var";fscommand2("SetInputTextT ype", "numTxt_var", "Numeric");

type Uno de los valores Numeric, Alpha, Alphanumeric, Latin, NonLatin, o bien NoRestriction.

222

Elementos del lenguaje ActionScript

En la siguiente tabla se muestra el efecto que tiene cada modo y qu modos se sustituyen:
Modo InputTextType
Numeric Alfa Alphanumeric Latin

Establece el FEP en uno de estos modos que se excluyen entre s


Slo nmeros (del 0 al 9) Slo caracteres alfabticos (A-Z o a-z)

Si no se admite en el dispositivo actual, abre el FEP en este modo


Alphanumeric Alphanumeric

Slo caracteres alfanumricos Latin (del 0 al 9, A-Z o a-z) Slo caracteres latinos (alfanumricos y signos de puntuacin) NoRestriction

NonLatin NoRestriction

Slo caracteres no latinos (por NoRestriction ejemplo, kanji y kana) Modo predeterminado (no establece restriccin alguna en el FEP) N/D

NOTA: no todos los telfonos mviles admiten estos tipos de campos de introduccin de texto. Por este motivo, se deben validar los datos de texto introducidos.

Ejemplo En la siguiente lnea de cdigo se establece el tipo de texto introducido del campo asociado a la variable input1 para recibir datos numricos:
status = fscommand2("SetInputTextType", "input1", "Numeric");

Comando fscommand2 SetSoftKeys


SetSoftKeys

Reasigna las teclas programables de un dispositivo mvil. Cuando el usuario pulsa una tecla programable, se ejecuta cualquier cdigo de ActionScript asociado al evento de la tecla programable. El reproductor Flash ejecuta esta funcin de forma inmediata cuando se invoca. Este comando slo se admite si Flash Lite se ejecuta en modo independiente. No est admitido si el reproductor se ejecuta en el contexto de otra aplicacin (por ejemplo, como complemento de un navegador).

Comandos fscommand2

223

Para conseguir compatibilidad retroactiva con Flash Lite 1.1, la tecla programable SOFT1 siempre se asigna a la tecla izquierda del telfono y la tecla programable SOFT2 siempre se asigna a la tecla derecha. Para la tecla programable SOFT3 y superiores, la ubicacin depende de cada telfono. Los argumentos para este comando especifican el texto que se mostrar en cada tecla programable. Cuando se ejecuta el comando SetSoftKeys, al pulsar la tecla izquierda se genera un evento de pulsacin de tecla SOFT1 y, al pulsar la tecla derecha, se genera un evento de pulsacin de tecla SOFT2. Al pulsar las teclas programables SOFT3 a SOFT12 se generan sus respectivos eventos. Nota: la reasignacin de teclas programables depende de cada dispositivo mvil. Pngase en contacto con el fabricante del dispositivo para verificar si se admite la reasignacin de las teclas programables.
Comando
SetSoftKeys

Parmetros

Valor devuelto

soft1 Texto que se muestra -1: no se admite. para la tecla programable 0: se admite. SOFT1. soft2 Texto que se muestra para la tecla programable SOFT2. Estos parmetros o bien son nombres de variables o valores de cadenas constantes (por ejemplo, "Previous").

Ejemplo En el siguiente ejemplo se etiquetan las teclas programables SOFT1 ("Anterior") y SOFT2 ("Siguiente"):
status = fscommand2("SetSoftKeys", "Previous", "Next");

Se pueden definir variables o utilizar valores de cadenas constantes para cada tecla programable:
status = fscommand2("SetSoftKeys", soft1, soft2, [soft3], [soft4], ..., [softn])

224

Elementos del lenguaje ActionScript

Nota: se puede definir una tecla programable sin necesidad de definir el resto. Los ejemplos siguientes muestran la sintaxis y el comportamiento que implica definir una tecla programable concreta sin que esto afecte al resto de las teclas:

Para establecer la etiqueta de la tecla programable izquierda en "soft1" y dejar la derecha vaca:
status = fscommand2("SetSoftKeys", "soft1", "")

Para dejar la etiqueta de la tecla programable izquierda tal como est y establecer la derecha en "soft2":
status = fscommand2("SetSoftKeys", undefined, "soft2")

Para dejar la etiqueta de la tecla programable izquierda tal como est y establecer la derecha en "soft2":
status = fscommand2("SetSoftKeys", null, "soft2")

Para establecer la etiqueta de la tecla programable izquierda en "soft1" y dejar la derecha tal como est:
status = fscommand2("SetSoftKeys", "soft1")

Comando fscommand2 StartVibrate


StartVibrate

Inicia la funcin de vibracin del telfono. Si ya est activada la vibracin, Flash Lite la detiene antes de iniciar una nueva. La vibracin tambin se detiene cuando se detiene (total o temporalmente) la aplicacin Flash, as como cuando se cierra el reproductor Flash Lite.
Comando
StartVibrate

Parmetros
time_on Cantidad de tiempo, en milisegundos (hasta un mximo de 5 segundos), en que la vibracin est activada. time_off Cantidad de tiempo, en milisegundos (hasta un mximo de 5 segundos), en que la vibracin est desactivada. repeat Nmero de veces (mximo de 3) que se repite la vibracin.

Valor devuelto
-1: no se admite. 0: la vibracin se ha iniciado. 1: se ha producido un error y

no ha sido posible iniciar la vibracin.

Comandos fscommand2

225

Ejemplo El siguiente ejemplo intenta iniciar una secuencia de activacin de vibracin de 2,5 segundos y desactivacin de 1 segundo dos veces. Asigna un valor a la variable status que indica la ejecucin correcta o fallida:
fscommand2("StartVibrate", 2500, 1000, 2);

Comando fscommand2 StopVibrate


StopVibrate

Detiene la vibracin, si sta se estaba produciendo.


Comando
StopVibrate

Parmetros
Ninguno

Valor devuelto
-1: no se admite. 0: la vibracin se ha detenido.

Ejemplo El siguiente ejemplo llama a StopVibrate y guarda el resultado (no se admite o la vibracin se ha detenido) en la variable status:
status = fscommand2("StopVibrate");

226

Elementos del lenguaje ActionScript

CAPTULO 2

Clases de ActionScript
La documentacin de clases de ActionScript incluye sintaxis, informacin de uso y ejemplos de cdigo de mtodos, propiedades y controladores y detectores de eventos que pertenecen a una clase especfica en ActionScript (frente a las funciones y propiedades globales). Las clases se muestran alfabticamente. Si tiene dudas sobre la clase a la que pertenece un mtodo o propiedad, puede buscarla en el ndice.

arguments
Object | +-arguments public class arguments extends Object

Un objeto arguments se utiliza para almacenar y acceder a argumentos de funcin. Desde dentro del cuerpo de funcin se puede acceder a l con la variable arguments local.
arguments[0],

Los argumentos se almacenan como elementos de matriz, al primero se accede como al segundo como arguments[1], etc. La propiedad arguments.length indica el nmero de argumentos que se pasan a la funcin. Observe que puede haber diferencia entre el nmero de argumentos que se pasan y los que declara la funcin. Vase tambin

Function

227

Resumen de propiedades
Modificadores Propiedad
callee:Object caller:Object

Descripcin
Una referencia a la funcin que se est ejecutando. Una referencia a la funcin que llam a la funcin que se est ejecutando o null si no se llam desde otra funcin. El nmero de argumentos que se pasan a la funcin.

length:Number

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de mtodos Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

callee (propiedad arguments.callee)


public callee : Object

Una referencia a la funcin que se est ejecutando. Vase tambin


caller (propiedad arguments.caller)

caller (propiedad arguments.caller)


public caller : Object

Una referencia a la funcin que llam a la funcin que se est ejecutando o null si no se llam desde otra funcin.

228

Clases de ActionScript

Vase tambin
callee (propiedad arguments.callee)

length (propiedad arguments.length)


public length : Number

El nmero de argumentos que se pasan a la funcin. Puede ser ms o menos el que declara la funcin.

Array
Object | +-Array public dynamic class Array extends Object

La clase Array le permite obtener acceso a matrices indexadas y manipularlas. Una matriz indexada es un objeto cuyas propiedades se identifican mediante un nmero que representa su posicin en la matriz. Este nmero se conoce como ndice. Todas las matrices indexadas estn basadas en cero, lo que significa que el primer elemento de la matriz es [0], el segundo elemento, [1], y as sucesivamente. Para crear un objeto Array, deber utilizar el constructor new Array(). Para obtener acceso a elementos de una matriz, utilice el operador de acceso a matriz ([]). Puede almacenar una amplia variedad de tipos de datos en un elemento de matriz, incluidos nmeros, cadenas, objetos e incluso otras matrices. Puede crear una matriz multidimensional creando una matriz indexada y asignando a cada uno de sus elementos una matriz indexada distinta. Una matriz de este tipo se considera multidimensional porque puede emplearse para representar datos en una tabla. La asignacin de matriz se hace por referencia en lugar de por valor: cuando se asigna una variable de matriz a otra variable de matriz, ambas hacen referencia a la misma matriz:
var oneArray:Array = new Array("a", "b", "c"); var twoArray:Array = oneArray; // Las dos variables de matriz hacen referencia a la misma matriz. twoArray[0] = "z"; trace(oneArray); // Salida: z,b,c.

Array

229

No se debe utilizar la clase Array para crear matriz asociativas, que son estructuras de datos distintas que contienen elementos con nombre en lugar de elementos numerados. Deber emplear el objeto Object para crear matrices asociativas (tambin llamadas hashes). Si bien ActionScript permite crear matrices asociativas empleando la clase Array, no es posible utilizar ninguno de los mtodos o las propiedades de la clase Array. En el fondo, una matriz asociativa es una instancia de la clase Object y cada par clave-valor se representa mediante una propiedad y su valor. Otra razn para declarar una matriz asociativa como tipo Object es que permite utilizar un literal de objeto para llenar la matriz asociativa (pero slo en el momento en que se declara). El ejemplo siguiente crea una matriz asociativa utilizando un literal de objeto, accede a los elementos empleando el operador de punto y el operador de acceso a matriz y, a continuacin, aade un nuevo par clave-valor creando una propiedad nueva:
var myAssocArray:Object = {fname:"John", lname:"Public"}; trace(myAssocArray.fname); // Salida: John trace(myAssocArray["lname"]); // Salida: Public myAssocArray.initial = "Q"; trace(myAssocArray.initial); // Salida: Q

Ejemplo En el ejemplo siguiente, my_array contiene cuatro meses del ao:


var my_array:Array = new Array(); my_array[0] = "January"; my_array[1] = "February"; my_array[2] = "March"; my_array[3] = "April";

Resumen de propiedades
Modificadores Propiedad
static er static DESCENDING:Number

Descripcin
maysculas y minsculas. Representa una ordenacin en orden descendente. Entero no negativo que especifica el nmero de elementos de la matriz. Representa una ordenacin numrica en lugar de una ordenacin basada en cadenas. indexada como resultado de llamar al mtodo sort() o sortOn(). Representa el requisito de ordenacin exclusiva.

CASEINSENSITIVE:Numb Representa una ordenacin sin distincin entre

length:Number

static

NUMERIC:Number

static

RETURNINDEXEDARRAY:N Representa la opcin para devolver una matriz umber

static

UNIQUESORT:Number

230

Clases de ActionScript

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de constructores
Firma
Array([value:Object])

Descripcin
Permite crear una matriz.

Resumen de mtodos
Modificadores Firma
ct]) : Array

Descripcin
parmetros con los elementos de una matriz y crea una matriz nueva. cadenas, inserta el separador especificado entre los elementos, los concatena y devuelve la cadena resultante. Elimina el ltimo elemento de una matriz y devuelve el valor de dicho elemento. matriz y devuelve la nueva longitud de la matriz. Invierte la colocacin de la matriz. Elimina el primer elemento de una matriz y devuelve dicho elemento. rango de elementos de la matriz original sin

concat([value:Obje Concatena los elementos especificados en los

join([delimiter:St Convierte los elementos de una matriz en ring]) : String

pop() : Object

push(value:Object) Aade uno o varios elementos al final de una : Number reverse() : Void shift() : Object

slice([startIndex: Devuelve una matriz nueva que consta de un Number], : Array sort([compareFunct Ordena los elementos de una matriz. ion:Object], [options:Number]) : Array [endIndex:Number]) modificar la matriz original.

Array

231

Modificadores

Firma
bject, [options:Object]) : Array

Descripcin
varios campos de la matriz.

sortOn(fieldName:O Ordena los elementos de una matriz por uno o

splice(startIndex: Aade y elimina elementos de una matriz. Number, [deleteCount:Numbe r], [value:Object]) : Array toString() : String

Devuelve un valor de cadena que representa los elementos del objeto Array especificado. matriz y devuelve la nueva longitud de la matriz.

unshift(value:Obje Aade uno o varios elementos al comienzo de una ct) : Number

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

Constructor Array
public Array([value:Object])

Permite crear una matriz. Puede utilizar el constructor para crear diferentes tipos de matrices: una matriz vaca, una matriz con una longitud especfica pero cuyos elementos tengan valores no definidos o una matriz cuyos elementos tengan valores especficos. Sintaxis 1: Si no especifica ningn parmetro, se crear una matriz con una longitud de 0. Sintaxis 2: Si especifica slo una longitud, se crear una matriz con el nmero de elementos length. El valor de cada elemento se establece como undefined. Sintaxis 3: Si utiliza los parmetros element para especificar los valores, se crear una matriz con valores especficos.

232

Clases de ActionScript

Parmetros
value:Object

[opcional] - Uno de los siguientes valores:

Un entero que especifica el nmero de elementos de la matriz. Una lista de dos o ms valores arbitrarios. Los valores pueden ser de tipo Boolean, Number, String, Object o Array. El primer elemento de una matriz siempre tiene un ndice o una posicin de 0.

Nota:si slo se pasa un parmetro numrico al constructor Array, se asumir que es length y se convertir a un entero empleando la funcin Integer(). Ejemplo Sintaxis 1: El ejemplo siguiente crea un objeto Array nuevo con una longitud inicial de 0:
var my_array:Array = new Array(); trace(my_array.length); // Rastrea 0.

Sintaxis 2: El ejemplo siguiente crea un objeto Array nuevo con una longitud inicial de 4:
var my_array:Array = new Array(4); trace(my_array.length); // Devuelve 4. trace(my_array[0]); // Devuelve undefined. if (my_array[0] == undefined) { // Sin comillas que cierren undefined. trace("undefined is a special value, not a string"); } // Rastrea: undefined is a special value, not a string.

Sintaxis 3: El ejemplo siguiente crea el objeto Array nuevo go_gos_array con una longitud inicial de 5:
var go_gos_array:Array = new Array("Belinda", "Gina", "Kathy", "Charlotte", "Jane"); trace(go_gos_array.length); // Devuelve 5. trace(go_gos_array.join(", ")); // Muestra elementos.

Los elementos iniciales de la matriz go_gos_array estn identificados, como se muestra en el ejemplo siguiente:
go_gos_array[0] go_gos_array[1] go_gos_array[2] go_gos_array[3] go_gos_array[4] = = = = = "Belinda"; "Gina"; "Kathy"; "Charlotte"; "Jane";

El cdigo siguiente aade un sexto elemento a la matriz go_gos_array y cambia el segundo elemento:
go_gos_array[5] = "Donna"; go_gos_array[1] = "Nina" trace(go_gos_array.join(" + ")); // Devuelve Belinda + Nina + Kathy + Charlotte + Jane + Donna.

Array

233

Vase tambin
Operador acceso a matriz ([]), length (propiedad Array.length)

CASEINSENSITIVE (propiedad Array.CASEINSENSITIVE)


public static CASEINSENSITIVE : Number

Representa una ordenacin sin distincin entre maysculas y minsculas. Puede utilizar esta constante para el parmetro options en el mtodo sort() o sortOn(). El valor de esta constante es 1. Vase tambin
sort (mtodo Array.sort), sortOn (mtodo Array.sortOn)

concat (mtodo Array.concat)


public concat([value:Object]) : Array

Concatena los elementos especificados en los parmetros con los elementos de una matriz y crea una matriz nueva. Si los parmetros de value especifican una matriz, se concatenarn los elementos de dicha matriz en lugar de la propia matriz. La matriz my_array permanece sin cambios. Parmetros
value:Object

[opcional] - Nmeros, elementos o cadenas que se van a concatenar en una matriz nueva. Si no se pasa ningn valor, se crear un duplicado de my_array.

Valor devuelto
Array - Una matriz que contiene los elementos de esta matriz seguidos de los elementos de los

parmetros. Ejemplo El cdigo siguiente concatena dos matrices:


var alpha_array:Array = new Array("a","b","c"); var numeric_array:Array = new Array(1,2,3); var alphaNumeric_array:Array =alpha_array.concat(numeric_array); trace(alphaNumeric_array); // Crea la matriz [a,b,c,1,2,3].

234

Clases de ActionScript

El cdigo siguiente concatena tres matrices:


var num1_array:Array = [1,3,5]; var num2_array:Array = [2,4,6]; var num3_array:Array = [7,8,9]; var nums_array:Array=num1_array.concat(num2_array,num3_array) trace(nums_array); // Crea la matriz [1,3,5,2,4,6,7,8,9].

Las matrices anidadas no se alisan de la misma forma que las matrices normales. Los elementos de una matriz anidada no se dividen en elementos separados en la matriz x_array, como se muestra en el ejemplo siguiente:
var a_array:Array = new Array ("a","b","c"); // 2 y 3 son elementos de una matriz anidada. var n_array:Array = new Array(1, [2, 3], 4); var x_array:Array = a_array.concat(n_array); trace(x_array[0]); // a trace(x_array[1]); // b trace(x_array[2]); // c trace(x_array[3]); // 1 trace(x_array[4]); // 2, 3 trace(x_array[5]); // 4

DESCENDING (propiedad Array.DESCENDING)


public static DESCENDING : Number

Representa una ordenacin en orden descendente. Puede utilizar esta constante para el parmetro options en el mtodo sort() o sortOn(). El valor de esta constante es 2. Vase tambin
sort (mtodo Array.sort), sortOn (mtodo Array.sortOn)

join (mtodo Array.join)


public join([delimiter:String]) : String

Convierte los elementos de una matriz en cadenas, inserta el separador especificado entre los elementos, los concatena y devuelve la cadena resultante. Una matriz anidada siempre va separada por una coma (,), no por el separador pasado al mtodo join().

Array

235

Parmetros
delimiter:String [opcional] - Un carcter o una cadena que separa los elementos de matriz en la cadena devuelta. Si omite este parmetro, se utilizar una coma (,) como separador predeterminado.

Valor devuelto
String

- Una cadena.

Ejemplo El ejemplo siguiente crea una matriz con tres elementos: Earth, Moon y Sun. A continuacin une la matriz tres veces: la primera, utilizando el separador predeterminado (una coma [,] y un espacio), luego empleando un guin (-) y, por ltimo, con el signo ms (+).
var a_array:Array = new Array("Earth","Moon","Sun") trace(a_array.join()); // Muestra Earth,Moon,Sun. trace(a_array.join(" - ")); // Muestra Earth - Moon - Sun. trace(a_array.join(" + ")); // Muestra Earth + Moon + Sun.

El ejemplo siguiente crea una matriz anidada que contiene dos matrices. La primera matriz tiene tres elementos: Europa, Io y Callisto. La segunda matriz tiene dos elementos: Titan y Rhea. Une la matriz con el signo ms (+), pero los elementos dentro de cada matriz anidada permanecen separados por comas (,).
var a_nested_array:Array = new Array(["Europa", "Io", "Callisto"], ["Titan", "Rhea"]); trace(a_nested_array.join(" + ")); // Devuelve Europa,Io,Callisto + Titan,Rhea.

Vase tambin
split (mtodo String.split)

length (propiedad Array.length)


public length : Number

Entero no negativo que especifica el nmero de elementos de la matriz. Esta propiedad se actualiza automticamente cuando se aaden nuevos elementos a la matriz. Cuando se asigna un valor a un elemento de matriz (por ejemplo, my_array[index] = value), si index es un nmero e index+1 es mayor que la propiedad length, esta propiedad length se actualizar a index+1.

236

Clases de ActionScript

Nota: si asigna un valor a la propiedad length inferior a la longitud existente, la matriz se truncar. Ejemplo El cdigo siguiente explica cmo se actualiza la propiedad length. La longitud inicial es 0 y luego se actualiza a 1, 2 y 10. Si asigna una valor a la propiedad length inferior a la longitud existente, la matriz se truncar:
var my_array:Array = new Array(); trace(my_array.length); // la longitud inicial es 0 my_array[0] = "a"; trace(my_array.length); // my_array.length se actualiza a 1 my_array[1] = "b"; trace(my_array.length); // my_array.length se actualiza a 2 my_array[9] = "c"; trace(my_array.length); // my_array.length se actualiza a 10 trace(my_array); // muestra: // a,b,undefined,undefined,undefined,undefined,undefined,undefined,undefine d,c // si la propiedad length se establece ahora en 5, la matriz se truncar my_array.length = 5; trace(my_array.length); // my_array.length se actualiza a 5 trace(my_array); // produce el resultado: a,b,undefined,undefined,undefined

NUMERIC (propiedad Array.NUMERIC)


public static NUMERIC : Number

Representa una ordenacin numrica en lugar de una ordenacin basada en cadenas. La ordenacin basada en cadenas, que es la configuracin predeterminada, trata los nmeros como cadenas al ordenarlos. Por ejemplo, la ordenacin basada en cadenas coloca un 10 por delante de un 3. Una ordenacin numrica trata los elementos como nmeros, por lo que el 3 ira delante del 10. Se puede utilizar esta constante para el parmetro options en el mtodo sort() o sortOn(). El valor de esta constante es 16. Vase tambin
sort (mtodo Array.sort), sortOn (mtodo Array.sortOn)

Array

237

pop (mtodo Array.pop)


public pop() : Object

Elimina el ltimo elemento de una matriz y devuelve el valor de dicho elemento. Valor devuelto
Object

- El valor del ltimo elemento de la matriz especificada.

Ejemplo El cdigo siguiente crea la matriz myPets_array que contiene cuatro elementos y, a continuacin, elimina su ltimo elemento:
var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); var popped:Object = myPets_array.pop(); trace(popped); // Muestra fish. trace(myPets_array); // Muestra cat,dog,bird.

Vase tambin
push (mtodo Array.push), shift (mtodo Array.shift), unshift (mtodo Array.unshift)

push (mtodo Array.push)


public push(value:Object) : Number

Aade uno o varios elementos al final de una matriz y devuelve la nueva longitud de la matriz. Parmetros
value:Object

- Uno o ms valores que se aadirn a la matriz.

Valor devuelto
Number

- Un entero que representa la longitud de la nueva matriz.

Ejemplo El ejemplo siguiente crea una matriz myPets_array con dos elementos definidos: cat y dog. La segunda lnea aade dos elementos a la matriz. Dado que el mtodo push() devuelve la nueva longitud de la matriz, la sentencia trace() de la ltima lnea enva la nueva longitud de myPets_array (4) al panel Salida.
var myPets_array:Array = new Array("cat", "dog"); var pushed:Number = myPets_array.push("bird", "fish"); trace(pushed); // Muestra 4.

238

Clases de ActionScript

Vase tambin
pop (mtodo Array.pop), shift (mtodo Array.shift), unshift (mtodo Array.unshift)

RETURNINDEXEDARRAY (propiedad Array.RETURNINDEXEDARRAY)


public static RETURNINDEXEDARRAY : Number

Representa la opcin para devolver una matriz indexada como resultado de llamar al mtodo sort() o sortOn(). Puede utilizar esta constante para el parmetro options en el mtodo sort() o sortOn(). Proporciona funciones de vista previa o copia al devolver una matriz que representa los resultados de la ordenacin y deja la matriz original sin modificar. El valor de esta constante es 8. Vase tambin
sort (mtodo Array.sort), sortOn (mtodo Array.sortOn)

reverse (mtodo Array.reverse)


public reverse() : Void

Invierte la colocacin de la matriz. Ejemplo El ejemplo siguiente utiliza este mtodo para invertir la matriz numbers_array:
var numbers_array:Array = new Array(1, 2, 3, 4, 5, 6); trace(numbers_array); // Muestra 1,2,3,4,5,6. numbers_array.reverse(); trace(numbers_array); // Muestra 6,5,4,3,2,1.

shift (mtodo Array.shift)


public shift() : Object

Elimina el primer elemento de una matriz y devuelve dicho elemento. Valor devuelto
Object

- El primer elemento de una matriz.

Array

239

Ejemplo El cdigo siguiente crea la matriz myPets_array y, a continuacin, elimina el primer elemento de la matriz y lo asigna a la variable shifted:
var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); var shifted:Object = myPets_array.shift(); trace(shifted); // Muestra "cat". trace(myPets_array); // Muestra dog,bird,fish.

Vase tambin
pop (mtodo Array.pop), push (mtodo Array.push), unshift (mtodo Array.unshift)

slice (mtodo Array.slice)


public slice([startIndex:Number], [endIndex:Number]) : Array

Devuelve una matriz nueva que consta de un rango de elementos de la matriz original sin modificar la matriz original. La matriz devuelta incluye el elemento startIndex y todos los elementos hasta endIndex, sin incluir ste. Si no se pasa ningn parmetro, se crear un duplicado de la matriz original. Parmetros
startIndex:Number [opcional] - Un nmero que especifica el ndice del punto inicial para la divisin. Si start es un nmero negativo, el punto inicial comenzar al final de la matriz, donde -1 es el ltimo elemento.

[opcional] - Un nmero que especifica el ndice del punto final para la divisin. Si omite este parmetro, la divisin incluir todos los elementos desde el punto inicial hasta el final de la matriz. Si end es un nmero negativo, el punto final se especificar desde el final de la matriz, donde -1 es el ltimo elemento.
endIndex:Number

Valor devuelto
Array

- Una matriz que consta de un rango de elementos de la matriz original.

Ejemplo El ejemplo siguiente crea una matriz de cinco mascotas y utiliza slice() para llenar una nueva matriz que slo contiene las mascotas con cuatro patas:
var myPets_array:Array = new Array("cat", "dog", "fish", "canary", "parrot"); var myFourLeggedPets_array:Array = new Array(); var myFourLeggedPets_array = myPets_array.slice(0, 2);

240

Clases de ActionScript

trace(myFourLeggedPets_array); // Devuelve cat,dog. trace(myPets_array); // Devuelve cat,dog,fish,canary,parrot.

El ejemplo siguiente crea una matriz de cinco mascotas y, a continuacin, utiliza slice() con un parmetro start negativo para copiar los dos ltimos elementos de la matriz:
var myPets_array:Array = new Array("cat", "dog", "fish", "canary", "parrot"); var myFlyingPets_array:Array = myPets_array.slice(-2); trace(myFlyingPets_array); // Rastrea canary,parrot.

El ejemplo siguiente crea una matriz de cinco mascotas y utiliza slice() con un parmetro end negativo para copiar el elemento central de la matriz:
var myPets_array:Array = new Array("cat", "dog", "fish", "canary", "parrot"); var myAquaticPets_array:Array = myPets_array.slice(2,-2); trace(myAquaticPets_array); // Devuelve fish.

sort (mtodo Array.sort)


public sort([compareFunction:Object], [options:Number]) : Array

Ordena los elementos de una matriz. Flash ordena por valores Unicode. (ASCII es un subconjunto de Unicode.) De manera predeterminada, Array sort() funciona de la forma descrita en la siguiente lista:

La ordenacin distingue entre maysculas y minsculas (Z precede a a). La ordenacin es ascendente (a precede a b). La matriz se modifica para reflejar el orden de clasificacin; los elementos que tengan campos de ordenacin idnticos se sitan consecutivamente en la matriz ordenada sin seguir ningn orden especfico. Los campos numricos se ordenan como si fueran cadenas, de manera que 100 precede a 99, dado que "1" es un valor de cadena inferior a "9".

Si desea ordenar una matriz utilizando valores que se desvan de los predeterminados, puede utilizar una de las opciones de ordenacin que se describen en la entrada del parmetro options o puede crear una funcin personalizada para realizar la ordenacin. Si crea una funcin personalizada, podr utilizarla llamando al mtodo sort(), con el nombre de dicha funcin como primer parmetro (compareFunction).

Array

241

Parmetros
compareFunction:Object

[opcional] - Una funcin de comparacin utilizada para determinar el orden de los elementos de una matriz. Dados los elementos A y B, el resultado de compareFunction puede tener uno de los tres valores siguientes: -1, si A debe aparecer antes que B en la secuencia ordenada 0, si A es igual a B 1, si A debe aparecer despus que B en la secuencia ordenada

options:Number [opcional] - Uno o ms nmeros o nombres de constantes definidas, separados por el operador | (OR en modo bit), que cambian el comportamiento de la ordenacin respecto al valor predeterminado. Estos son los valores vlidos del parmetro options:

Array.CASEINSENSITIVE Array.DESCENDING Array.UNIQUESORT

o1

o2 o4 o8

Array.RETURNINDEXEDARRAY Array.NUMERIC

o 16

Para ms informacin sobre este parmetro, consulte el mtodo Array.sortOn(). Nota:Array.sort() se define en ECMA-262, pero las opciones de ordenacin de matrices introducidas en Flash Player 7 son extensiones especficas de Flash para la especificacin ECMA-262. Valor devuelto
Array - El valor devuelto depende de si pasa algn parmetro, como se describe en la siguiente

lista:

Si especifica el valor 4 o Array.UNIQUESORT para el parmetro options y dos o ms elementos ordenados tienen campos de ordenacin idnticos, Flash devolver el valor 0 y no modificar la matriz. Si especifica el valor 8 o Array.RETURNINDEXEDARRAY para el parmetro options, Flash devolver una matriz que reflejar los resultados de la ordenacin y no modificar la matriz. En cualquier otro caso, Flash no devuelve nada y modifica la matriz de manera que refleje el orden de clasificacin.

242

Clases de ActionScript

Ejemplo Sintaxis 1: En ejemplo siguiente muestra el uso de Array.sort() con y sin un valor pasado para options:
var fruits_array:Array = new Array("oranges", "apples", "strawberries", "pineapples", "cherries"); trace(fruits_array); // Muestra oranges,apples,strawberries,pineapples,cherries. fruits_array.sort(); trace(fruits_array); // Muestra apples,cherries,oranges,pineapples,strawberries. trace(fruits_array); // Escribe apples,cherries,oranges,pineapples,strawberries. fruits_array.sort(Array.DESCENDING); trace(fruits_array); // Muestra strawberries,pineapples,oranges,cherries,apples. trace(fruits_array); // Escribe strawberries,pineapples,oranges,cherries,apples.

Sintaxis 2: El ejemplo siguiente utiliza Array.sort() con una funcin compare: Las entradas se ordenan en el formato nombre:contrasea Ordene utilizando como criterio la parte del nombre solamente:
var passwords_array:Array = new Array("mom:glam", "ana:ring", "jay:mag", "anne:home", "regina:silly"); function order(a, b):Number { var name1:String = a.split(":")[0]; var name2:String = b.split(":")[0]; if (name1<name2) { return -1; } else if (name1>name2) { return 1; } else { return 0; } } trace("Unsorted:"); //Muestra Unsorted: trace(passwords_array); //Muestra mom:glam,ana:ring,jay:mag,anne:home,regina:silly. //Escribe mom:glam,ana:ring,jay:mag,anne:home,regina:silly passwords_array.sort(order); trace("Sorted:"); //Muestra Sorted: trace(passwords_array); //Muestra ana:ring,anne:home,jay:mag,mom:glam,regina:silly. //Escribe ana:ring,anne:home,jay:mag,mom:glam,regina:silly.

Vase tambin
Operador OR en modo bit (|), sortOn (mtodo Array.sortOn)

Array

243

sortOn (mtodo Array.sortOn)


public sortOn(fieldName:Object, [options:Object]) : Array

Ordena los elementos de una matriz por uno o varios campos de la matriz. La matriz debe tener las siguientes caractersticas:

La matriz es indexada, no asociativa. Cada elemento de la matriz contiene un objeto con una o varias propiedades. Todos los objetos tienen al menos una propiedad en comn, cuyos valores pueden emplearse para ordenar la matriz. Esa propiedad se denomina campo.

Si pasa varios parmetros fieldName, el primer campo representar al campo de ordenacin principal, el segundo representar al siguiente campo de ordenacin, etc. Flash ordena por valores Unicode. (ASCII es un subconjunto de Unicode.) Si uno de los elementos que se estn comparando no contiene el campo especificado en el parmetro fieldName, se dar por hecho que el campo no est definido (undefined) y los elementos se colocarn consecutivamente en la matriz ordenada sin seguir ningn orden determinado. De manera predeterminada, Array sortOn() funciona de la forma descrita en la siguiente lista:

La ordenacin distingue entre maysculas y minsculas (Z precede a a). La ordenacin es ascendente (a precede a b). La matriz se modifica para reflejar el orden de clasificacin; los elementos que tengan campos de ordenacin idnticos se sitan consecutivamente en la matriz ordenada sin seguir ningn orden especfico. Los campos numricos se ordenan como si fueran cadenas, de manera que 100 precede a 99, dado que "1" es un valor de cadena inferior a "9".

Se puede utilizar el parmetro options para sustituir el comportamiento de ordenacin predeterminado. Si quiere ordenar una matriz sencilla (por ejemplo, una matriz con un solo campo) o si desea especificar un orden de clasificacin que el parmetro options no admite, utilice Array.sort(). Para pasar varios indicadores, seprelos con el operador OR en modo de bit (|):
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);

244

Clases de ActionScript

Parmetros
fieldName:Object - Una cadena que identifica un campo que se va a utilizar como valor de ordenacin, o una matriz en la cual el primer elemento representa el campo de ordenacin principal, el segundo representa el campo de ordenacin secundario, etc.

[opcional] - Uno o ms nmeros o nombres de constantes definidas, separados por el operador | (OR en modo bit), que cambian el comportamiento de la ordenacin. Estos son los valores vlidos del parmetro options:
options:Object

Array.CASEINSENSITIVE Array.DESCENDING Array.UNIQUESORT

o1

o2 o4 o8

Array.RETURNINDEXEDARRAY Array.NUMERIC

o 16

Las sugerencias estn activadas si se utiliza la forma de cadena del indicador (por ejemplo, DESCENDING) en lugar de su forma numrica (2). Valor devuelto
Array - El valor devuelto depende de si pasa algn parmetro, como se describe en la siguiente

lista:

Si especifica el valor 4 o Array.UNIQUESORT para el parmetro options y dos o ms elementos ordenados tienen campos de ordenacin idnticos, Flash devolver el valor 0 y no modificar la matriz. Si especifica el valor 8 o Array.RETURNINDEXEDARRAY para el parmetro options, Flash devolver una matriz que reflejar los resultados de la ordenacin y no modificar la matriz. En cualquier otro caso, Flash no devuelve nada y modifica la matriz de manera que refleje el orden de clasificacin.

Ejemplo El ejemplo siguiente crea una matriz nueva y la ordena de acuerdo con los campos name y city. La primera ordenacin utiliza name como primer valor de ordenacin y city como segundo. La segunda ordenacin utiliza city como primer valor de ordenacin y name como segundo.
var rec_array:Array = rec_array.push({name: rec_array.push({name: rec_array.push({name: new Array(); "john", city: "omaha", zip: 68144}); "john", city: "kansas city", zip: 72345}); "bob", city: "omaha", zip: 94010});

Array

245

for(i=0; i<rec_array.length; i++){ trace(rec_array[i].name + ", " + rec_array[i].city); } // Resultados: // john, omaha // john, kansas city // bob, omaha rec_array.sortOn(["name", "city"]); for(i=0; i<rec_array.length; i++){ trace(rec_array[i].name + ", " + rec_array[i].city); } // Resultados: // bob, omaha // john, kansas city // john, omaha rec_array.sortOn(["city", "name" ]); for(i=0; i<rec_array.length; i++){ trace(rec_array[i].name + ", " + rec_array[i].city); } // Resultados: // john, kansas city // bob, omaha // john, omaha

La matriz de objetos siguiente se utiliza en los ejemplos restantes, que muestran cmo utilizar el parmetro options:
var my_array:Array = new my_array.push({password: my_array.push({password: my_array.push({password: my_array.push({password: Array(); "Bob", age:29}); "abcd", age:3}); "barb", age:35}); "catchy", age:4});

La ordenacin predeterminada por el campo password produce el siguiente resultado:


my_array.sortOn("password"); // Bob // abcd // barb // catchy

La ordenacin con distincin entre maysculas y minsculas por el campo password produce el siguiente resultado:
my_array.sortOn("password", Array.CASEINSENSITIVE); // abcd // barb // Bob // catchy

246

Clases de ActionScript

La ordenacin con distincin entre maysculas y minsculas en orden descendente por el campo password produce el siguiente resultado:
my_array.sortOn("password", Array.CASEINSENSITIVE | Array.DESCENDING); // catchy // Bob // barb // abcd

La ordenacin predeterminada por el campo age produce el siguiente resultado:


my_array.sortOn("age"); // 29 // 3 // 35 // 4

La ordenacin numrica por el campo age produce el siguiente resultado:


my_array.sortOn("age", Array.NUMERIC); // my_array[0].age = 3 // my_array[1].age = 4 // my_array[2].age = 29 // my_array[3].age = 35

La ordenacin numrica descendente por el campo age produce el siguiente resultado:


my_array.sortOn("age", Array.DESCENDING | Array.NUMERIC); // my_array[0].age = 35 // my_array[1].age = 29 // my_array[2].age = 4 // my_array[3].age = 3

Cuando utilice la opcin de ordenacin Array.RETURNEDINDEXARRAY, deber asignar el valor devuelto a otra matriz. La matriz original no se modifica.
var indexArray:Array = my_array.sortOn("age", Array.RETURNINDEXEDARRAY);

Vase tambin
Operador OR en modo bit (|), sort (mtodo Array.sort)

Array

247

splice (mtodo Array.splice)


public splice(startIndex:Number, [deleteCount:Number], [value:Object]) : Array

Aade y elimina elementos de una matriz. Este mtodo modifica la matriz sin realizar ninguna copia de ella. Parmetros - Un entero que especifica el ndice del elemento de la matriz donde comienza la insercin o eliminacin. Puede especificar un entero negativo para establecer una posicin relativa al final de la matriz (por ejemplo, -1 es el ltimo elemento de la matriz).
startIndex:Number deleteCount:Number [opcional] - Un entero que especifica el nmero de elementos que se va a eliminar. Este nmero incluye el elemento especificado en el parmetro startIndex. Si no se ha especificado ningn valor para el parmetro deleteCount, el mtodo elimina todos los valores desde el elemento startIndex hasta el ltimo elemento de la matriz. Si el valor es 0, no se eliminar ningn elemento. value:Object

[opcional] - Especifica el valor que se va a insertar en la matriz en el punto de insercin especificado en el parmetro startIndex.

Valor devuelto
Array

- Una matriz que contiene los elementos eliminados de la matriz original.

Ejemplo El ejemplo siguiente crea una matriz y la divide utilizando el ndice de elemento 1 para el parmetro startIndex. De este modo se eliminan todos los elementos de la matriz a partir del segundo elemento, dejando nicamente el elemento de ndice 0 en la matriz original:
var myPets_array:Array = new Array("cat", "dog", "bird", "fish"); trace(myPets_array.splice(1)); // Muestra dog,bird,fish. trace(myPets_array); // cat

El ejemplo siguiente crea una matriz y la divide utilizando el ndice de elemento 1 para el parmetro startIndex y el nmero 2 para el parmetro deleteCount. De este modo se eliminan dos los elementos de la matriz a partir del segundo elemento, dejando el primero y el ltimos elementos en la matriz original:
var myFlowers_array:Array = new Array("roses", "tulips", "lilies", "orchids"); trace(myFlowers_array.splice(1,2)); // Muestra tulips,lilies. trace(myFlowers_array); // roses,orchids

248

Clases de ActionScript

El ejemplo siguiente crea una matriz y la divide utilizando el ndice de elemento 1 para el parmetro startIndex, el nmero 0 para el parmetro deleteCount y la cadena chair para el parmetro value. No se elimina nada de la matriz original y aade la cadena chair en el ndice 1:
var myFurniture_array:Array = new Array("couch", "bed", "desk", "lamp"); trace(myFurniture_array.splice(1,0, "chair")); // Muestra una matriz vaca. trace(myFurniture_array); // muestra couch,chair,bed,desk,lamp

toString (mtodo Array.toString)


public toString() : String

Devuelve un valor de cadena que representa los elementos del objeto Array especificado. Cada elemento de la matriz, comenzando por el ndice 0 y terminando por el ndice ms alto, se convierte en una cadena concatenada separada por comas. Para especificar un separador personalizado, utilice el mtodo Array.join(). Valor devuelto
String

- Una cadena.

Ejemplo El ejemplo siguiente crea my_array y la convierte en una cadena.


var my_array:Array = new Array(); my_array[0] = 1; my_array[1] = 2; my_array[2] = 3; my_array[3] = 4; my_array[4] = 5; trace(my_array.toString()); // Muestra 1,2,3,4,5.

Este ejemplo produce 1,2,3,4,5 como resultado de la sentencia trace. Vase tambin
split (mtodo String.split), join (mtodo Array.join)

Array

249

UNIQUESORT (propiedad Array.UNIQUESORT)


public static UNIQUESORT : Number

Representa el requisito de ordenacin exclusiva. Puede utilizar esta constante para el parmetro options del mtodo sort() o sortOn(). La opcin de ordenacin exclusiva anula la ordenacin si dos elementos o campos que se estn ordenando tienen valores idnticos. El valor de esta constante es 4. Vase tambin
sort (mtodo Array.sort), sortOn (mtodo Array.sortOn)

unshift (mtodo Array.unshift)


public unshift(value:Object) : Number

Aade uno o varios elementos al comienzo de una matriz y devuelve la nueva longitud de la matriz. Parmetros
value:Object

- Uno o ms nmeros, elementos o variables que se insertarn al principio de

la matriz. Valor devuelto


Number

- Un entero que representa la nueva longitud de la matriz.

Ejemplo El ejemplo siguiente muestra el uso del mtodo Array.unshift():


var pets_array:Array = new Array("dog", "cat", "fish"); trace(pets_array); // Muestra dog,cat,fish. pets_array.unshift("ferrets", "gophers", "engineers"); trace(pets_array); // Muestra ferrets,gophers,engineers,dog,cat,fish.

Vase tambin
pop (mtodo Array.pop), push (mtodo Array.push), shift (mtodo Array.shift)

250

Clases de ActionScript

Boolean
Object | +-Boolean public class Boolean extends Object

La clase Boolean es un envolvente con la misma funcionalidad que el objeto Boolean estndar de JavaScript. Utilice la clase Boolean para recuperar el tipo de datos simple o la representacin de cadena de un objeto booleano. Debe utilizar el constructor new Boolean() para crear un objeto booleano antes de llamar a sus mtodos. Resumen de propiedades Propiedades heredadas de la clase Object
constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de constructores
Firma
Boolean([value:Object])

Descripcin
Crea un objeto Boolean.

Resumen de mtodos
Modificadores Firma
toString() : String valueOf() : Boolean

Descripcin
Devuelve la representacin de cadena ("true" o "false") del objeto Boolean. Devuelve true si el tipo de valor simple del objeto Boolean especificado es true; en cualquier otro caso, devuelve false

Boolean

251

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

Constructor Boolean
public Boolean([value:Object])

Crea un objeto Boolean. Si omite el parmetro value, el objeto Boolean se inicializa con el valor false. Si especifica un valor para el parmetro value, el mtodo lo evaluar y devolver el resultado como un valor booleano conforme a las reglas de la funcin Boolean(). Parmetros
value:Object

[opcional] - Cualquier expresin. El valor predeterminado es false.

Ejemplo El cdigo siguiente crea un nuevo objeto Boolean vaco llamado myBoolean:
var myBoolean:Boolean = new Boolean();

toString (mtodo Boolean.toString)


public toString() : String

Devuelve la representacin de cadena ("true" o "false") del objeto Boolean. Valor devuelto
String

- Una cadena; "true" o "false".

Ejemplo Este ejemplo crea una variable de tipo booleano y utiliza toString() para convertir el valor en una cadena para utilizarla en la sentencia trace:
var myBool:Boolean = true; trace("The value of the Boolean myBool is: " + myBool.toString()); myBool = false; trace("The value of the Boolean myBool is: " + myBool.toString());

252

Clases de ActionScript

valueOf (mtodo Boolean.valueOf)


public valueOf() : Boolean

Devuelve true si el tipo de valor simple del objeto Boolean especificado es true; en cualquier otro caso, devuelve false Valor devuelto
Boolean

- Valor booleano.

Ejemplo El ejemplo siguiente muestra cmo funciona este mtodo y tambin que el tipo de valor simple de un objeto Boolean nuevo es false:
var x:Boolean = new Boolean(); trace(x.valueOf()); // false x = (6==3+3); trace(x.valueOf()); // true

Button
Object | +-Button public class Button extends Object

Todos los smbolos de botn de un archivo SWF son instancias del objeto Button. Puede asignar a un botn un nombre de instancia en el inspector de propiedades y utilizar los mtodos y propiedades de la clase Button para manipular botones con ActionScript. Los nombres de instancias de Button se muestran en el explorador de pelculas y en el cuadro de dilogo Insertar ruta de destino del panel Acciones. La clase Button hereda de la clase Object. Vase tambin
Object

Button

253

Resumen de propiedades
Modificadores Propiedad
_alpha:Number

Descripcin
Valor de transparencia alfa del botn especificado por my_btn. Un valor booleano que especifica si est activado un botn. Valor booleano que especifica si un botn debe mostrar un rectngulo amarillo a su alrededor cuando tiene seleccin de entrada. Altura del botn, expresada en pxeles. Desfasadadesde Flash Player 7. Esta propiedad est desfasada y en su lugar debe utilizarse Button._quality. Especifica el nivel de visualizacin suavizada que se aplica al archivo SWF actual. Nombre de instancia del botn especificado por my_btn. Referencia al clip de pelcula u objeto que contiene el clip de pelcula u objeto actual. Propiedad (global); establece o recupera la calidad de representacin utilizada por un archivo SWF. Giro del botn, expresado en grados, con respecto a su orientacin original. debe acumularse previamente en el bfer antes de que comience a reproducirse sin interrupcin.

enabled:Boolean

_focusrect:Boolean

_height:Number _highquality:Number

_name:String

_parent:MovieClip

_quality:String

_rotation:Number

_soundbuftime:Number Especifica el nmero de segundos que un sonido

tabEnabled:Boolean

Especifica si my_btn est incluido en el orden de tabulacin automtico. Permite personalizar el orden de tabulacin de los objetos de un archivo SWF. botn especificada por my_btn. Valor booleano que indica si otros botones o clips de pelcula pueden recibir un evento de liberacin del botn del ratn o del lpiz stylus. Recupera la URL del archivo SWF que cre el botn.

tabIndex:Number

_target:String [read- Devuelve la ruta de destino de la instancia de

only]
trackAsMenu:Boolean

_url:String [read-

only]

254

Clases de ActionScript

Modificadores Propiedad
_visible:Boolean

Descripcin
Valor booleano que indica si el botn especificado por my_btn es visible. Anchura del botn, expresada en pxeles. Entero que establece la coordenada x de un botn como relativa a las coordenadas locales del clip de pelcula principal. hasMouse es true). Escala horizontal del botn aplicada desde el punto de registro del botn, expresada como porcentaje. Coordenada y del botn relativa a las coordenadas locales del clip de pelcula principal. relativa al botn. Escala vertical del botn aplicada desde el punto de registro del botn, expresada como porcentaje.

_width:Number _x:Number

_xmouse:Number [read- Devuelve la coordenada x relativa al botn (si

only]
_xscale:Number

_y:Number

_ymouse:Number [read- Devuelve la coordenada y de la posicin del ratn

only]
_yscale:Number

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onDragOut = function() {} onDragOver = function() {}

Descripcin
Se invoca cuando el usuario presiona el botn del ratn encima del botn y despus arrastra el puntero fuera del botn. Se invoca cuando el usuario presiona el botn del ratn cuando se encuentra fuera del botn y despus arrastra el puntero encima del botn. Se invoca cuando un botn se ha seleccionado con el teclado y se presiona una tecla. Se invoca cuando un botn tiene la seleccin de entrada y se suelta una tecla.

onKeyDown = function() {} onKeyUp = function() {}

Button

255

Evento
onKillFocus = function(newFocus:O bject) {} onPress = function() {} onRelease = function() {} onReleaseOutside = function() {}

Descripcin
Se invoca cuando un botn deja de estar seleccionado con el teclado.

Se invoca cuando se presiona una tecla. Se invoca cuando se suelta un botn. Se invoca cuando se suelta el botn del ratn mientras el puntero est fuera del botn despus de haber hecho clic mientras el puntero estaba dentro del botn. Se invoca cuando el botn deja de estar seleccionado. Se invoca cuando el botn se selecciona. Se invoca cuando un botn queda seleccionado con el teclado.

onRollOut = function() {} onRollOver = function() {} onSetFocus = function(oldFocus:O bject) {}

Resumen de mtodos
Modificadores Firma
getDepth() : Number

Descripcin
Devuelve la profundidad de una instancia de botn.

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

256

Clases de ActionScript

_alpha (propiedad Button._alpha)


public _alpha : Number

Valor de transparencia alfa del botn especificado por my_btn. Los valores vlidos son los comprendidos entre 0 (totalmente transparente) y 100 (totalmente opaco). El valor predeterminado es 100. Los objetos existentes en un botn que tenga configurado _alpha con el valor 0 continuarn activos aunque no sean visibles. Ejemplo El cdigo siguiente establece la _alpha de un botn llamado myBtn_btn al 50% cuando el usuario hace clic en el botn. En primer lugar aada una instancia Button al escenario. A continuacin, asigne a la instancia el nombre myBtn_btn. Por ltimo, con el fotograma 1 seleccionado, introduzca el cdigo siguiente en el panel Acciones:
myBtn_btn.onRelease = function(){ this._alpha = 50; };

Vase tambin
_alpha (propiedad MovieClip._alpha), _alpha (propiedad TextField._alpha)

enabled (propiedad Button.enabled)


public enabled : Boolean

Un valor booleano que especifica si est activado un botn. Cuando un botn est desactivado (la propiedad enabled est configurada como false), el botn est visible pero no se puede hacer clic en l. El valor predeterminado es true. Esta propiedad resulta til si desea desactivar parte de la navegacin; por ejemplo, puede que desee desactivar un botn de la pgina mostrada actualmente para que no se pueda hacer clic en l y no pueda volver a cargarse la pgina. Ejemplo El ejemplo siguiente demuestra cmo desactivar y activar botones para hacer clic en ellos. Dos botones, myBtn1_btn y myBtn2_btn,, se encuentran en el escenario y se aade el cdigo ActionScript siguiente de modo que no se pueda hacer clic en el botn myBtn2_btn: En primer lugar aada dos instancias Button al escenario. A continuacin, asigne a las instancias los nombres myBtn1_btn y myBtn2_btn. Por ltimo, introduzca el siguiente cdigo en el fotograma 1 para activar o desactivar los botones.
myBtn1_btn.enabled = true; myBtn2_btn.enabled = false;

Button

257

// cdigo del botn // no se llamar a la siguiente funcin // porque myBtn2_btn.enabled se estableci en false myBtn1_btn.onRelease = function() { trace("you clicked : " + this._name); }; myBtn2_btn.onRelease = function() { trace("you clicked : " + this._name); };

_focusrect (propiedad Button._focusrect)


public _focusrect : Boolean

Valor booleano que especifica si un botn debe mostrar un rectngulo amarillo a su alrededor cuando tiene seleccin de entrada. Esta propiedad puede sustituir a la propiedad global _focusrect. De manera predeterminada, la propiedad _focusrect de una instancia de botn es nula (null); la instancia de botn no sustituye a la propiedad global _focusrect. Si la propiedad _focusrect de una instancia de botn se establece como true o false, sta sustituir a la configuracin de la propiedad global _focusrect para la instancia de botn en cuestin. En archivos SWF de Flash Player 4 y Flash Player 5, la propiedad _focusrect controla la propiedad global _focusrect. Se trata de un valor booleano. Este comportamiento cambi en Flash Player 6 y versiones posteriores para permitir la personalizacin de la propiedad _focusrect en un clip de pelcula concreto. Si la propiedad _focusrect se estable como false, la navegacin con el teclado para ese botn quedar limitada a la tecla Tabulador. Todas las dems teclas, incluida Intro y las teclas de flecha, quedan anuladas. Para restablecer el desplazamiento completo con el teclado, es preciso configurar _focusrect con el valor true. Nota: En el reproductor Flash Lite 2.0, si se desactiva la propiedad _focusrect (es decir, Button.focusRect is false), el botn recibe todos los eventos. Este comportamiento ha cambiado con respecto a Flash Player, ya que si la propiedad _focusrect se desactiva, el botn receibe los eventos rollOver y rollOut pero no recibe los eventos press y release. Tambin en Flash Lite 2.0, se puede cambiar el color del rectngulo de seleccin utilizando el comando SetFocusRectColor de la funcin fscommand2. Este comportamiento tambin ha cambiado con respecto a Flash Player, donde el color del rectngulo de seleccin nicamente puede ser amarillo.

258

Clases de ActionScript

Ejemplo Este ejemplo muestra cmo ocultar el rectngulo amarillo alrededor de una instancia de botn especificada en un archivo SWF cuando est seleccionada en una ventana del navegador. Cree tres botones llamados myBtn1_btn, myBtn2_btn y myBtn3_btn, y aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
myBtn2_btn._focusrect = false;

Asegrese de desactivar los mtodos abreviados de teclado cuando compruebe el archivo SWF seleccionando Control > Deshabilitar mtodos abreviados de teclado en el entorno de pruebas. Si _focusrect est desactivado, no es posible ejecutar cdigo para este botn presionando la tecla Intro o la barra espaciadora.

getDepth (mtodo Button.getDepth)


public getDepth() : Number

Devuelve la profundidad de una instancia de botn. Cada clip de pelcula, botn y campo de texto tiene asociada una profundidad exclusiva que determina cmo aparece el objeto delante o detrs de otros objetos. Los objetos con mayor profundidad aparecen delante. Valor devuelto
Number

- La profundidad de la instancia de botn.

Ejemplo Si crea myBtn1_btn y myBtn2_btn en el escenario, podr realizar un seguimiento de su profundidad empleando el cdigo ActionScript siguiente:
trace(myBtn1_btn.getDepth()); trace(myBtn2_btn.getDepth());

Si carga un archivo SWF llamado buttonMovie.swf en este documento, podr realizar un seguimiento de la profundidad de un botn, myBtn4_btn, dentro de ese archivo SWF empleando otro botn del SWF principal:
this.createEmptyMovieClip("myClip_mc", 999); myClip_mc.loadMovie("buttonMovie.swf"); myBtn3_btn.onRelease = function(){ trace(myClip_mc.myBtn4_btn.getDepth()); };

Button

259

Quiz haya observado que dos de estos botones tienen el mismo valor de profundidad, uno en el archivo SWF principal y otro en el archivo SWF cargado. Esto resulta engaoso, porque buttonMovie.swf se carg con una profundidad de 999, lo que significa que el botn que contiene tambin tendr una profundidad de 999 en relacin con los botones del archivo SWF principal. Tenga en cuenta que cada clip de pelcula tiene su propio orden z interno, lo que significa que cada clip de pelcula tiene su propio conjunto de valores de profundidad. Los dos botones pueden tener el mismo valor de profundidad, pero los valores slo tienen significado en relacin con otros objetos del mismo orden z. En este caso, los botones tienen el mismo valor de profundidad, pero los valores hacen referencia a clips de pelcula distintos: el valor de profundidad del botn del archivo SWF principal hace referencia al orden z de la lnea de tiempo principal, mientras que el valor de profundidad del botn del archivo SWF cargado se refiere al orden z interno del clip de pelcula myClip_mc. Vase tambin
getDepth (mtodo MovieClip.getDepth), getDepth (mtodo TextField.getDepth), getInstanceAtDepth (mtodo MovieClip.getInstanceAtDepth)

_height (propiedad Button._height)


public _height : Number

Altura del botn, expresada en pxeles. Ejemplo El ejemplo siguiente establece la altura y anchura de un botn llamado my_btn con unos valores especificados.
my_btn._width = 500; my_btn._height = 200;

_highquality (propiedad Button._highquality)


public _highquality : Number

Desfasada desde Flash Player 7. Esta propiedad est desfasada y en su lugar debe utilizarse Button._quality. Especifica el nivel de visualizacin suavizada que se aplica al archivo SWF actual. Especifique 2 (mejor calidad) para aplicar alta calidad con el suavizado de mapa de bits siempre activado. Especifique 1 (alta calidad) para aplicar la visualizacin suavizada, que suaviza los mapas de bits si el archivo SWF no contiene animacin y es el valor predeterminado. Especifique 0 (baja calidad) para evitar el suavizado.

260

Clases de ActionScript

Ejemplo Aada una instancia de botn al escenario y asgnele el nombre myBtn_btn. Dibuje un valo en el escenario utilizando la herramienta valo con un color de trazo y relleno. Seleccione el fotograma 1 y aada el cdigo ActionScript siguiente a travs del panel Acciones:
myBtn_btn.onRelease = function(){ myBtn_btn._highquality = 0; };

Cuando hace clic en myBtn_btn, el trazo del crculo adquiere un aspecto dentado. En su lugar puede aadir el cdigo ActionScript siguiente para que afecte el SWF globalmente:
_quality = 0;

Vase tambin
_quality (propiedad Button._quality), Propiedad _quality

_name (propiedad Button._name)


public _name : String

Nombre de instancia del botn especificado por my_btn. Ejemplo El ejemplo siguiente realiza un seguimiento de todos los nombres de instancia de cualquier instancia Button que se encuentre en la lnea de tiempo actual de un archivo SWF.
for (i in this) { if (this[i] instanceof Button) { trace(this[i]._name); } }

onDragOut (controlador Button.onDragOut)


onDragOut = function() {}

Se invoca cuando el usuario presiona el botn del ratn encima del botn y despus arrastra el puntero fuera del botn. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Nota: el controlador de eventos onDragOut es compatible con Flash Lite 2.0 nicamente si se cumple System.capabilities.hasMouse is true o System.capabilities.hasStylus is true.

Button

261

Ejemplo El ejemplo siguiente demuestra cmo puede ejecutar sentencias cuando se arrastra el puntero fuera de un botn. Cree un botn llamado my_btn en el escenario e introduzca el cdigo ActionScript siguiente en un fotograma de la lnea de tiempo:
my_btn.onDragOut = function() { trace("onDragOut: " + this._name); }; my_btn.onDragOver = function() { trace("onDragOver: " + this._name); };

onDragOver (controlador Button.onDragOver)


onDragOver = function() {}

Se invoca cuando el usuario presiona el botn del ratn cuando se encuentra fuera del botn y despus arrastra el puntero encima del botn. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Nota: el controlador de eventos onDragOver es compatible con Flash Lite 2.0 nicamente si se cumple System.capabilities.hasMouse is true o System.capabilities.hasStylus is true. Ejemplo El ejemplo siguiente define una funcin del controlador onDragOver que enva una sentencia
trace() al panel Salida. Cree un botn llamado my_btn en el escenario e introduzca el cdigo

ActionScript siguiente en la lnea de tiempo:


my_btn.onDragOut = function() { trace("onDragOut: " + this._name); }; my_btn.onDragOver = function() { trace("onDragOver: " + this._name); };

Cuando compruebe el archivo SWF, arrastre el puntero fuera de la instancia de botn. A continuacin, mientras pulsa el botn del ratn, vuelva a arrastrarlo sobre la instancia de botn. Observe que el panel Salida realiza un seguimiento de los movimientos. Vase tambin
onDragOut (controlador Button.onDragOut)

262

Clases de ActionScript

onKeyDown (controlador Button.onKeyDown)


onKeyDown = function() {}

Se invoca cuando un botn se ha seleccionado con el teclado y se presiona una tecla. El controlador de eventos onKeyDown se invoca sin parmetros. Puede utilizar los mtodos Key.getAscii() y Key.getCode() para determinar qu tecla ha presionado el usuario. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Ejemplo En el ejemplo siguiente se define una funcin que enva texto al panel Salida para el controlador onKeyDown. Cree un botn llamado my_btn en el escenario e introduzca el cdigo ActionScript siguiente en un fotograma de la lnea de tiempo:
my_btn.onKeyDown = function() { trace("onKeyDown: "+this._name+" (Key: "+getKeyPressed()+")"); }; function getKeyPressed():String { var theKey:String; switch (Key.getAscii()) { case Key.BACKSPACE : theKey = "BACKSPACE"; break; case Key.SPACE : theKey = "SPACE"; break; default : theKey = chr(Key.getAscii()); } return theKey; }

Seleccione Control > Probar pelcula para probar el archivo SWF. Seleccione Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba. A continuacin, pulse la tecla Tabulador hasta que el botn quede seleccionado (aparecer un rectngulo amarillo alrededor de la instancia my_btn) y comience a pulsar teclas en el teclado. Cuando pulsa teclas se muestran en el panel Salida. Vase tambin
onKeyUp (controlador Button.onKeyUp), getAscii (mtodo Key.getAscii), getCode (mtodo Key.getCode)

Button

263

onKeyUp (controlador Button.onKeyUp)


onKeyUp = function() {}

Se invoca cuando un botn tiene la seleccin de entrada y se suelta una tecla. El controlador de eventos onKeyUp se invoca sin parmetros. Puede utilizar los mtodos Key.getAscii() y Key.getCode() para determinar qu tecla ha presionado el usuario. Ejemplo En el ejemplo siguiente se define una funcin que enva texto al panel Salida para el controlador onKeyDown handler. Cree un botn llamado my_btn en el escenario e introduzca el cdigo ActionScript siguiente en un fotograma de la lnea de tiempo:
my_btn.onKeyDown = function() { trace("onKeyDown: "+this._name+" (Key: "+getKeyPressed()+")"); }; my_btn.onKeyUp = function() { trace("onKeyUp: "+this._name+" (Key: "+getKeyPressed()+")"); }; function getKeyPressed():String { var theKey:String; switch (Key.getAscii()) { case Key.BACKSPACE : theKey = "BACKSPACE"; break; case Key.SPACE : theKey = "SPACE"; break; default : theKey = chr(Key.getAscii()); } return theKey; }

Pulse Control+Intro para comprobar el archivo SWF. Seleccione Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba. A continuacin, pulse la tecla Tabulador hasta que el botn quede seleccionado (aparecer un rectngulo amarillo alrededor de la instancia my_btn) y comience a pulsar teclas en el teclado. Cuando pulsa teclas se muestran en el panel Salida. Vase tambin
onKeyDown (controlador Button.onKeyDown), getAscii (mtodo Key.getAscii), getCode (mtodo Key.getCode)

264

Clases de ActionScript

onKillFocus (controlador Button.onKillFocus)


onKillFocus = function(newFocus:Object) {}

Se invoca cuando un botn deja de estar seleccionado con el teclado. El controlador onKillFocus recibe un parmetro, newFocus, que es un objeto que representa al nuevo objeto seleccionado. Si no hay ningn objeto seleccionado con el teclado, newFocus contendr el valor null (nulo). Parmetros
newFocus:Object

- El objeto que recibe la seleccin.

Ejemplo El ejemplo siguiente demuestra cmo pueden ejecutarse sentencias cuando un botn deja de estar seleccionado. Cree una instancia de botn llamada my_btn en el escenario y aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
this.createTextField("output_txt", this.getNextHighestDepth(), 0, 0, 300, 200); output_txt.wordWrap = true; output_txt.multiline = true; output_txt.border = true; my_btn.onKillFocus = function() { output_txt.text = "onKillFocus: "+this._name+newline+output_txt.text; };

Compruebe el archivo SWF en una ventana del navegador y utilice la tecla Tabulador para pasar por los elementos de la ventana. Cuando la instancia de botn deja de estar seleccionada, se enva texto al campo de texto output_txt.

onPress (controlador Button.onPress)


onPress = function() {}

Se invoca cuando se presiona una tecla. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Ejemplo En el ejemplo siguiente se define una funcin que enva una sentencia trace() al panel Salida para el controlador onPress:
my_btn.onPress = function () { trace ("onPress called"); };

Button

265

onRelease (controlador Button.onRelease)


onRelease = function() {}

Se invoca cuando se suelta un botn. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Ejemplo En el ejemplo siguiente se define una funcin que enva una sentencia trace() al panel Salida para el controlador onRelease:
my_btn.onRelease = function () { trace ("onRelease called"); };

onReleaseOutside (controlador Button.onReleaseOutside)


onReleaseOutside = function() {}

Se invoca cuando se suelta el botn del ratn mientras el puntero est fuera del botn despus de haber hecho clic mientras el puntero estaba dentro del botn. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Nota: el controlador de eventos onReleaseOutside es compatible con Flash Lite 2.0 nicamente si se cumple System.capabilities.hasMouse is true o System.capabilities.hasStylus is true. Ejemplo En el ejemplo siguiente se define una funcin que enva una sentencia trace() al panel Salida para el controlador onReleaseOutside:
my_btn.onReleaseOutside = function () { trace ("onReleaseOutside called"); };

onRollOut (controlador Button.onRollOut)


onRollOut = function() {}

Se invoca cuando el botn deja de estar seleccionado. Esto puede ocurrir cuando el usuario hace clic en otro botn o rea fuera del botn seleccionado. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos.

266

Clases de ActionScript

Ejemplo En el ejemplo siguiente se define una funcin que enva una sentencia trace() al panel Salida para el controlador onRollOut:
my_btn.onRollOut = function () { trace ("onRollOut called"); };

onRollOver (controlador Button.onRollOver)


onRollOver = function() {}

Se invoca cuando el botn se selecciona. Esto puede ocurrir cuando el usuario hace clic en otro botn fuera del botn seleccionado. Se invoca cuando el puntero se desplaza sobre el rea de un botn. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Ejemplo En el ejemplo siguiente se define una funcin que enva una sentencia trace() al panel Salida para el controlador onRollOver:
my_btn.onRollOver = function () { trace ("onRollOver called"); };

onSetFocus (controlador Button.onSetFocus)


onSetFocus = function(oldFocus:Object) {}

Se invoca cuando un botn queda seleccionado con el teclado. El parmetro oldFocus es el objeto que deja de estar seleccionado. Por ejemplo, si el usuario presiona la tecla Tabulador parar desplazar la seleccin del teclado de un campo de texto a un botn, oldFocus contendr la instancia del campo de texto. Si anteriormente no haba ningn objeto seleccionado con el teclado, oldFocus contendr un valor null (nulo). Parmetros
oldFocus:Object

- El objeto que deja de estar seleccionado.

Button

267

Ejemplo El ejemplo siguiente demuestra cmo ejecutar sentencias cuando el usuario de un archivo SWF desplaza la seleccin de un botn a otro. Cree dos botones, btn1_btn y btn2_btn, e introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
Selection.setFocus(btn1_btn); trace(Selection.getFocus()); btn2_btn.onSetFocus = function(oldFocus) { trace(oldFocus._name + "lost focus"); };

Compruebe el archivo SWF pulsando Control+Intro. Seleccione Control > Deshabilitar mtodos abreviados de teclado si no est seleccionado. La seleccin pasar a btn1_btn. Cuando btn1_btn deja de estar seleccionado y btn2_btn pasa a estar seleccionado, se muestra informacin en el panel Salida.

_parent (propiedad Button._parent)


public _parent : MovieClip

Referencia al clip de pelcula u objeto que contiene el clip de pelcula u objeto actual. El objeto actual es el que contiene el cdigo ActionScript que hace referencia a _parent. Utilice _parent para especificar una ruta de acceso relativa a los clips de pelcula u objetos que se encuentran por encima del clip de pelcula u objeto actual. Puede utilizar _parent para subir mltiples niveles en la lista de visualizacin, como se muestra a continuacin:
this._parent._parent._alpha = 20;

Ejemplo En el ejemplo siguiente, un botn llamado my_btn se sita dentro de un clip de pelcula llamado my_mc. El cdigo siguiente muestra cmo utilizar la propiedad _parent para obtener una referencia al clip de pelcula my_mc:
trace(my_mc.my_btn._parent);

El panel Salida muestra lo siguiente:


_level0.my_mc

Vase tambin
_parent (propiedad MovieClip._parent), _target (propiedad MovieClip._target), Propiedad _root

268

Clases de ActionScript

_quality (propiedad Button._quality)


public _quality : String

Propiedad (global); establece o recupera la calidad de representacin utilizada por un archivo SWF. Las fuentes de dispositivo siempre se muestran dentadas y, por consiguiente, no se ven afectadas por la propiedad _quality. La propiedad _quality puede configurarse con los siguientes valores:

"LOW" Calidad de representacin baja. No se suavizan ni los grficos ni los mapas de bits. "MEDIUM" Calidad de representacin media. Los grficos se suavizan empleando una cuadrcula de 2 x 2 pxeles, pero los mapas de bits no se suavizan. Esta configuracin resulta adecuada para pelculas que no contengan texto. "HIGH" Calidad de representacin alta. Los grficos se suavizan empleando una cuadrcula de 4 x 4 pxeles, mientras que los mapas de bits se suavizan si la pelcula es esttica. Esta es la calidad de representacin predeterminada de Flash.

Nota:aunque puede especificar esta propiedad para un objeto Button, se trata en realidad de una propiedad global, por lo que puede especificar su valor simplemente como _quality. Ejemplo Este ejemplo establece como LOW la calidad de representacin de un botn llamado my_btn:
my_btn._quality = "LOW";

_rotation (propiedad Button._rotation)


public _rotation : Number

Giro del botn, expresado en grados, con respecto a su orientacin original. Los valores comprendidos entre 0 y 180 representan un giro en el sentido de las agujas del reloj, mientras que los comprendidos entre 0 y -180 representan un giro en sentido contrario al de las agujas del reloj. Los valores situados fuera de este rango se suman o restan de 360 para obtener un valor que s est comprendido en el rango. Por ejemplo, la sentencia my_btn._rotation = 450 es igual que my_btn._rotation = 90. Ejemplo El ejemplo siguiente gira dos botones en el escenario. Cree dos botones en el escenario llamados control_btn y my_btn. Procure que my_btn no sea completamente redondo, para poder ver cmo gira. A continuacin, introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
var control_btn:Button; var my_btn:Button;

Button

269

control_btn.onRelease = function() { my_btn._rotation += 10; };

Ahora puede crear otro botn en el escenario llamado myOther_btn, procurando que no sea completamente redondo (para poder ver cmo gira). Introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
var myOther_btn:Button; this.createEmptyMovieClip("rotater_mc", this.getNextHighestDepth()); rotater_mc.onEnterFrame = function() { myOther_btn._rotation += 2; };

Vase tambin
_rotation (propiedad MovieClip._rotation), _rotation (propiedad TextField._rotation)

_soundbuftime (propiedad Button._soundbuftime)


public _soundbuftime : Number

Especifica el nmero de segundos que un sonido debe acumularse previamente en el bfer antes de que comience a reproducirse sin interrupcin. Nota:aunque puede especificar esta propiedad para un objeto Button, se trata en realidad de una propiedad global que se aplica a todos los sonidos cargados y puede especificar su valor simplemente como _soundbuftime. Al establecer esta propiedad para un objeto Button en realidad se establece la propiedad global. Para ms informacin y ver un ejemplo, consulte _soundbuftime. Vase tambin
Propiedad _soundbuftime

tabEnabled (propiedad Button.tabEnabled)


public tabEnabled : Boolean

Especifica si my_btn est incluido en el orden de tabulacin automtico. De manera predeterminada, tiene el valor undefined.

270

Clases de ActionScript

Si la propiedad tabEnabled es undefined o true, el objeto se incluir en el orden de tabulacin automtico. Si la propiedad tabIndex tambin est configurada con un valor, el objeto se incluir tambin en el orden de tabulacin personalizado. Si tabEnabled tiene el valor false, el objeto no se incluir en el orden de tabulacin automtico ni en el personalizado aunque se establezca la propiedad tabIndex. Ejemplo El cdigo ActionScript siguiente se utiliza para establecer la propiedad tabEnabled como para un botn de cuatro. Sin embargo, los cuatro botones (one_btn, two_btn, three_btn, y four_btn) se colocan en un orden de tabulacin personalizado utilizando tabIndex. Aunque se establece tabIndex para three_btn, no se incluye three_btn en un orden de tabulacin personalizado o automtico, ya que tabEnabled se establece como false para esa instancia. Para establecer el orden de tabulacin para los cuatro botones, aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
false three_btn.tabEnabled = false; two_btn.tabIndex = 1; four_btn.tabIndex = 2; three_btn.tabIndex = 3; one_btn.tabIndex = 4;

Asegrese de desactivar los mtodos abreviados de teclado cuando compruebe el archivo SWF seleccionando Control > Deshabilitar mtodos abreviados de teclado en el entorno de pruebas. Vase tambin
tabIndex (propiedad Button.tabIndex), tabEnabled (propiedad MovieClip.tabEnabled), tabEnabled (propiedad TextField.tabEnabled)

tabIndex (propiedad Button.tabIndex)


public tabIndex : Number

Permite personalizar el orden de tabulacin de los objetos de un archivo SWF. Puede establecer la propiedad tabIndex de un botn, un clip de pelcula o una instancia de campo de texto; la configuracin predeterminada es undefined (no definido). Si algn objeto mostrado actualmente en el archivo SWF contiene una propiedad tabIndex, se desactivar el orden de tabulacin automtico y el orden de tabulacin se calcular a partir de las propiedades tabIndex de los objetos del archivo SWF. El orden de tabulacin personalizado slo incluye objetos que tienen propiedades tabIndex.

Button

271

La propiedad tabIndex puede ser un entero no negativo. Los objetos se ordenan conforme a lo que indiquen las propiedades tabIndex y en orden ascendente. Un objeto que tenga un valor tabIndex de 1 preceder a otro objeto que tenga un valor tabIndex de 2. Si hay dos objetos con el mismo valor tabIndex, el que precede al otro en el orden de tabulacin es undefined. El orden de tabulacin personalizado definido por la propiedad tabIndex es flat (plano o no jerrquico). Esto significa que no se tienen en cuenta las relaciones jerrquicas entre los objetos del archivo SWF. Todos los objetos del archivo SWF con propiedades tabIndex tendrn su lugar en el orden de tabulacin, que se determinar por el orden de los valores de tabIndex. Si dos objetos tienen el mismo valor de tabIndex, el que va en primer lugar no estar definido (undefined). No debe utilizar el mismo valor de tabIndex para varios objetos. Ejemplo El cdigo ActionScript siguiente se utiliza para establecer la propiedad tabEnabled como para un botn de cuatro. Sin embargo, los cuatro botones (one_btn, two_btn, three_btn, y four_btn) se colocan en un orden de tabulacin personalizado utilizando tabIndex. Aunque se establece tabIndex para three_btn, no se incluye three_btn en un orden de tabulacin personalizado o automtico, ya que tabEnabled se establece como false para esa instancia. Para establecer el orden de tabulacin para los cuatro botones, aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
false three_btn.tabEnabled = false; two_btn.tabIndex = 1; four_btn.tabIndex = 2; three_btn.tabIndex = 3; one_btn.tabIndex = 4;

Asegrese de desactivar los mtodos abreviados de teclado cuando compruebe el archivo SWF seleccionando Control > Deshabilitar mtodos abreviados de teclado en el entorno de pruebas. Vase tambin
tabEnabled (propiedad Button.tabEnabled), tabChildren (propiedad MovieClip.tabChildren), tabEnabled (propiedad MovieClip.tabEnabled), tabIndex (propiedad MovieClip.tabIndex), tabIndex (propiedad TextField.tabIndex)

272

Clases de ActionScript

_target (propiedad Button._target)


public _target : String [read-only]

Devuelve la ruta de destino de la instancia de botn especificada por my_btn. Ejemplo Aada una instancia de botn al escenario con el nombre my_btn y aada el cdigo siguiente al fotograma 1 de la lnea de tiempo:
trace(my_btn._target); //muestra /my_btn

Seleccione my_btn y convirtalo en un clip de pelcula. Asigne al clip de pelcula nuevo el nombre de instancia my_mc. Elimine el cdigo ActionScript existente en el fotograma 1 de la lnea de tiempo y sustityalo por:
my_mc.my_btn.onRelease = function(){ trace(this._target); //muestra /my_mc/my_btn };

Para convertir la notacin de barras en notacin de puntos, modifique el ejemplo del cdigo anterior por el siguiente:
my_mc.my_btn.onRelease = function(){ trace(eval(this._target)); //muestra _level0.my_mc.my_btn };

Este cdigo permite acceder a mtodos y parmetros del objeto de destino, como:
my_mc.my_btn.onRelease = function(){ var target_btn:Button = eval(this._target); trace(target_btn._name); //muestra my_btn };

Vase tambin
_target (propiedad MovieClip._target)

trackAsMenu (propiedad Button.trackAsMenu)


public trackAsMenu : Boolean

Valor booleano que indica si otros botones o clips de pelcula pueden recibir un evento de liberacin del botn del ratn o del lpiz stylus. Si arrastra el puntero del ratn o un lpiz stylus encima de un botn y lo suelta sobre un segundo botn, el evento onRelease se registrar para el segundo botn. De este modo, puede crear mens para el segundo botn. Puede establecer la propiedad trackAsMenu en cualquier botn u objeto del clip de pelcula. Si no ha definido la propiedad trackAsMenu, el comportamiento predeterminado es false. Puede cambiar la propiedad trackAsMenu en cualquier momento; el botn modificado adoptar de inmediato el nuevo comportamiento.

Button

273

Nota: la propiedad trackAsMenu es compatible con Flash Lite 2.0 nicamente si se cumple System.capabilities.hasMouse is true o System.capabilities.hasStylus is true. Ejemplo El ejemplo siguiente demuestra cmo realizar el seguimiento de dos botones como un men. Site dos instancias de botn llamadas one_btn y two_btn en el escenario Introduzca el cdigo ActionScript siguiente en la lnea de tiempo:
var one_btn:Button; var two_btn:Button; one_btn.trackAsMenu = true; two_btn.trackAsMenu = true one_btn.onRelease = function() { trace("clicked one_btn"); }; two_btn.onRelease = function() { trace("clicked two_btn"); };

Para comprobar el archivo SWF, haga clic en one_btn en el escenario, manteniendo pulsado el botn del ratn y liberndolo sobre two_btn. A continuacin, marque como comentario las dos lneas de ActionScript que contienen trackAsMenu y pruebe el archivo SWF otra vez para ver la diferencia en el comportamiento del botn. Vase tambin
trackAsMenu (propiedad MovieClip.trackAsMenu)

_url (propiedad Button._url)


public _url : String [read-only]

Recupera la URL del archivo SWF que cre el botn. Ejemplo Cree dos instancias de botn en el escenario, llamadas one_btn y two_btn. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
var one_btn:Button; var two_btn:Button; this.createTextField("output_txt", 999, 0, 0, 100, 22); output_txt.autoSize = true; one_btn.onRelease = function() { trace("clicked one_btn"); trace(this._url); };

274

Clases de ActionScript

two_btn.onRelease = function() { trace("clicked "+this._name); var url_array:Array = this._url.split("/"); var my_str:String = String(url_array.pop()); output_txt.text = unescape(my_str); };

Cuando hace clic en cada botn, se mostrar en el panel Salida el nombre del archivo SWF que contiene los botones.

_visible (propiedad Button._visible)


public _visible : Boolean

Valor booleano que indica si el botn especificado por my_btn es visible. Los botones no visibles (que tienen la propiedad _visible configurada como false) se desactivan. Ejemplo Cree dos botones en el escenario con los nombres de instancia myBtn1_btn y myBtn2_btn. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
myBtn1_btn.onRelease = function() { this._visible = false; trace("clicked "+this._name); }; myBtn2_btn.onRelease = function() { this._alpha = 0; trace("clicked "+this._name); };

Observe que puede seguir haciendo clic en myBtn2_btn despus de establecer el alfa en 0. Vase tambin
_visible (propiedad MovieClip._visible), _visible (propiedad TextField._visible)

Button

275

_width (propiedad Button._width)


public _width : Number

Anchura del botn, expresada en pxeles. Ejemplo El ejemplo siguiente incrementa la propiedad width de un botn llamado my_btn, y muestra la anchura en el panel Salida. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
my_btn.onRelease = function () { trace(this._width); this._width ~= 1.1; };

Vase tambin
_width (propiedad MovieClip._width)

_x (propiedad Button._x)
public _x : Number

Entero que establece la coordenada x de un botn como relativa a las coordenadas locales del clip de pelcula principal. Si un botn se encuentra en la lnea de tiempo principal, su sistema de coordenadas har referencia a la esquina superior izquierda del escenario como (0, 0). Si el botn est dentro de un clip de pelcula que incluye transformaciones, el botn estar en el sistema de coordenadas local del clip de pelcula en el que est contenido. Por consiguiente, en el caso de un clip de pelcula con un giro de 90 grados en sentido contrario al de las agujas del reloj, el botn contenido hereda un sistema de coordenadas con un giro de 90 grados en sentido contrario al de las agujas del reloj. Las coordenadas del botn hacen referencia a la posicin del punto de registro. Ejemplo El ejemplo siguiente establece las coordenadas de my_btn en 0 en el escenario. Cree un botn llamado my_btn e introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
my_btn._x = 0; my_btn._y = 0;

Vase tambin
_xscale (propiedad Button._xscale), _y (propiedad Button._y), _yscale (propiedad Button._yscale)

276

Clases de ActionScript

_xmouse (propiedad Button._xmouse)


public _xmouse : Number [read-only]

Devuelve la coordenada x relativa al botn (si hasMouse es true). Nota: la propiedad _xmouse es compatible con Flash Lite 2.0 nicamente si se cumple o System.capabilities.hasStylus is true.
System.capabilities.hasMouse is true

Ejemplo El ejemplo siguiente muestra la coordenada x de la posicin del ratn para el escenario y un botn llamado my_btn que se sita en el escenario. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
this.createTextField("mouse_txt", 999, 5, 5, 150, 40); mouse_txt.html = true; mouse_txt.wordWrap = true; mouse_txt.border = true; mouse_txt.autoSize = true; mouse_txt.selectable = false; // var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var table_str:String = "<textformat tabstops='[50,100]'>"; table_str += "<b>Stage</b>\t"+"x:"+_xmouse+"\t"+"y:"+_ymouse+newline; table_str += "<b>Button</ b>\t"+"x:"+my_btn._xmouse+"\t"+"y:"+my_btn._ymouse+newline; table_str += "</textformat>"; mouse_txt.htmlText = table_str; }; Mouse.addListener(mouseListener);

Vase tambin
_ymouse (propiedad Button._ymouse)

_xscale (propiedad Button._xscale)


public _xscale : Number

Escala horizontal del botn aplicada desde el punto de registro del botn, expresada como porcentaje. El punto de registro predeterminado es (0,0). La escala del sistema de coordenadas local afecta a la configuracin de las propiedades _x e _y, que se definen en pxeles. Por ejemplo, si se aplica una escala del 50% al clip de pelcula principal, la configuracin de la propiedad _x desplazar un objeto situado en el botn la mitad de pxeles que si el archivo SWF tuviera una escala del 100%.

Button

277

Ejemplo El ejemplo siguiente escala un botn llamado my_btn. Cuando hace clic y suelta el botn, crece un 10% en los ejes x e y. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
my_btn.onRelease = function () { this._xscale ~= 1.1; this._yscale ~= 1.1; };

Vase tambin
_x (propiedad Button._x), _y (propiedad Button._y), _yscale (propiedad Button._yscale)

_y (propiedad Button._y)
public _y : Number

Coordenada y del botn relativa a las coordenadas locales del clip de pelcula principal. Si un botn se encuentra en la lnea de tiempo principal, su sistema de coordenadas har referencia a la esquina superior izquierda del escenario como (0, 0). Si el botn est dentro de otro clip de pelcula que incluye transformaciones, el botn estar en el sistema de coordenadas local del clip de pelcula en el que est contenido. Por consiguiente, en el caso de un clip de pelcula con un giro de 90 grados en sentido contrario al de las agujas del reloj, el botn contenido hereda un sistema de coordenadas con un giro de 90 grados en sentido contrario al de las agujas del reloj. Las coordenadas del botn hacen referencia a la posicin del punto de registro. Ejemplo El ejemplo siguiente establece las coordenadas de my_btn en 0 en el escenario. Cree un botn llamado my_btn e introduzca el cdigo ActionScript siguiente en el fotograma 1 de la lnea de tiempo:
my_btn._x = 0; my_btn._y = 0;

Vase tambin
_x (propiedad Button._x), _xscale (propiedad Button._xscale), _yscale (propiedad Button._yscale)

278

Clases de ActionScript

_ymouse (propiedad Button._ymouse)


public _ymouse : Number [read-only]

Devuelve la coordenada y de la posicin del ratn relativa al botn. Nota: la propiedad _ymouse es compatible con Flash Lite 2.0 nicamente si se cumple o System.capabilities.hasStylus is true.
System.capabilities.hasMouse is true

Ejemplo El ejemplo siguiente muestra la coordenada x de la posicin del ratn para el escenario y un botn llamado my_btn que se sita en el escenario. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
this.createTextField("mouse_txt", 999, 5, 5, 150, 40); mouse_txt.html = true; mouse_txt.wordWrap = true; mouse_txt.border = true; mouse_txt.autoSize = true; mouse_txt.selectable = false; // var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var table_str:String = "<textformat tabstops='[50,100]'>"; table_str += "<b>Stage</b>\t"+"x:"+_xmouse+"\t"+"y:"+_ymouse+newline; table_str += "<b>Button</ b>\t"+"x:"+my_btn._xmouse+"\t"+"y:"+my_btn._ymouse+newline; table_str += "</textformat>"; mouse_txt.htmlText = table_str; }; Mouse.addListener(mouseListener);

Vase tambin
_xmouse (propiedad Button._xmouse)

Button

279

_yscale (propiedad Button._yscale)


public _yscale : Number

Escala vertical del botn aplicada desde el punto de registro del botn, expresada como porcentaje. El punto de registro predeterminado es (0,0). Ejemplo El ejemplo siguiente escala un botn llamado my_btn. Cuando hace clic y suelta el botn, crece un 10% en los ejes x e y. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
my_btn.onRelease = function () { this._xscale ~= 1.1; this._yscale ~ 1.1; };

Vase tambin
_y (propiedad Button._y), _x (propiedad Button._x), _xscale (propiedad Button._xscale)

capabilities (System.capabilities)
Object | +-System.capabilities public class capabilities extends Object

La clase Capabilities determina la capacidad del sistema y del reproductor que alojan un archivo SWF, lo que permite adaptar el contenido a los diferentes formatos. Por ejemplo, la pantalla de un dispositivo mvil es distinta a la de un equipo. Con el fin de ofrecer el contenido adecuado al mayor nmero posible de usuarios, puede utilizar el objeto System.capabilities para determinar el tipo de dispositivo de que dispone un usuario. Luego podr indicar al servidor que enve archivos SWF diferentes en funcin de las prestaciones del dispositivo o indicar al archivo SWF que modifique su presentacin dependiendo de las prestaciones del dispositivo. Puede enviar informacin de prestaciones utilizando el mtodo HTTP GET o POST. En el siguiente ejemplo se muestra una cadena para un dispositivo mvil:

que indica una orientacin normal de pantalla. que se ejecuta en un idioma sin determinar.

280

Clases de ActionScript

que se ejecuta en el sistema operativo Symbian7.0sSeries60V2. que est configurado de tal modo que el usuario no puede acceder al disco duro, a la cmara ni al micrfono. que dispone del reproductor Flash Lite como versin oficial. para el que el reproductor Flash Lite no admite el desarrollo ni la reproduccin de aplicaciones de difusin de pantallas para su ejecucin a travs de Flash Media Server. que no admite la impresin en el dispositivo. en el que el reproductor Flash Lite se ejecuta en un dispositivo mvil que admite vdeo incorporado.
undefinedScreenOrientation=normal language=xu OS=Symbian7.0sSeries60V2 localFileReadDisable=true avHardwareDisable=true isDebugger=false hasScreenBroadcast=false hasScreenPlayback=false hasPrinting=false hasEmbeddedVideo=true

La mayora de la propiedades del objeto System.capabilities son de slo lectura. Resumen de propiedades
Modificadores Propiedad
static

Descripcin
de audio compatibles con un dispositivo mvil. cmara y al micrfono del usuario ha sido prohibido (true) o autorizado (false) administrativamente. reproductor Flash Lite ejecuta el cdigo ActionScript asociado a los controladores de eventos de teclas que, a su vez, estn asociados a las teclas izquierda, derecha, arriba y abajo. reproductor se est ejecutando en un entorno que admite la comunicacin entre Flash Player y las ayudas de accesibilidad; en caso contrario, da como resultado false. Especifica si el sistema tiene prestaciones de audio.

audioMIMETypes:Array Devuelve una matriz de tipos MIME para cdecs

[read-only]
static olean [read-only]

avHardwareDisable:Bo Valor booleano que especifica si el acceso a la

static

has4WayKeyAS:Boolean Valor booleano que devuelve true si el

[read-only]

static

hasAccessibility:Boo Valor booleano que da como resultado true si el lean [read-only]

static

hasAudio:Boolean

[read-only]

capabilities (System.capabilities)

281

Modificadores Propiedad
static ean [read-only] static hasCMIDI:Boolean

Descripcin
de audio. Devuelve true si el dispositivo mcil puede reproducir datos de sonido en formato de audio CMIDI. procesar datos de sonido compuestos. cargar dinmicamente datos adicionales mediante llamadas a funciones especficas. Devuelve true si el reproductor Flash Lite puede enviar mensajes de correo electrnico con el comando GetURL de ActionScript. admite o no vdeo incorporado. restablecer o reasignar etiquetas de teclas programables o controlar eventos a partir de dichas teclas. reproducir datos de sonido en formato de audio MFI. Devuelve true si el dispositivo mcil puede reproducir datos de sonido en formato de audio MIDI. mensajes MMS con el comando GetURL de ActionScript. Indica si el dispositivo mvil enva eventos relacionados con el ratn a un reproductor Flash Lite. descodificador de MP3. Valor booleano que da como resultado true si el reproductor se est ejecutando en un dispositivo mvil que admite impresin; en caso contrario, da como resultado false.

hasAudioEncoder:Bool Especifica si Flash Player puede codificar un flujo

[read-only]

static

hasCompoundSound:Boo Devuelve true si el reproductor Flash Lite puede lean [read-only]

static

hasDataLoading:Boole Devuelve true si el reproductor Flash Lite puede an [read-only]

static

hasEmail:Boolean

[read-only]

static

hasEmbeddedVideo:Boo Un valor booleano que indica si el dispositivo mvil lean [read-only]

static

hasMappableSoftKeys: Devuelve true si el dispositivo mvil permite Boolean

static

hasMFI:Boolean [read- Devuelve true si el dispositivo mcil puede

only]

static

hasMIDI:Boolean

[read-only]

static

hasMMS:Boolean [read- Devuelve true si el dispositivo mvil puede enviar

only]

static

hasMouse:Boolean

[read-only]

static

hasMP3:Boolean [read- Especifica si el dispositivo mvil dispone de un

only]
static hasPrinting:Boolean

[read-only]

282

Clases de ActionScript

Modificadores Propiedad
static olean [read-only]

Descripcin
procesar cdigo ActionScript asociado a todas las teclas de un teclado occidental estndar (QWERTY), incluida la tecla RETROCESO. reproductor admite el desarrollo de aplicaciones de difusin de pantallas para su ejecucin a travs de Flash Media Server; en caso contrario, da como resultado false. reproductor admite la reproduccin de aplicaciones de difusin de pantallas que se estn ejecutando a travs de Flash Media Server; en caso contrario, da como resultado false. reproduce en una aplicacin puede acceder a la versin Flash Lite de los objetos compartidos. Devuelve true si el dispositivo mcil puede reproducir datos de sonido en formato de audio SMAF. Indica si el dispositivo mvil puede enviar mensajes SMS con el comando GetURL de ActionScript. reproductor es capaz de reproducir audio sin interrupcin; en caso contrario, da como resultado false. capaz de reproducir vdeo sin interrupcin. Indica si el dispositivo mvil admite eventos relacionados con el lpiz stylus. de vdeo. Indica si la aplicacin host admite sockets XML.

hasQWERTYKeyboard:Bo Devuelve true si el reproductor Flash Lite puede

static

hasScreenBroadcast:B Valor booleano que da como resultado true si el oolean [read-only]

static

hasScreenPlayback:Bo Valor booleano que da como resultado true si el olean [read-only]

static

hasSharedObjects:Boo Devuelve true si el contenido Flash Lite que se lean [read-only]

static

hasSMAF:Boolean

[read-only]
hasSMS:Number [read-

static

only]

static

hasStreamingAudio:Bo Valor booleano que da como resultado true si el olean [read-only]

static

hasStreamingVideo:Bo Valor booleano que indica si el reproductor es olean [read-only]

static

hasStylus:Boolean

[read-only]
static ean [read-only] static hasXMLSocket:Number

hasVideoEncoder:Bool Especifica si Flash Player puede codificar un flujo

[read-only]

capabilities (System.capabilities)

283

Modificadores Propiedad
static

Descripcin
MIME con los que la funcin loadMovie y los cdecs del dispositivo mvil son compatibles para poder procesar imgenes. Valor booleano que especifica si el reproductor es de una versin lanzada oficialmente (false) o una versin especial de depuracin (true). Indica el idioma del sistema en el que se est ejecutando el reproductor. disco duro del usuario ha sido prohibido (true) o autorizado (false) administrativamente. Devuelve una matriz que contiene todos los tipos MIME compatibles con la funcin loadMovie y los objetos Sound y Video.

imageMIMETypes:Array Devuelve una matriz que contiene todos los tipos

[read-only]

static

isDebugger:Boolean

[read-only]

static

language:String

[read-only]
static :Boolean [read-only]

localFileReadDisable Valor booleano que indica si el acceso de lectura al

static

MIMETypes:Array

[read-only]

static static

os:String [read-only] Cadena que indica el sistema operativo actual. screenOrientation:St Esta variable de miembro del objeto ring [read-only]

System.capabilities indica la orientacin actual de la pantalla. de la pantalla. la pantalla. Indica el nmero de teclas programables reasignables compatibles con el dispositivo mvil. y versin de Flash Player (por ejemplo, "WIN 7,1,0,0"). compatibles con los cdecs del dispositivo mvil.

static

screenResolutionX:Nu Entero que indica la resolucin horizontal mxima mber [read-only]

static

screenResolutionY:Nu Entero que indica la resolucin vertical mxima de mber [read-only]

static

softKeyCount:Number

[read-only]
static

version:String [read- Cadena que contiene la informacin de plataforma

only]

static

videoMIMETypes:Array Indica todos los tipos MIME para vdeo

[read-only]

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

284

Clases de ActionScript

Resumen de mtodos Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

audioMIMETypes (propiedad capabilities.audioMIMETypes)


public static audioMIMETypes : Array [read-only]

Devuelve una matriz de tipos MIME para cdecs de audio compatibles con un dispositivo mvil. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.audioMIMETypes);

avHardwareDisable (propiedad capabilities.avHardwareDisable)


public static avHardwareDisable : Boolean [read-only]

Valor booleano que especifica si el acceso a la cmara y al micrfono del usuario ha sido prohibido (true) o autorizado (false) administrativamente. La cadena de servidor es AVD. Nota: en Flash Lite 2.0, el valor devuelto es siempre true. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.avHardwareDisable);

capabilities (System.capabilities)

285

has4WayKeyAS (propiedad capabilities.has4WayKeyAS)


public static has4WayKeyAS : Boolean [read-only]

Valor booleano que devuelve true si el reproductor Flash Lite ejecuta el cdigo ActionScript asociado a los controladores de eventos de teclas que, a su vez, estn asociados a las teclas izquierda, derecha, arriba y abajo. En caso contrario, esta propiedad devuelve false. Si el valor de esta variable es true, al presionar una de las teclas de cuatro direcciones, el reproductor primer busca un controlador para dicha tecla. Si no encuentra ninguno, Flash controla el desplazamiento. Sin embargo, si se encuentra un controlador de eventos, no se activa ninguna accin de navegacin para dicha tecla. En otras palabras, la presencia de un controlador de pulsacin de teclas para una tecla hacia abajo desactiva la posibilidad de desplazarse hacia abajo. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.has4WayKeyAS);

hasAccessibility (propiedad capabilities.hasAccessibility)


public static hasAccessibility : Boolean [read-only]

Valor booleano que da como resultado true si el reproductor se est ejecutando en un entorno que admite la comunicacin entre Flash Player y las ayudas de accesibilidad; en caso contrario, da como resultado false. La cadena de servidor es ACC. Nota: en Flash Lite 2.0, el valor devuelto es siempre false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasAccessibility);

hasAudio (propiedad capabilities.hasAudio)


public static hasAudio : Boolean [read-only]

Especifica si el sistema tiene prestaciones de audio. Valor booleano que da como resultado true si el reproductor se est ejecutando en un sistema con prestaciones de audio; en caso contrario, da como resultado false. La cadena de servidor es A.

286

Clases de ActionScript

Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasAudio);

hasAudioEncoder (propiedad capabilities.hasAudioEncoder)


public static hasAudioEncoder : Boolean [read-only]

Especifica si Flash Player puede codificar un flujo de audio. Valor booleano que da como resultado true si el reproductor permite codificar un flujo de audio, como, por ejemplo, el procedente de un micrfono; en caso contrario, da como resultado false. La cadena de servidor es AE. Nota: en Flash Lite 2.0, el valor devuelto es siempre false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasAudioEncoder);

hasCMIDI (propiedad capabilities.hasCMIDI)


public static hasCMIDI : Boolean [read-only]

Devuelve true si el dispositivo mcil puede reproducir datos de sonido en formato de audio CMIDI. De lo contrario, esta propiedad devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasCMIDI);

hasCompoundSound (propiedad capabilities.hasCompoundSound)


public static hasCompoundSound : Boolean [read-only]

Devuelve true si el reproductor Flash Lite puede procesar datos de sonido compuestos. De lo contrario, devuelve false.

capabilities (System.capabilities)

287

Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasCompoundSound);

hasDataLoading (propiedad capabilities.hasDataLoading)


public static hasDataLoading : Boolean [read-only]

Devuelve true si el reproductor Flash Lite puede cargar dinmicamente datos adicionales mediante llamadas a funciones especficas. Puede llamar a las siguientes funciones especficas:

loadMovie() loadMovieNum() loadVariables() loadVariablesNum() XML.parseXML() Sound.loadSound() MovieClip.loadVariables() MovieClip.loadMovie() MovieClipLoader.loadClip() LoadVars.load() LoadVars.sendAndLoad()

En caso contrario, esta propiedad devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasDataLoading);

hasEmail (propiedad capabilities.hasEmail)


public static hasEmail : Boolean [read-only]

Devuelve true si el reproductor Flash Lite puede enviar mensajes de correo electrnico con el comando GetURL de ActionScript. En caso contrario, esta propiedad devuelve false.

288

Clases de ActionScript

Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasEmail);

hasEmbeddedVideo (propiedad capabilities.hasEmbeddedVideo)


public static hasEmbeddedVideo : Boolean [read-only]

Un valor booleano que indica si el dispositivo mvil admite o no vdeo incorporado. Nota:la propiedad hasEmbeddedVideo siempre es true en Flash Lite 2.0 y Flash Lite 2.1, indicando la compatibilidad de la biblioteca con el vdeo de dispositivo. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasEmbeddedVideo);

hasMappableSoftKeys (propiedad capabilities.hasMappableSoftKeys)


public static hasMappableSoftKeys : Boolean

Devuelve true si el dispositivo mvil permite restablecer o reasignar etiquetas de teclas programables o controlar eventos a partir de dichas teclas. De lo contrario, devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasMappableSoftKeys);

hasMFI (propiedad capabilities.hasMFI)


public static hasMFI : Boolean [read-only]

Devuelve true si el dispositivo mcil puede reproducir datos de sonido en formato de audio MFI. En caso contrario, esta propiedad devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasMFI);

capabilities (System.capabilities)

289

hasMIDI (propiedad capabilities.hasMIDI)


public static hasMIDI : Boolean [read-only]

Devuelve true si el dispositivo mcil puede reproducir datos de sonido en formato de audio MIDI. En caso contrario, esta propiedad devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasMIDI);

hasMMS (propiedad capabilities.hasMMS)


public static hasMMS : Boolean [read-only]

Devuelve true si el dispositivo mvil puede enviar mensajes MMS con el comando GetURL de ActionScript. En caso contrario, esta propiedad devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasMMS);

hasMouse (propiedad capabilities.hasMouse)


public static hasMouse : Boolean [read-only]

Indica si el dispositivo mvil enva eventos relacionados con el ratn a un reproductor Flash Lite. Esta propiedad devuelve true si el dispositivo mvil enva eventos relacionados con el ratn a un reproductor Flash Lite. De lo contrario, devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasMouse);

290

Clases de ActionScript

hasMP3 (propiedad capabilities.hasMP3)


public static hasMP3 : Boolean [read-only]

Especifica si el dispositivo mvil dispone de un descodificador de MP3. Valor booleano que da como resultado true si el reproductor se est ejecutando en un sistema con descodificador MP3; en caso contrario, el resultado es false. La cadena de servidor es MP3. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasMP3);

hasPrinting (propiedad capabilities.hasPrinting)


public static hasPrinting : Boolean [read-only]

Valor booleano que da como resultado true si el reproductor se est ejecutando en un dispositivo mvil que admite impresin; en caso contrario, da como resultado false. La cadena de servidor es PR. Nota: en Flash Lite 2.0, el valor devuelto es siempre false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasPrinting);

hasQWERTYKeyboard (propiedad capabilities.hasQWERTYKeyboard)


public static hasQWERTYKeyboard : Boolean [read-only]

Devuelve true si el reproductor Flash Lite puede procesar cdigo ActionScript asociado a todas las teclas de un teclado occidental estndar (QWERTY), incluida la tecla RETROCESO. En caso contrario, esta propiedad devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasQWERTYKeyboard);

capabilities (System.capabilities)

291

hasScreenBroadcast (propiedad capabilities.hasScreenBroadcast)


public static hasScreenBroadcast : Boolean [read-only]

Valor booleano que da como resultado true si el reproductor admite el desarrollo de aplicaciones de difusin de pantallas para su ejecucin a travs de Flash Media Server; en caso contrario, da como resultado false. La cadena de servidor es SB. Nota: en Flash Lite 2.0, el valor devuelto es siempre false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasScreenBroadcast);

hasScreenPlayback (propiedad capabilities.hasScreenPlayback)


public static hasScreenPlayback : Boolean [read-only]

Valor booleano que da como resultado true si el reproductor admite la reproduccin de aplicaciones de difusin de pantallas que se estn ejecutando a travs de Flash Media Server; en caso contrario, da como resultado false. La cadena de servidor es SP. Nota: en Flash Lite 2.0, el valor devuelto es siempre false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasScreenPlayback);

hasSharedObjects (propiedad capabilities.hasSharedObjects)


public static hasSharedObjects : Boolean [read-only]

Devuelve true si el contenido Flash Lite que se reproduce en una aplicacin puede acceder a la versin Flash Lite de los objetos compartidos. En caso contrario, esta propiedad devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasSharedObjects);

292

Clases de ActionScript

hasSMAF (propiedad capabilities.hasSMAF)


public static hasSMAF : Boolean [read-only]

Devuelve true si el dispositivo mcil puede reproducir datos de sonido en formato de audio SMAF. En caso contrario, esta propiedad devuelve false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasSMAF);

hasSMS (propiedad capabilities.hasSMS)


public static hasSMS : Number [read-only]

Indica si el dispositivo mvil puede enviar mensajes SMS con el comando GetURL de ActionScript. Si Flash Lite puede enviar mensajes SMS, esta variable es defined y tiene el valor 1. De lo contrario, la variable es undefined. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasSMS);

hasStreamingAudio (propiedad capabilities.hasStreamingAudio)


public static hasStreamingAudio : Boolean [read-only]

Valor booleano que da como resultado true si el reproductor es capaz de reproducir audio sin interrupcin; en caso contrario, da como resultado false. La cadena de servidor es SA. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasStreamingAudio);

capabilities (System.capabilities)

293

hasStreamingVideo (propiedad capabilities.hasStreamingVideo)


public static hasStreamingVideo : Boolean [read-only]

Valor booleano que indica si el reproductor es capaz de reproducir vdeo sin interrupcin. Nota:la propiedad hasStreamingVideo siempre es false en Flash Lite 2.0 y Flash Lite 2.1, indicando que los archivos FLV de flujo no son compatibles. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasStreamingVideo);

hasStylus (propiedad capabilities.hasStylus)


public static hasStylus : Boolean [read-only]

Indica si el dispositivo mvil admite eventos relacionados con el lpiz stylus. Esta propiedad devuelve true si la plataforma del dispositivo mvil no es compatible con eventos relacionados con el lpiz stylus. En caso contrario, esta propiedad devuelve false. El lpiz stylus no es compatible con el evento onMouseMove. Este indicador permite que el contenido de Flash compruebe si la plataforma para un dispositivo mvil es compatible con este evento. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasStylus);

hasVideoEncoder (propiedad capabilities.hasVideoEncoder)


public static hasVideoEncoder : Boolean [read-only]

Especifica si Flash Player puede codificar un flujo de vdeo. Valor booleano que da como resultado true si el reproductor permite codificar un flujo de vdeo, como, por ejemplo, el procedente de una cmara; en caso contrario, el resultado es false. La cadena de servidor es VE. Nota: en Flash Lite 2.0, el valor devuelto es siempre false.

294

Clases de ActionScript

Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.hasVideoEncoder);

hasXMLSocket (propiedad capabilities.hasXMLSocket)


public static hasXMLSocket : Number [read-only]

Indica si la aplicacin host admite sockets XML. Si la aplicacin host admite sockets XML, esta variable es defined y tiene el valor 1. De lo contrario, la variable es undefined.

imageMIMETypes (propiedad capabilities.imageMIMETypes)


public static imageMIMETypes : Array [read-only]

Devuelve una matriz que contiene todos los tipos MIME con los que la funcin loadMovie y los cdecs del dispositivo mvil son compatibles para poder procesar imgenes. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.imageMIMETypes);

isDebugger (propiedad capabilities.isDebugger)


public static isDebugger : Boolean [read-only]

Valor booleano que especifica si el reproductor es de una versin lanzada oficialmente (false) o una versin especial de depuracin (true). La cadena de servidor es DEB. Nota: en Flash Lite 2.0, el valor devuelto es siempre false. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.isDebugger);

capabilities (System.capabilities)

295

language (propiedad capabilities.language)


public static language : String [read-only]

Indica el idioma del sistema en el que se est ejecutando el reproductor. Esta propiedad se especifica como un cdigo de idioma de dos letras en minsculas de ISO 639-1. En el caso del idioma chino, una subetiqueta adicional de cdigo de dos letras de pas de ISO 3166 permite distinguir si se trata de chino simplificado o chino tradicional. Los idiomas en s se denominan por sus etiquetas en ingls. Por ejemplo, fr especifica francs. Esta propiedad cambi de dos formas en Flash Player 7. En primer lugar, el cdigo de idioma de los sistemas en ingls ya no incluye el cdigo de idioma. En Flash Player 6, todos los sistemas en ingls devolvan el cdigo de idioma y la subetiqueta de cdigo de pas de dos letras (en-US). En Flash Player 7, los sistemas en ingls slo devuelven el cdigo de idioma (en). En segundo lugar, en sistemas Microsoft Windows, esta propiedad ahora devuelve el idioma de la interfaz de usuario. En Flash Player 6 ejecutado en la plataforma Microsoft Windows, System.capabilities.language devolva la localizacin de idioma/pas del usuario, que controla la configuracin de formato para fechas, horas, divisa y nmeros grandes. En Flash Player 7 ejecutado en la plataforma Microsoft Windows, esta propiedad devuelve ahora el idioma de la interfaz de usuario, que hace referencia al idioma empleado en todos los mens, cuadros de dilogo, mensajes de error y archivos de ayuda.
Idioma
Checo Dans Holands Ingls Finlands Francs Alemn Hngaro Italiano Japons Coreano Noruego Otro/desconocido Polaco

Etiqueta
cs da nl en fi fr de hu it ja ko no xu pl

296

Clases de ActionScript

Idioma
Portugus Ruso Chino simplificado Espaol Sueco Chino tradicional Turco

Etiqueta
pt ru zh-CN es sv zh-TW tr

Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.language);

localFileReadDisable (propiedad capabilities.localFileReadDisable)


public static localFileReadDisable : Boolean [read-only]

Valor booleano que indica si el acceso de lectura al disco duro del usuario ha sido prohibido (true) o autorizado (false) administrativamente. Si es true,, Flash Player no podr leer archivos (incluido el primer archivo SWF con el que se inicia Flash Player) del disco duro del usuario. Por ejemplo, los intentos de lectura de un archivo del disco duro del usuario mediante XML.load(), LoadMovie() o LoadVars.load() fallarn si esta propiedad se establece como true. La lectura de bibliotecas compartidas en tiempo de ejecucin tambin se bloquear si esta propiedad se establece como true, aunque se autorizar la lectura de objetos compartidos locales con independencia de cul sea el valor de esta propiedad. La cadena de servidor es LFD. Nota: en Flash Lite 2.0, el valor devuelto es siempre true. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.localFileReadDisable);

capabilities (System.capabilities)

297

MIMETypes (propiedad capabilities.MIMETypes)


public static MIMETypes : Array [read-only]

Devuelve una matriz que contiene todos los tipos MIME compatibles con la funcin loadMovie y los objetos Sound y Video. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.MIMETypes);

os (propiedad capabilities.os)
public static os : String [read-only]

Cadena que indica el sistema operativo actual. La propiedad os puede devolver las siguientes cadenas: "Windows XP", "Windows 2000", "Windows NT", "Windows 98/ME", "Windows 95", "Windows CE" (slo disponible en Flash Player SDK, no en la versin de escritorio), "Linux" y "MacOS". La cadena de servidor es OS. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.os);

screenOrientation (propiedad capabilities.screenOrientation)


public static screenOrientation : String [read-only]

Esta variable de miembro del objeto System.capabilities indica la orientacin actual de la pantalla. Posibles valores para la propiedad screenOrientation:

normal:

la pantalla tiene orientacin normal la pantalla se gira 90 grados la pantalla se gira 180 grados la pantalla se gira 270 grados

rotated90:

rotated180: rotated270:

Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.screenOrientation);

298

Clases de ActionScript

screenResolutionX (propiedad capabilities.screenResolutionX)


public static screenResolutionX : Number [read-only]

Entero que indica la resolucin horizontal mxima de la pantalla. La cadena de servidor es R (que devuelve la anchura y la altura de la pantalla). Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.screenResolutionX);

screenResolutionY (propiedad capabilities.screenResolutionY)


public static screenResolutionY : Number [read-only]

Entero que indica la resolucin vertical mxima de la pantalla. La cadena de servidor es R (que devuelve la anchura y la altura de la pantalla). Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.screenResolutionY);

softKeyCount (propiedad capabilities.softKeyCount)


public static softKeyCount : Number [read-only]

Indica el nmero de teclas programables reasignables compatibles con el dispositivo mvil. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.softKeyCount);

version (propiedad capabilities.version)


public static version : String [read-only]

Cadena que contiene la informacin de plataforma y versin de Flash Player (por ejemplo, "WIN 7,1,0,0"). La cadena de servidor es V.

capabilities (System.capabilities)

299

Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.version);

videoMIMETypes (propiedad capabilities.videoMIMETypes)


public static videoMIMETypes : Array [read-only]

Indica todos los tipos MIME para vdeo compatibles con los cdecs del dispositivo mvil. Esta propiedad devuelve una matriz con todos los tipos MIME para vdeo compatibles con los cdecs del dispositivo mvil. Ejemplo El ejemplo siguiente realiza un seguimiento del valor de esta propiedad de slo lectura:
trace(System.capabilities.videoMIMETypes);

Color
Object | +-Color public class Color extends Object

La clase Color le permite establecer el valor de color RGB y la transformacin de color de clips de pelcula y recuperar dichos valores una vez que se hayan establecido. Debe utilizar el constructor new Color() para crear un objeto Color antes de llamar a sus mtodos. Resumen de propiedades Propiedades heredadas de la clase Object
constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

300

Clases de ActionScript

Resumen de constructores
Firma
Color(target:Object)

Descripcin
Crea un objeto Color para el clip de pelcula especificado por el parmetro target_mc.

Resumen de mtodos
Modificadores Firma
getRGB() : Number

Descripcin
Devuelve la combinacin R+G+B utilizada por el objeto de color. Devuelve el valor de transformacin establecido por la ltima llamada a Color.setTransform(). Especifica un color RGB para un objeto Color. Establece la informacin de transformacin para un objeto Color.

getTransform() : Object setRGB(offset:Numb er) : Void setTransform(trans formObject:Object) : Void

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

Constructor Color()
public Color(target:Object)

Crea un objeto Color para el clip de pelcula especificado por el parmetro target_mc. Posteriormente podr utilizar los mtodos de dicho objeto Color para cambiar el color de todo el clip de pelcula de destino. Parmetros
target:Object

- Nombre de instancia de un clip de pelcula.

Color

301

Ejemplo El ejemplo siguiente crea un objeto Color llamado my_color para el clip de pelcula my_mc y establece su valor RGB en naranja:
var my_color:Color = new Color(my_mc); my_color.setRGB(0xff9933);

getRGB (mtodo Color.getRGB)


public getRGB() : Number

Devuelve la combinacin R+G+B utilizada por el objeto de color. Valor devuelto


Number

- Nmero que representa al valor de nmero RGB para el color especificado.

Ejemplo El cdigo siguiente recupera el valor RGB para el objeto my_color, convierte el valor en una cadena hexadecimal y la asigna a la variable myValue. Para ver cmo funciona este cdigo, aada una instancia de clip de pelcula al escenario y asgnele el nombre de instancia my_mc:
var my_color:Color = new Color(my_mc); // establece el color my_color.setRGB(0xff9933); var myValue:String = my_color.getRGB().toString(16); // rastrea el valor del color trace(myValue); // rastrea ff9933

Vase tambin
setRGB (mtodo Color.setRGB)

getTransform (mtodo Color.getTransform)


public getTransform() : Object

Devuelve el valor de transformacin establecido por la ltima llamada a Color.setTransform(). Valor devuelto - Objeto cuyas propiedades contienen los valores actuales de desplazamiento y porcentaje para el color especificado.
Object

302

Clases de ActionScript

Ejemplo El ejemplo siguiente obtiene el objeto de transformacin y, a continuacin, establece nuevos porcentajes para colores y alfa de my_mc en relacin con sus valores actuales. Para ver cmo funciona esta cdigo, site un clip de pelcula multicolor en el escenario con el nombre de instancia my_mc. A continuacin, site el cdigo siguiente en el fotograma 1 de la lnea de tiempo principal y seleccione Control > Probar pelcula:
var my_color:Color = new Color(my_mc); var myTransform:Object = my_color.getTransform(); myTransform = { ra: 50, ba: 50, aa: 30}; my_color.setTransform(myTransform);

Para obtener descripciones de los parmetros de un objeto de transformacin de color, consulte Color.setTransform(). Vase tambin
setTransform (mtodo Color.setTransform)

setRGB (mtodo Color.setRGB)


public setRGB(offset:Number) : Void

Especifica un color RGB para un objeto Color. La llamada a este mtodo provoca la sustitucin de toda la configuracin anterior de Color.setTransform(). Parmetros - 0xRRGGBB Color RGB o hexadecimal que desea establecer. RR, GG y BB constan cada uno de dos dgitos hexadecimales que especifican el desplazamiento de cada componente de color. El 0x indica al compilador de ActionScript que el nmero es un valor hexadecimal.
offset:Number

Ejemplo Este ejemplo establece el valor de color RGB del clip de pelcula my_mc. Para ver cmo funciona este cdigo, site un clip de pelcula en el escenario con el nombre de instancia my_mc. A continuacin, site el cdigo siguiente en el fotograma 1 de la lnea de tiempo principal y seleccione Control > Probar pelcula:
var my_color:Color = new Color(my_mc); my_color.setRGB(0xFF0000); // my_mc pasa a rojo

Vase tambin
setTransform (mtodo Color.setTransform)

Color

303

setTransform (mtodo Color.setTransform)


public setTransform(transformObject:Object) : Void

Establece la informacin de transformacin para un objeto Color. El parmetro colorTransformObject es un objeto genrico que usted crea desde el constructor new Object. Incluye parmetros que especifican los valores de porcentaje y desplazamiento para los componentes rojo, verde, azul y alfa (transparencia) de un color, introducidos en el formato 0xRRGGBBAA. Los parmetros de un objeto de transformacin de color corresponden a la configuracin del cuadro de dilogo Efecto avanzado y se definen de la siguiente forma:

ra rb ga gb ba bb aa ab

es el porcentaje del componente rojo (de -100 a 100). es el desplazamiento del componente rojo (de -255 a 255). es el porcentaje del componente rojo (de -100 a 100). es el desplazamiento del componente rojo (de -255 a 255). es el porcentaje del componente rojo (de -100 a 100). es el desplazamiento del componente rojo (de -255 a 255). es el porcentaje de alfa (de -100 a 100). es el desplazamiento de alfa (de -255 a 255).

Un parmetro colorTransformObject se crea de la siguiente forma:


var myColorTransform:Object = new Object(); myColorTransform.ra = 50; myColorTransform.rb = 244; myColorTransform.ga = 40; myColorTransform.gb = 112; myColorTransform.ba = 12; myColorTransform.bb = 90; myColorTransform.aa = 40; myColorTransform.ab = 70;

Tambin puede utilizar la siguiente sintaxis para crear un parmetro colorTransformObject:


var myColorTransform:Object = { ra: 50, rb: 244, ga: 40, gb: 112, ba: 12, bb: 90, aa: 40, ab: 70}

304

Clases de ActionScript

Parmetros
transformObject:Object - Un objeto creado con el constructor new Object. Esta instancia de la clase Object debe tener las siguientes propiedades que especifican valores de transformacin de color: ra,rb,ga,gb,ba,bb,aa,ab. A continuacin se explican estas propiedades.

Ejemplo Este ejemplo crea un objeto Color para un archivo SWF de destino, crea un objeto genrico llamado myColorTransform con las propiedades definidas anteriormente y utiliza el mtodo setTransform() para pasar colorTransformObject a un objeto Color. Para utilizar este cdigo en un documento de Flash (FLA), sitelo en el fotograma 1 de la lnea de tiempo principal y site un clip de pelcula en el escenario con el nombre de instancia my_mc, como en el cdigo siguiente:
// Crea un objeto Color llamado my_color para el my_mc de destino var my_color:Color = new Color(my_mc); // Crea un objeto de transformacin Color llamado myColorTransform utilizando // Establece los valores para myColorTransform var myColorTransform:Object = { ra: 50, rb: 244, ga: 40, gb: 112, ba: 12, bb: 90, aa: 40, ab: 70}; // Asocia el objeto de transformacin de color al objeto Color // creado para my_mc my_color.setTransform(myColorTransform);

Vase tambin
Object

Date
Object | +-Date public class Date extends Object

La clase Date permite recuperar los valores de fecha y hora relativos a la hora universal (hora de Greenwich, ahora conocida como hora universal o UTC) o al sistema operativo en el que se ejecuta Flash Player. Los mtodos de la clase Date no son estticos, pero afectan solamente al objeto Date concreto especificado al llamar al mtodo. El mtodo Date.UTC() es una excepcin; es un mtodo esttico.

Date

305

La clase Date controla el horario de verano de forma distinta en funcin del sistema operativo y la versin de Flash Player. Flash Player 6 y posteriores controlan el horario de verano en los siguientes sistemas operativos de estas formas:

Windows: el objeto Date ajusta automticamente su salida para el horario de verano. El objeto Date detecta si se emplea el horario de verano en la ubicacin actual y, si es as, detecta la fecha y la hora en la que se produce el cambio del horario estndar al horario de verano. No obstante, las fechas de transicin en vigor actualmente se aplican a fechas pasadas y futuras, por lo que el horario de verano podra calcularse errneamente en el caso de fechas pasadas si en la ubicacin en cuestin las fechas de transicin eran diferentes. Mac OS X: el objeto Date ajusta automticamente su salida para el horario de verano. La base de datos de informacin de zona horaria de Mac OS X se utiliza para determinar si debe aplicarse el cambio de hora a alguna fecha u hora actual o pasada. Mac OS 9: el sistema operativo slo proporciona informacin suficiente para determinar si debe aplicarse el cambio de hora a la fecha y la hora actuales. Por consiguiente, el objeto de fecha da por hecho que el cambio de hora actual afecta tanto a fechas y horas futuras como pasadas.

Flash Player 5 controla el cambio de hora en los siguientes sistemas operativos como se indica a continuacin:

Windows: se aplican siempre las normas estadounidenses de cambio de hora, lo que lleva a transiciones incorrectas en Europa y otras zonas que emplean el cambio de hora pero con transiciones diferentes a las de EE. UU. Flash detecta correctamente si se utiliza el cambio de hora en la ubicacin actual.

Para llamar a los mtodos de la clase Date, primero debe crear un objeto Date utilizando el constructor para la clase Date, descrito posteriormente en esta seccin. Resumen de propiedades Propiedades heredadas de la clase Object
constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

306

Clases de ActionScript

Resumen de constructores
Firma
ue:Number], [month:Number], [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number ])

Descripcin
especificadas.

Date([yearOrTimeval Construye un objeto new Date que contiene la fecha y la hora

Resumen de mtodos
Modificadores Firma
getDate() : Number

Descripcin
Devuelve el da del mes (un entero del 1 al 31) del objeto Date especificado de acuerdo con la hora local. Devuelve el da de la semana (0 para domingo, 1 para lunes, etc.) del objeto Date especificado de acuerdo con la hora local. Devuelve el ao completo (un nmero de cuatro dgitos, como, por ejemplo, 2000) del objeto Date especificado de acuerdo con la hora local. Date especificado de acuerdo con la hora local.

getDay() : Number

getFullYear() : Number

getHours() : Number Devuelve la hora (un entero del 0 al 23) del objeto

getLocaleLongDate() Devuelve una cadena que representa la fecha : String

actual, en formato largo, con formato segn la configuracin local definida. actual, en formato corto, con formato segn la configuracin local definida. Devuelve una cadena que representa la hora actual con formato segn la configuracin local definida. del objeto Date especificado de acuerdo con la hora local. Devuelve los minutos (un entero del 0 al 59) del objeto Date especificado de acuerdo con la hora local.

getLocaleShortDate( Devuelve una cadena que representa la fecha ) : String

getLocaleTime() : String

getMilliseconds() : Devuelve los milisegundos (un entero del 0 al 999) Number

getMinutes() : Number

Date

307

Modificadores Firma

Descripcin
del objeto Date especificado de acuerdo con la hora local.

getMonth() : Number Devuelve el mes (0 para enero, 1 para febrero, etc.)

getSeconds() : Number

Devuelve los segundos (un entero del 0 al 59) del objeto Date especificado de acuerdo con la hora local. Devuelve el nmero de milisegundos desde la media noche del 1 de enero de 1970, hora universal, para el objeto Date especificado. local del equipo y la hora universal. Devuelve el da del mes (un entero del 1 al 31) del objeto Date especificado de acuerdo con la hora universal. Devuelve el da de la semana (0 para domingo, 1 para lunes, etc.) del objeto Date especificado de acuerdo con la hora universal. Devuelve los cuatro dgitos del ao del objeto Date especificado de acuerdo con la hora universal. Devuelve la hora (un entero del 0 al 23) del objeto Date especificado de acuerdo con la hora universal. del objeto Date especificado de acuerdo con la hora universal. Devuelve los minutos (un entero del 0 al 59) del objeto Date especificado, de acuerdo con la hora universal. Devuelve el mes (de 0 [enero] a 11 [diciembre]) del objeto Date especificado de acuerdo con la hora universal. Devuelve los segundos (un entero del 0 al 59) del objeto Date especificado de acuerdo con la hora universal. Devuelve el ao de este objeto Date segn la hora universal (UTC).

getTime() : Number

getTimezoneOffset() Devuelve la diferencia, en minutos, entre la hora : Number getUTCDate() : Number

getUTCDay() : Number

getUTCFullYear() : Number getUTCHours() : Number

getUTCMilliseconds( Devuelve los milisegundos (un entero del 0 al 999) ) : Number

getUTCMinutes() : Number

getUTCMonth() : Number

getUTCSeconds() : Number

getUTCYear() : Number

308

Clases de ActionScript

Modificadores Firma
getYear() : Number

Descripcin
Devuelve el ao del objeto Date especificado de acuerdo con la hora local. especificado de acuerdo con la hora local y devuelve la nueva hora en milisegundos. acuerdo con la hora local y devuelve la nueva hora en milisegundos.

setDate(date:Number Establece el da del mes para el objeto Date ) : Number

setFullYear(year:Nu Establece el ao del objeto Date especificado de mber, [month:Number], [date:Number]) : Number setHours(hour:Numbe Establece las horas del objeto Date especificado r) : Number

de acuerdo con la hora local y devuelve la nueva hora en milisegundos. especificado de acuerdo con la hora local y devuelve la nueva hora en milisegundos. de acuerdo con la hora local y devuelve la nueva hora en milisegundos. hora local y devuelve la nueva hora en milisegundos. especificado en la hora local y devuelve la nueva hora en milisegundos. milisegundos desde la media noche del 1 de enero de 1970 y devuelve la nueva hora en milisegundos. la hora universal y devuelve la nueva hora en milisegundos. (my_date) en la hora universal y devuelve la nueva hora en milisegundos.

setMilliseconds(mil Establece los milisegundos del objeto Date lisecond:Number) : Number

setMinutes(minute:N Establece los minutos del objeto Date especificado umber) : Number

setMonth(month:Numb Establece el mes del objeto Date especificado en la er, [date:Number]) : Number

setSeconds(second:N Establece los segundos del objeto Date umber) : Number

setTime(millisecond Establece la fecha del objeto Date especificado en :Number) : Number

setUTCDate(date:Num Establece la fecha del objeto Date especificado en ber) : Number

setUTCFullYear(year Establece el ao del objeto Date especificado :Number, [month:Number], [date:Number]) : Number

Date

309

Modificadores Firma
mber, [minute:Number], [second:Number], [millisecond:Number ]) : Number

Descripcin
la hora universal y devuelve la nueva hora en milisegundos.

setUTCHours(hour:Nu Establece la hora del objeto Date especificado en

setUTCMilliseconds( Establece los milisegundos del objeto Date millisecond:Number) especificado en la hora universal y devuelve la : Number

nueva hora en milisegundos. en la hora universal y devuelve la nueva hora en milisegundos.

setUTCMinutes(minut Establece el minuto del objeto Date especificado e:Number, [second:Number], [millisecond:Number ]) : Number setUTCMonth(month:N Establece el mes y, opcionalmente, el da del objeto umber, [date:Number]) : Number setUTCSeconds(secon Establece los segundos del objeto Date d:Number, ]) : Number setYear(year:Number Establece el ao del objeto Date especificado en la ) : Number

Date especificado en la hora universal y devuelve la nueva hora en milisegundos.

especificado en la hora universal y devuelve la

[millisecond:Number nueva hora en milisegundos.

hora local y devuelve la nueva hora en milisegundos. fecha especificado en un formato legible.

toString() : String Devuelve un valor de cadena para el objeto de

static

UTC(year:Number, month:Number, [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number ]) : Number valueOf() : Number

Devuelve el nmero de milisegundos entre la media noche del 1 de enero de 1970, hora universal, y la hora especificada en los parmetros.

Devuelve el nmero de milisegundos desde la medianoche del 1 de enero de 1970, hora universal, para este objeto Date.

310

Clases de ActionScript

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

Constructor Date
public Date([yearOrTimevalue:Number], [month:Number], [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number])

Construye un objeto new Date que contiene la fecha y la hora especificadas. El constructor Date() toma hasta siete parmetros (year, month, ..., millisecond) para especificar una fecha y una hora en milisegundos. Tambin es posible pasar un valor nico al constructor Date() que indique un valor de hora basado en el nmero de milisegundos desde el 1 de enero de 1970 a las 0:00:000 GMT. Tambin es posible no especificar parmetros y asignar al objeto de fecha Date() la fecha y la hora actuales. Por ejemplo, este cdigo muestra varias formas distintas de crear un objeto Date:
var var var var d1:Date d3:Date d4:Date d5:Date = = = = new new new new Date(); Date(2000, 0, 1); Date(65, 2, 6, 9, 30, 15, 0); Date(-14159025000);

En la primera lnea de cdigo, se establece un objeto Date con la hora en que se ejecut la sentencia de asignacin. En la segunda lnea se crea un objeto Date con los parmetros year, month y date que se le han pasado, lo que da como resultado la hora 0:00:00 GMT del 1 de enero de 2000. En la tercera lnea, se crea un objeto Date al que se han pasado los parmetros year, month y date, lo que da como resultado la hora 09:30:15 GMT (+ 0 milisegundos) 6 de marzo, 1965. El parmetro year se especifica como un entero de dos dgitos, por lo que se interpreta como 1965. En la cuarta lnea slo se pasa un parmetro, que es un valor de hora que representa el nmero de milisegundos antes o despus de las 0:00:00 GMT del 1 de enero de 1970; dado que el valor es negativo, representa una hora anterior a las 0:00:00 GMT del 1 de enero de 1970 y, en este caso, la hora es 02:56:15 GMT del 21 de julio de 1969.

Date

311

Parmetros
yearOrTimevalue:Number

[opcional] - Si se especifican otros parmetros, este nmero representa un ao (por ejemplo, 1965); en caso contrario, representa un valor de hora. Si el nmero representa un ao, un valor de 0 a 99 indica de 1900 a 1999; en caso contrario deben especificarse los cuatro dgitos del ao. Si el nmero representa un valor de hora (no se especifican otros parmetros), es el nmero de milisegundos antes o despus de las 0:00:00 GMT del 1 de enero de 1970; un valor negativo representa una hora anterior a las 0:00:00 GMT del 1 de enero de 1970, y un valor positivo representa una hora posterior. [opcional] - Un entero de 0 (enero) a 11 (diciembre). [opcional] - Entero de 1 a 31. [opcional] - Entero de 0 (medianoche) a 23 (11 de la noche). [opcional] - Entero de 1 a 59. [opcional] - Entero de 1 a 59. [opcional] - Entero de 0 a 999 milisegundos.

month:Number date:Number hour:Number

minute:Number second:Number

millisecond:Number

Ejemplo El ejemplo siguiente recupera la fecha y la hora actuales:


var now_date:Date = new Date();

El ejemplo siguiente crea un objeto new Date para el cumpleaos de Mary, el 12 de agosto de 1974 (dado que el parmetro month se basa en ceros, el ejemplo utiliza 7 para el mes, no 8):
var maryBirthday:Date = new Date (74, 7, 12);

El ejemplo siguiente crea un objeto new Date y concatena los valores devueltos de Date.getMonth(), Date.getDate() y Date.getFullYear():
var today_date:Date = new Date(); var date_str:String = ((today_date.getMonth()+1)+"/ "+today_date.getDate()+"/"+today_date.getFullYear()); trace(date_str); // muestra la fecha actual en formato de fecha de Estados Unidos

Vase tambin
getMonth (mtodo Date.getMonth), getDate (mtodo Date.getDate), getFullYear (mtodo Date.getFullYear)

312

Clases de ActionScript

getDate (mtodo Date.getDate)


public getDate() : Number

Devuelve el da del mes (un entero del 1 al 31) del objeto Date especificado de acuerdo con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un objeto new Date y concatena los valores devueltos de Date.getMonth(), Date.getDate() y Date.getFullYear():
var today_date:Date = new Date(); var date_str:String = (today_date.getDate()+"/ "+(today_date.getMonth()+1)+"/"+today_date.getFullYear()); trace(date_str); // muestra la fecha actual en formato de fecha de Estados Unidos

Vase tambin
getMonth (mtodo Date.getMonth), getFullYear (mtodo Date.getFullYear)

getDay (mtodo Date.getDay)


public getDay() : Number

Devuelve el da de la semana (0 para domingo, 1 para lunes, etc.) del objeto Date especificado de acuerdo con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Valor devuelto
Number

- Un entero que representa el da de la semana.

Ejemplo El ejemplo siguiente crea un objeto new Date y utiliza getDay() para determinar el da actual de la semana:
var dayOfWeek_array:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var today_date:Date = new Date(); var day_str:String = dayOfWeek_array[today_date.getDay()]; trace("Today is "+day_str);

Date

313

getFullYear (mtodo Date.getFullYear)


public getFullYear() : Number

Devuelve el ao completo (un nmero de cuatro dgitos, como, por ejemplo, 2000) del objeto Date especificado de acuerdo con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Valor devuelto
Number

- Entero que representa el ao.

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date. La sentencia trace muestra el valor devuelto por el mtodo getFullYear().
var my_date:Date = new Date(); trace(my_date.getYear()); // muestra 104 trace(my_date.getFullYear()); // muestra el ao actual

getHours (mtodo Date.getHours)


public getHours() : Number

Devuelve la hora (un entero del 0 al 23) del objeto Date especificado de acuerdo con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date basado en la hora actual y utiliza el mtodo getHours() para mostrar valores de hora de ese objeto:
var my_date:Date = new Date(); trace(my_date.getHours()); var my_date:Date = new Date(); var hourObj:Object = getHoursAmPm(my_date.getHours()); trace(hourObj.hours); trace(hourObj.ampm); function getHoursAmPm(hour24:Number):Object { var returnObj:Object = new Object(); returnObj.ampm = (hour24<12) ? "AM" : "PM"; var hour12:Number = hour24%12; if (hour12 == 0) {

314

Clases de ActionScript

hour12 = 12; } returnObj.hours = hour12; return returnObj; }

getLocaleLongDate (mtodo Date.getLocaleLongDate)


public getLocaleLongDate() : String

Devuelve una cadena que representa la fecha actual, en formato largo, con formato segn la configuracin local definida. Nota: el formato de la fecha depende del dispositivo mvil y de la configuracin local. Valor devuelto
String - Cadena que representa la fecha actual, en formato largo, con formato segn la configuracin local definida.

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date segn la hora actual. Tambin utiliza el mtodo getLocaleLongDate() para devolver la fecha actual, en formato largo, con formato segn la configuracin local definida, del siguiente modo:
var my_date:Date = new Date(); trace(my_date.getLocaleLongDate());

A continuacin se muestran los valores de muestra devueltos por getLocaleLongDate():


October 16, 2005 16 October 2005

getLocaleShortDate (mtodo Date.getLocaleShortDate)


public getLocaleShortDate() : String

Devuelve una cadena que representa la fecha actual, en formato corto, con formato segn la configuracin local definida. Nota: el formato de la fecha depende del dispositivo mvil y de la configuracin local. Valor devuelto
String - Cadena que representa la fecha actual, en formato corto, con formato segn la configuracin local definida.

Date

315

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date segn la hora actual. Tambin utiliza el mtodo getLocaleShortDate() para devolver la fecha actual, en formato corto, con formato segn la configuracin local definida, del siguiente modo:
var my_date:Date = new Date(); trace(my_date.getLocaleShortDate());

A continuacin se muestran los valores de muestra devueltos por getLocaleLongDate():


10/16/2005 16-10-2005

getLocaleTime (mtodo Date.getLocaleTime)


public getLocaleTime() : String

Devuelve una cadena que representa la hora actual con formato segn la configuracin local definida. Nota: el formato de la fecha depende del dispositivo mvil y de la configuracin local. Valor devuelto
String - Cadena que representa la hora actual con formato segn la configuracin local definida.

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date segn la hora actual. Tambin utiliza el mtodo getLocaleTime() para devolver la hora de la configuracin local, de la manera siguiente:
var my_date:Date = new Date(); trace(my_date.getLocaleTime());

A continuacin se muestran los valores de muestra devueltos por getLocaleTime():


6:10:44 PM 18:10:44

getMilliseconds (mtodo Date.getMilliseconds)


public getMilliseconds() : Number

Devuelve los milisegundos (un entero del 0 al 999) del objeto Date especificado de acuerdo con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player.

316

Clases de ActionScript

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date basado en la hora actual y utiliza el mtodo getMilliseconds() para devolver el valor en milisegundos de ese objeto:
var my_date:Date = new Date(); trace(my_date.getMilliseconds());

getMinutes (mtodo Date.getMinutes)


public getMinutes() : Number

Devuelve los minutos (un entero del 0 al 59) del objeto Date especificado de acuerdo con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date basado en la hora actual y utiliza el mtodo getMinutes() para devolver el valor en minutos de ese objeto:
var my_date:Date = new Date(); trace(my_date.getMinutes());

getMonth (mtodo Date.getMonth)


public getMonth() : Number

Devuelve el mes (0 para enero, 1 para febrero, etc.) del objeto Date especificado de acuerdo con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date basado en la hora actual y utiliza el mtodo getMonth() para devolver el valor del mes de ese objeto:
var my_date:Date = new Date(); trace(my_date.getMonth());

Date

317

El ejemplo siguiente utiliza el constructor para crear un objeto Date basado en la hora actual y utiliza el mtodo getMonth() para mostrar el mes actual como un valor numrico y mostrar el nombre del mes.
var my_date:Date = new Date(); trace(my_date.getMonth()); trace(getMonthAsString(my_date.getMonth())); function getMonthAsString(month:Number):String { var monthNames_array:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); return monthNames_array[month]; }

getSeconds (mtodo Date.getSeconds)


public getSeconds() : Number

Devuelve los segundos (un entero del 0 al 59) del objeto Date especificado de acuerdo con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date basado en la hora actual y utiliza el mtodo getSeconds() para devolver el valor en segundos de ese objeto:
var my_date:Date = new Date(); trace(my_date.getSeconds());

getTime (mtodo Date.getTime)


public getTime() : Number

Devuelve el nmero de milisegundos desde la media noche del 1 de enero de 1970, hora universal, para el objeto Date especificado. Utilice este mtodo para representar un instante concreto en el tiempo al comparar dos o ms objetos Date. Valor devuelto
Number

- Un entero.

318

Clases de ActionScript

Ejemplo El ejemplo siguiente utiliza el constructor para crear un objeto Date basado en la hora actual y utiliza el mtodo getTime() para devolver el nmero de milisegundos desde la medianoche del 1 de enero de 1970:
var my_date:Date = new Date(); trace(my_date.getTime());

getTimezoneOffset (mtodo Date.getTimezoneOffset)


public getTimezoneOffset() : Number

Devuelve la diferencia, en minutos, entre la hora local del equipo y la hora universal. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente devuelve la diferencia entre la hora de verano local de San Francisco y la hora universal. La hora de verano slo se tiene en cuenta en el resultado si la fecha definida en el objeto Date se encuentra dentro del horario de verano. El resultado de este ejemplo es 420 minutos y aparece en el panel Salida (7 horas * 60 minutos/hora = 420 minutos). Este ejemplo utiliza el horario de verano de la costa del Pacfico de EE.UU. (PDT, GMT-0700). El resultado vara segn la ubicacin y el momento del ao.
var my_date:Date = new Date(); trace(my_date.getTimezoneOffset());

getUTCDate (mtodo Date.getUTCDate)


public getUTCDate() : Number

Devuelve el da del mes (un entero del 1 al 31) del objeto Date especificado de acuerdo con la hora universal. Valor devuelto
Number

- Un entero.

Date

319

Ejemplo El ejemplo siguiente crea un nuevo objeto Date y emplea Date.getUTCDate() y Date.getDate(). El valor que devuelve Date.getUTCDate() puede ser distinto del valor que devuelve Date.getDate(), segn la relacin existente entre la zona horaria local y la hora universal.
var my_date:Date = new Date(2004,8,25); trace(my_date.getUTCDate()); // salida: 25

Vase tambin
getDate (mtodo Date.getDate)

getUTCDay (mtodo Date.getUTCDay)


public getUTCDay() : Number

Devuelve el da de la semana (0 para domingo, 1 para lunes, etc.) del objeto Date especificado de acuerdo con la hora universal. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un nuevo objeto Date y emplea Date.getUTCDay() y Date.getDay(). El valor que devuelve Date.getUTCDay() puede ser distinto del valor que devuelve Date.getDay(), segn la relacin existente entre la zona horaria local y la hora universal.
var today_date:Date = new Date(); trace(today_date.getDay()); // la salida se basar en la zona horaria local trace(today_date.getUTCDay()); // la salida ser igual a getDay() ms o menos uno

Vase tambin
getDay (mtodo Date.getDay)

320

Clases de ActionScript

getUTCFullYear (mtodo Date.getUTCFullYear)


public getUTCFullYear() : Number

Devuelve los cuatro dgitos del ao del objeto Date especificado de acuerdo con la hora universal. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un nuevo objeto Date y emplea Date.getUTCFullYear() y Date.getFullYear(). El valor que devuelve Date.getUTCFullYear() puede ser distinto del valor que devuelve Date.getFullYear() si la fecha del da es 31 de diciembre o 1 de enero, segn la relacin existente entre la zona horaria local y la hora universal.
var today_date:Date = new Date(); trace(today_date.getFullYear()); // visualizacin basada en la zona horaria local trace(today_date.getUTCFullYear()); // muestra getYear() ms o menos 1

Vase tambin
getFullYear (mtodo Date.getFullYear)

getUTCHours (mtodo Date.getUTCHours)


public getUTCHours() : Number

Devuelve la hora (un entero del 0 al 23) del objeto Date especificado de acuerdo con la hora universal. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un nuevo objeto Date y emplea Date.getUTCHours() y Date.getHours(). El valor que devuelve Date.getUTCHours() puede ser distinto del valor que devuelve Date.getHours(), segn la relacin existente entre la zona horaria local y la hora universal.
var today_date:Date = new Date(); trace(today_date.getHours()); // visualizacin basada en la zona horaria local trace(today_date.getUTCHours()); // la visualizacin es igual a getHours() ms o menos 12

Date

321

Vase tambin
getHours (mtodo Date.getHours)

getUTCMilliseconds (mtodo Date.getUTCMilliseconds)


public getUTCMilliseconds() : Number

Devuelve los milisegundos (un entero del 0 al 999) del objeto Date especificado de acuerdo con la hora universal. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un objeto new Date y utiliza getUTCMilliseconds() para devolver el valor en milisegundos del objeto Date.
var today_date:Date = new Date(); trace(today_date.getUTCMilliseconds());

getUTCMinutes (mtodo Date.getUTCMinutes)


public getUTCMinutes() : Number

Devuelve los minutos (un entero del 0 al 59) del objeto Date especificado, de acuerdo con la hora universal. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un objeto new Date y utiliza getUTCMinutes() para devolver el valor en minutos del objeto Date:
var today_date:Date = new Date(); trace(today_date.getUTCMinutes());

322

Clases de ActionScript

getUTCMonth (mtodo Date.getUTCMonth)


public getUTCMonth() : Number

Devuelve el mes (de 0 [enero] a 11 [diciembre]) del objeto Date especificado de acuerdo con la hora universal. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un nuevo objeto Date y emplea Date.getUTCMonth() y Date.getMonth(). El valor que devuelve Date.getUTCMonth() puede ser distinto del valor que devuelve Date.getMonth() si la fecha del da es el primer o el ltima da del mes, segn la relacin existente entre la zona horaria local y la hora universal.
var today_date:Date = new Date(); trace(today_date.getMonth()); // salida basada en la zona horaria local trace(today_date.getUTCMonth()); // la salida es igual a getMonth() ms o menos 1

Vase tambin
getMonth (mtodo Date.getMonth)

getUTCSeconds (mtodo Date.getUTCSeconds)


public getUTCSeconds() : Number

Devuelve los segundos (un entero del 0 al 59) del objeto Date especificado de acuerdo con la hora universal. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un objeto new Date y utiliza getUTCSeconds() para devolver el valor en segundos del objeto Date:
var today_date:Date = new Date(); trace(today_date.getUTCSeconds());

Date

323

getUTCYear (mtodo Date.getUTCYear)


public getUTCYear() : Number

Devuelve el ao de este objeto Date segn la hora universal (UTC). El ao es el ao completo menos 1900. Por ejemplo, el ao 2000 se representa como 100. Valor devuelto
Number

Ejemplo El ejemplo siguiente crea un nuevo objeto Date y emplea Date.getUTCFullYear() y Date.getFullYear(). El valor que devuelve Date.getUTCFullYear() puede ser distinto del valor que devuelve Date.getFullYear() si la fecha del da es 31 de diciembre o 1 de enero, segn la relacin existente entre la zona horaria local y la hora universal.
var today_date:Date = new Date(); trace(today_date.getFullYear()); // visualizacin basada en la zona horaria local trace(today_date.getUTCFullYear()); // muestra getYear() ms o menos 1

getYear (mtodo Date.getYear)


public getYear() : Number

Devuelve el ao del objeto Date especificado de acuerdo con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. El ao es el ao completo menos 1900. Por ejemplo, el ao 2000 se representa como 100. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un objeto Date con el mes y el ao como mayo de 2004. El mtodo Date.getYear() devuelve 104 y Date.getFullYear() devuelve 2004:
var today_date:Date = new Date(2004,4); trace(today_date.getYear()); // salida: 104 trace(today_date.getFullYear()); // salida: 2004

Vase tambin
getFullYear (mtodo Date.getFullYear)

324

Clases de ActionScript

setDate (mtodo Date.setDate)


public setDate(date:Number) : Number

Establece el da del mes para el objeto Date especificado de acuerdo con la hora local y devuelve la nueva hora en milisegundos. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Parmetros
date:Number

- Entero de 1 a 31.

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la fecha como 15 de mayo de 2004 y utiliza Date.setDate() para cambiar la fecha a 25.05.04.
var today_date:Date = new Date(2004,4,15); trace(today_date.getDate()); //muestra 15 today_date.setDate(25); trace(today_date.getDate()); //muestra 25

setFullYear (mtodo Date.setFullYear)


public setFullYear(year:Number, [month:Number], [date:Number]) : Number

Establece el ao del objeto Date especificado de acuerdo con la hora local y devuelve la nueva hora en milisegundos. Si se especifican los parmetros month y date, stos se establecen con la hora local. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. La llamada a este mtodo no modifica los dems campos del objeto Date especificado, aunque y Date.getDay() pueden indicar un nuevo valor si cambia el da de la semana como resultado de la llamada a este mtodo.
Date.getUTCDay()

Parmetros
year:Number

- Nmero de cuatro dgitos que especifica un ao. Los nmeros de dos dgitos no representan aos de cuatro dgitos; por ejemplo, 99 no es el ao 1999, sino el ao 99.

month:Number [opcional] - Un entero de 0 (enero) a 11 (diciembre). Si omite este parmetro,

no se modificar el campo month del objeto Date especificado.


date:Number

[opcional] - Un nmero del 1 al 31. Si omite este parmetro, no se modificar el campo date del objeto Date especificado.

Date

325

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la fecha como 15 de mayo de 2004 y utiliza Date.setFullYear() para cambiar la fecha a 15.05.02.
var my_date:Date = new Date(2004,4,15); trace(my_date.getFullYear()); //salida: 2004 my_date.setFullYear(2002); trace(my_date.getFullYear()); //salida: 2002

Vase tambin
getUTCDay (mtodo Date.getUTCDay), getDay (mtodo Date.getDay)

setHours (mtodo Date.setHours)


public setHours(hour:Number) : Number

Establece las horas del objeto Date especificado de acuerdo con la hora local y devuelve la nueva hora en milisegundos. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Parmetros
hour:Number

- Entero de 0 (medianoche) a 23 (11 de la noche).

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la hora y la fecha como 8:00 de la maana del 15 de mayo de 2004, y utiliza Date.setHours() para cambiar la hora a las 4:00 de la tarde:
var my_date:Date = new Date(2004,4,15,8); trace(my_date.getHours()); // salida: 8 my_date.setHours(16); trace(my_date.getHours()); // salida: 16

326

Clases de ActionScript

setMilliseconds (mtodo Date.setMilliseconds)


public setMilliseconds(millisecond:Number) : Number

Establece los milisegundos del objeto Date especificado de acuerdo con la hora local y devuelve la nueva hora en milisegundos. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Parmetros
millisecond:Number

- Entero de 0 a 999.

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la fecha como las 8:30 de la maana del 15 de mayo de 2004 con el valor de milisegundos como 250 y, a continuacin, utiliza Date.setMilliseconds() para cambiar el valor de milisegundos a 575:
var my_date:Date = new Date(2004,4,15,8,30,0,250); trace(my_date.getMilliseconds()); // salida: 250 my_date.setMilliseconds(575); trace(my_date.getMilliseconds()); // salida: 575

setMinutes (mtodo Date.setMinutes)


public setMinutes(minute:Number) : Number

Establece los minutos del objeto Date especificado de acuerdo con la hora local y devuelve la nueva hora en milisegundos. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Parmetros
minute:Number

- Entero de 0 a 59.

Valor devuelto
Number

- Un entero.

Date

327

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la hora y la fecha como las 8:00 de la maana del 15 de mayo de 2004 y, a continuacin, utiliza Date.setMinutes() para cambiar la hora a las 8:30 de la maana:
var my_date:Date = new Date(2004,4,15,8,0); trace(my_date.getMinutes()); // salida: 0 my_date.setMinutes(30); trace(my_date.getMinutes()); // salida: 30

setMonth (mtodo Date.setMonth)


public setMonth(month:Number, [date:Number]) : Number

Establece el mes del objeto Date especificado en la hora local y devuelve la nueva hora en milisegundos. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Parmetros
month:Number date:Number

- Un entero de 0 (enero) a 11 (diciembre).

[opcional] - Un nmero del 1 al 31. Si omite este parmetro, no se modificar el campo date del objeto Date especificado. Valor devuelto

Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la fecha como 15 de mayo de 2004 y utiliza Date.setMonth() para cambiar la fecha a 15.06.04.
var my_date:Date = new Date(2004,4,15); trace(my_date.getMonth()); //salida: 4 my_date.setMonth(5); trace(my_date.getMonth()); //salida: 5

328

Clases de ActionScript

setSeconds (mtodo Date.setSeconds)


public setSeconds(second:Number) : Number

Establece los segundos del objeto Date especificado en la hora local y devuelve la nueva hora en milisegundos. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Parmetros
second:Number

- Entero de 0 a 59.

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la hora y la fecha como las 08:00:00 del 15 de mayo de 2004, y utiliza Date.setSeconds() para cambiar la hora a las 08:00:45.
var my_date:Date = new Date(2004,4,15,8,0,0); trace(my_date.getSeconds()); // salida: 0 my_date.setSeconds(45); trace(my_date.getSeconds()); // salida: 45

setTime (mtodo Date.setTime)


public setTime(millisecond:Number) : Number

Establece la fecha del objeto Date especificado en milisegundos desde la media noche del 1 de enero de 1970 y devuelve la nueva hora en milisegundos. Parmetros
millisecond:Number

- Un nmero; un valor de entero, donde 0 es la medianoche del 1 de

enero, hora universal. Valor devuelto


Number

- Un entero.

Date

329

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la hora y la fecha como las 08:00:00 del 15 de mayo de 2004, y utiliza Date.setTime() para cambiar la hora a las 08:30:00.
var my_date:Date = new Date(2004,4,15,8,0,0); var myDate_num:Number = my_date.getTime(); // convierte my_date a milisegundos myDate_num += 30 * 60 * 1000; // aade 30 minutos en milisegundos my_date.setTime(myDate_num); // establece el objeto de fecha my_date 30 hacia delante trace(my_date.getFullYear()); //salida: 2004 trace(my_date.getMonth()); //salida: 4 trace(my_date.getDate()); // salida: 15 trace(my_date.getHours()); // salida: 8 trace(my_date.getMinutes()); // salida: 30

setUTCDate (mtodo Date.setUTCDate)


public setUTCDate(date:Number) : Number

Establece la fecha del objeto Date especificado en la hora universal y devuelve la nueva hora en milisegundos. La llamada a este mtodo no modifica los dems campos del objeto Date especificado, aunque Date.getUTCDay() y Date.getDay() pueden indicar un nuevo valor si cambia el da de la semana como resultado de la llamada a este mtodo. Parmetros
date:Number

- Un nmero; un entero de 1 a 31.

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date con la fecha del da, utiliza Date.setUTCDate() para cambiar el valor de fecha a 10 y lo vuelve a cambiar a 25:
var my_date:Date = new Date(); my_date.setUTCDate(10); trace(my_date.getUTCDate()); // salida: 10 my_date.setUTCDate(25); trace(my_date.getUTCDate()); // salida: 25

Vase tambin
getUTCDay (mtodo Date.getUTCDay), getDay (mtodo Date.getDay)

330

Clases de ActionScript

getUTCFullYear (mtodo Date.getUTCFullYear)


public setUTCFullYear(year:Number, [month:Number], [date:Number]) : Number

Establece el ao del objeto Date especificado (my_date) en la hora universal y devuelve la nueva hora en milisegundos. Opcionalmente, este mtodo tambin puede establecer el mes y la fecha representados por el objeto Date especificado. La llamada a este mtodo no modifica los dems campos del objeto Date especificado, aunque Date.getUTCDay() y Date.getDay() pueden indicar un nuevo valor si cambia el da de la semana como resultado de la llamada a este mtodo. Parmetros
year:Number

- Un entero que representa el ao especificado como ao completo de cuatro dgitos, como 2000.

month:Number [opcional] - Un entero de 0 (enero) a 11 (diciembre). Si omite este parmetro,

no se modificar el campo month del objeto Date especificado.


date:Number

[opcional] - Un nmero del 1 al 31. Si omite este parmetro, no se modificar el campo date del objeto Date especificado. Valor devuelto

Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date con la fecha del da, utiliza Date.setUTCFullYear() para cambiar el valor de ao a 2001 y cambia la fecha a 25 de mayo de 1995:
var my_date:Date = new Date(); my_date.setUTCFullYear(2001); trace(my_date.getUTCFullYear()); // salida: 2001 my_date.setUTCFullYear(1995, 4, 25); trace(my_date.getUTCFullYear()); // salida: 1995 trace(my_date.getUTCMonth()); // salida: 4 trace(my_date.getUTCDate()); // salida: 25

Vase tambin
getUTCDay (mtodo Date.getUTCDay), getDay (mtodo Date.getDay)

Date

331

setUTCHours (mtodo Date.setUTCHours)


public setUTCHours(hour:Number, [minute:Number], [second:Number], [millisecond:Number]) : Number

Establece la hora del objeto Date especificado en la hora universal y devuelve la nueva hora en milisegundos. Parmetros
hour:Number

- Un nmero; un entero desde 0 (medianoche) a 23 (11 de la noche).

minute:Number

[opcional] - Un nmero del 0 al 59. Si omite este parmetro, no se modificar el campo minutes del objeto Date especificado. [opcional] - Un nmero del 0 al 59. Si omite este parmetro, no se modificar el campo seconds del objeto Date especificado.

second:Number

millisecond:Number [opcional] - Un nmero del 0 al 999. Si omite este parmetro, no se modificar el campo milliseconds del objeto Date especificado.

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date con la fecha del da, utiliza Date.setUTCHours() para cambiar la hora a 8:30 de la maana y vuelve a cambiar la hora a 5:30:47 de la tarde:
var my_date:Date = new Date(); my_date.setUTCHours(8,30); trace(my_date.getUTCHours()); // salida: 8 trace(my_date.getUTCMinutes()); // salida: 30 my_date.setUTCHours(17,30,47); trace(my_date.getUTCHours()); // salida: 17 trace(my_date.getUTCMinutes()); // salida: 30 trace(my_date.getUTCSeconds()); // salida: 47

332

Clases de ActionScript

setUTCMilliseconds (mtodo Date.setUTCMilliseconds)


public setUTCMilliseconds(millisecond:Number) : Number

Establece los milisegundos del objeto Date especificado en la hora universal y devuelve la nueva hora en milisegundos. Parmetros
millisecond:Number

- Entero de 0 a 999.

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la fecha como las 8:30 de la maana del 15 de mayo de 2004 con el valor de milisegundos como 250 y, a continuacin, utiliza Date.setUTCMilliseconds() para cambiar el valor de milisegundos a 575:
var my_date:Date = new Date(2004,4,15,8,30,0,250); trace(my_date.getUTCMilliseconds()); // salida: 250 my_date.setUTCMilliseconds(575); trace(my_date.getUTCMilliseconds()); // salida: 575

setUTCMinutes (mtodo Date.setUTCMinutes)


public setUTCMinutes(minute:Number, [second:Number], [millisecond:Number]) : Number

Establece el minuto del objeto Date especificado en la hora universal y devuelve la nueva hora en milisegundos. Parmetros
minute:Number second:Number

- Entero de 0 a 59.

[opcional] - Un nmero del 0 al 59. Si omite este parmetro, no se modificar el campo seconds del objeto Date especificado.

millisecond:Number [opcional] - Un nmero del 0 al 999. Si omite este parmetro, no se modificar el campo milliseconds del objeto Date especificado.

Valor devuelto
Number

- Un entero.

Date

333

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la hora y la fecha como las 08:00:00 del 15 de mayo de 2004, y utiliza Date.setUTCMinutes() para cambiar la hora a las 08:30:00.
var my_date:Date = new Date(2004,4,15,8,0); trace(my_date.getUTCMinutes()); // salida: 0 my_date.setUTCMinutes(30); trace(my_date.getUTCMinutes()); // salida: 30

setUTCMonth (mtodo Date.setUTCMonth)


public setUTCMonth(month:Number, [date:Number]) : Number

Establece el mes y, opcionalmente, el da del objeto Date especificado en la hora universal y devuelve la nueva hora en milisegundos. La llamada a este mtodo no modifica los dems campos del objeto Date especificado, aunque Date.getUTCDay() y Date.getDay() podran indicar un nuevo valor si cambia el da de la semana como resultado de especificar un valor para el parmetro date. Parmetros
month:Number date:Number

- Un entero de 0 (enero) a 11 (diciembre).

[opcional] - Un nmero del 1 al 31. Si omite este parmetro, no se modificar el campo date del objeto Date especificado. Valor devuelto

Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la fecha como 15 de mayo de 2004 y utiliza Date.setMonth() para cambiar la fecha a 15.06.04.
var today_date:Date = new Date(2004,4,15); trace(today_date.getUTCMonth()); // salida: 4 today_date.setUTCMonth(5); trace(today_date.getUTCMonth()); // salida: 5

Vase tambin
getUTCDay (mtodo Date.getUTCDay), getDay (mtodo Date.getDay)

334

Clases de ActionScript

setUTCSeconds (mtodo Date.setUTCSeconds)


public setUTCSeconds(second:Number, [millisecond:Number]) : Number

Establece los segundos del objeto Date especificado en la hora universal y devuelve la nueva hora en milisegundos. Parmetros
second:Number

- Entero de 0 a 59.

millisecond:Number [opcional] - Un nmero del 0 al 999. Si omite este parmetro, no se modificar el campo milliseconds del objeto Date especificado.

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea inicialmente un objeto new Date, que establece la hora y la fecha como las 08:00:00 del 15 de mayo de 2004, y utiliza Date.setSeconds() para cambiar la hora a las 08:30:45.
var my_date:Date = new Date(2004,4,15,8,0,0); trace(my_date.getUTCSeconds()); // salida: 0 my_date.setUTCSeconds(45); trace(my_date.getUTCSeconds()); // salida: 45

setYear (mtodo Date.setYear)


public setYear(year:Number) : Number

Establece el ao del objeto Date especificado en la hora local y devuelve la nueva hora en milisegundos. La hora local la determina el sistema operativo en el que se ejecuta Flash Player. Parmetros
year:Number - Un nmero que representa el ao. Si year es un entero entre 0 y 99, setYear define el ao como 1900 + year; en caso contrario, el ao es el valor del parmetro year.

Valor devuelto
Number

- Un entero.

Date

335

Ejemplo El ejemplo siguiente crea un objeto new Date en el que se establece la fecha como 25 de mayo de 2004, utiliza setYear() para cambiar el ao a 1999 y cambia el ao a 2003:
var my_date:Date = new Date(2004,4,25); trace(my_date.getYear()); // salida: 104 trace(my_date.getFullYear()); //salida: 2004 my_date.setYear(99); trace(my_date.getYear()); // salida: 99 trace(my_date.getFullYear()); //salida: 1999 my_date.setYear(2003); trace(my_date.getYear()); // salida: 103 trace(my_date.getFullYear()); //salida: 2003

toString (mtodo Date.toString)


public toString() : String

Devuelve un valor de cadena para el objeto de fecha especificado en un formato legible. Valor devuelto
String

- Una cadena.

Ejemplo El ejemplo siguiente devuelve la informacin del objeto Date dateOfBirth_date como una cadena. El resultado de las sentencias trace estn en hora local y varan segn corresponda. En el caso del horario de verano de la costa del Pacfico de EE.UU, el resultado es siete horas anterior a la hora universal: lunes, 12 de agosto 18:15:00 GMT-0700 de 1974.
var dateOfBirth_date:Date = new Date(74, 7, 12, 18, 15); trace (dateOfBirth_date); trace (dateOfBirth_date.toString());

UTC (mtodo Date.UTC)


public static UTC(year:Number, month:Number, [date:Number], [hour:Number], [minute:Number], [second:Number], [millisecond:Number]) : Number

Devuelve el nmero de milisegundos entre la media noche del 1 de enero de 1970, hora universal, y la hora especificada en los parmetros. Este es un mtodo esttico que se invoca a travs del constructor del objeto Date, no a travs de un objeto Date especfico. Este mtodo le permite crear un objeto Date que da por hecho la aplicacin de la hora universal, mientras que el constructor de Date da por hecho la aplicacin de la hora local.

336

Clases de ActionScript

Parmetros
year:Number

- Un entero de cuatro dgitos que representa el ao (por ejemplo, 2000). - Un entero de 0 (enero) a 11 (diciembre). [opcional] - Entero de 1 a 31. [opcional] - Entero de 0 (medianoche) a 23 (11 de la noche). [opcional] - Entero de 1 a 59. [opcional] - Entero de 1 a 59. [opcional] - Entero de 1 a 999.

month:Number date:Number hour:Number

minute:Number second:Number

millisecond:Number

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un nuevo objeto Date maryBirthday_date definido en hora universal. Esta es la variacin en hora universal del ejemplo empleado con el mtodo del constructor new Date. El resultado se expresa en hora local y vara segn corresponda. En el caso del horario de verano de la costa del Pacfico de EE.UU, el resultado es siete horas anterior a la hora universal: domingo, 11 de agosto 17:00:00 GMT-0700 de 1974.
var maryBirthday_date:Date = new Date(Date.UTC(1974, 7, 12)); trace(maryBirthday_date);

valueOf (mtodo Date.valueOf)


public valueOf() : Number

Devuelve el nmero de milisegundos desde la medianoche del 1 de enero de 1970, hora universal, para este objeto Date. Valor devuelto
Number

- El nmero de milisegundos.

Date

337

Error
Object | +-Error public class Error extends Object

Contiene informacin sobre un error que se ha producido en un script. Puede crear un objeto Error utilizando la funcin constructora Error. Normalmente emitir (throw) un nuevo objeto Error desde dentro de un bloque de cdigo try que posteriormente ser detectado por un bloque de cdigo catch o finally. Tambin puede crear una subclase de la clase Error y emitir instancias de dicha subclase. Resumen de propiedades
Modificadores Propiedad
message:String name:String

Descripcin
Contiene el mensaje asociado al objeto Error. Contiene el nombre del objeto Error.

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de constructores
Firma
ng])

Descripcin

Error([message:Stri Crea un nuevo objeto Error.

Resumen de mtodos
Modificadores Firma Descripcin
predeterminada o el valor contenido en Error.message, en el caso de que se haya definido.

toString() : String Devuelve la cadena "Error" de manera

338

Clases de ActionScript

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

Constructor Error
public Error([message:String])

Crea un nuevo objeto Error. Si se especifica message, su valor se asigna a la propiedad Error.message del objeto. Parmetros
message:String

[opcional] - Una cadena asociada al objeto Error.

Ejemplo En el ejemplo siguiente, una funcin emite un error (con un mensaje especificado) si las dos cadenas que se pasan no son idnticas:
function compareStrings(str1_str:String, str2_str:String):Void { if (str1_str != str2_str) { throw new Error("Strings do not match."); } } try { compareStrings("Dog", "dog"); // salida: Strings do not match. } catch (e_err:Error) { trace(e_err.toString()); }

Vase tambin
Sentencia throw, Sentencia try..catch..finally

Error

339

message (propiedad Error.message)


public message : String

Contiene el mensaje asociado al objeto Error. De manera predeterminada, el valor de esta propiedad es "Error". Puede especificar una propiedad message cuando cree un objeto Error pasando la cadena de error a la funcin constructora Error. Ejemplo En el ejemplo siguiente, una funcin emite un mensaje especificado segn los parmetros introducidos en theNum. Si pueden dividirse dos nmeros, se mostrarn SUCCESS y el nmero. Se mostrarn errores especficos sin intenta dividir entre 0 o slo introduce un parmetro:
function divideNum(num1:Number, num2:Number):Number { if (isNaN(num1) || isNaN(num2)) { throw new Error("divideNum function requires two numeric parameters."); } else if (num2 == 0) { throw new Error("cannot divide by zero."); } return num1/num2; } try { var theNum:Number = divideNum(1, 0); trace("SUCCESS! "+theNum); } catch (e_err:Error) { trace("ERROR! "+e_err.message); trace("\t"+e_err.name); }

Si comprueba este cdigo ActionScript sin ninguna modificacin en los nmeros que divide, aparecer un error en el panel Salida porque est intentando dividir entre 0. Vase tambin
Sentencia throw, Sentencia try..catch..finally

340

Clases de ActionScript

name (propiedad Error.name)


public name : String

Contiene el nombre del objeto Error. De manera predeterminada, el valor de esta propiedad es "Error". Ejemplo En el ejemplo siguiente, una funcin emite un error especificado segn los dos nmeros que se intentan dividir. Aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
function divideNumber(numerator:Number, denominator:Number):Number { if (isNaN(numerator) || isNaN(denominator)) { throw new Error("divideNum function requires two numeric parameters."); } else if (denominator == 0) { throw new DivideByZeroError(); } return numerator/denominator; } try { var theNum:Number = divideNumber(1, 0); trace("SUCCESS! "+theNum); // salida: DivideByZeroError -> Unable to divide by zero. } catch (e_err:DivideByZeroError) { // error de divisin por cero trace(e_err.name+" -> "+e_err.toString()); } catch (e_err:Error) { // error genrico trace(e_err.name+" -> "+e_err.toString()); }

Para aadir un error personalizado, aada el cdigo siguiente a un archivo .AS llamado DivideByZeroError.as y guarde el archivo de clase en el mismo directorio que el documento FLA.
class DivideByZeroError extends Error { var name:String = "DivideByZeroError"; var message:String = "Unable to divide by zero."; }

Vase tambin
Sentencia throw, Sentencia try..catch..finally

Error

341

toString (mtodo Error.toString)


public toString() : String

Devuelve la cadena "Error" de manera predeterminada o el valor contenido en Error.message, en el caso de que se haya definido. Valor devuelto
String

- Una cadena.

Ejemplo En el ejemplo siguiente, una funcin emite un error (con un mensaje especificado) si las dos cadenas que se pasan no son idnticas:
function compareStrings(str1_str:String, str2_str:String):Void { if (str1_str != str2_str) { throw new Error("Strings do not match."); } } try { compareStrings("Dog", "dog"); // salida: Strings do not match. } catch (e_err:Error) { trace(e_err.toString()); }

Vase tambin
message (propiedad Error.message), Sentencia throw, Sentencia try..catch..finally

342

Clases de ActionScript

ExtendedKey
Object | +-ExtendedKey public class ExtendedKey extends Object

Proporciona cdigos de tecla ampliados que se pueden devolver desde el mtodo Key.getCode(). Ejemplo El siguiente ejemplo crea un detector al que se llama cuando se pulsa una tecla. Utiliza el mtodo Key.getCode() para obtener el cdigo de tecla de la tecla presionada:
var myListener = new Object(); myListener.onKeyDown = function() { var code = Key.getCode(); switch(code) { case 50: trace("number 2 down"); break; case Key.ENTER: trace("enter down"); break; case ExtendedKey.SOFT1: trace("soft1 down"); break; default : trace(code + " down"); break; } } myListener.onKeyUp = function() { text2 = "onKeyUp called"; } Key.addListener(myListener);

Vase tambin
getCode (mtodo Key.getCode)

ExtendedKey

343

Resumen de propiedades
Modificadores Propiedad
static SOFT1:String

Descripcin
Valor del cdigo de tecla para la tecla programable SOFT1. Valor del cdigo de tecla para la tecla programable SOFT10. Valor del cdigo de tecla para la tecla programable SOFT11. Valor del cdigo de tecla para la tecla programable SOFT12. Valor del cdigo de tecla para la tecla programable SOFT2. Valor del cdigo de tecla para la tecla programable SOFT3. Valor del cdigo de tecla para la tecla programable SOFT4. Valor del cdigo de tecla para la tecla programable SOFT5. Valor del cdigo de tecla para la tecla programable SOFT6. Valor del cdigo de tecla para la tecla programable SOFT7. Valor del cdigo de tecla para la tecla programable SOFT8. Valor del cdigo de tecla para la tecla programable SOFT9.

static

SOFT10:String

static

SOFT11:String

static

SOFT12:String

static

SOFT2:String

static

SOFT3:String

static

SOFT4:String

static

SOFT5:String

static

SOFT6:String

static

SOFT7:String

static

SOFT8:String

static

SOFT9:String

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

344

Clases de ActionScript

Resumen de mtodos Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

SOFT1 (propiedad ExtendedKey.SOFT1)


public static SOFT1 : String

Valor del cdigo de tecla para la tecla programable SOFT1. El cdigo de tecla SOFT1 siempre corresponde a la tecla programable izquierda; SOFT2 siempre corresponde a la tecla programable izquierda. Ejemplo El siguiente ejemplo crea un detector que gestiona las teclas programables izquierda y derecha:
var myListener:Object = new Object(); myListener.onKeyDown = function() { var keyCode = Key.getCode(); switch (keyCode) { case ExtendedKey.SOFT1: // Gestiona la tecla programable izquierda. break; case ExtendedKey.SOFT2: // Gestiona la tecla programable izquierda. break; } } Key.addListener(myListener);

SOFT10 (propiedad ExtendedKey.SOFT10)


public static SOFT10 : String

Valor del cdigo de tecla para la tecla programable SOFT10.

ExtendedKey

345

SOFT11 (propiedad ExtendedKey.SOFT11)


public static SOFT11 : String

Valor del cdigo de tecla para la tecla programable SOFT11.

SOFT12 (propiedad ExtendedKey.SOFT12)


public static SOFT12 : String

Valor del cdigo de tecla para la tecla programable SOFT12.

SOFT2 (propiedad ExtendedKey.SOFT2)


public static SOFT2 : String

Valor del cdigo de tecla para la tecla programable SOFT2. El cdigo de tecla SOFT2 siempre corresponde a la tecla programable derecha; SOFT1 siempre corresponde a la tecla programable izquierda. Vase tambin
SOFT1 (propiedad ExtendedKey.SOFT1)

SOFT3 (propiedad ExtendedKey.SOFT3)


public static SOFT3 : String

Valor del cdigo de tecla para la tecla programable SOFT3.

SOFT4 (propiedad ExtendedKey.SOFT4)


public static SOFT4 : String

Valor del cdigo de tecla para la tecla programable SOFT4.

SOFT5 (propiedad ExtendedKey.SOFT5)


public static SOFT5 : String

Valor del cdigo de tecla para la tecla programable SOFT5.

SOFT6 (propiedad ExtendedKey.SOFT6)


public static SOFT6 : String

Valor del cdigo de tecla para la tecla programable SOFT6.

346

Clases de ActionScript

SOFT7 (propiedad ExtendedKey.SOFT7)


public static SOFT7 : String

Valor del cdigo de tecla para la tecla programable SOFT7.

SOFT8 (propiedad ExtendedKey.SOFT8)


public static SOFT8 : String

Valor del cdigo de tecla para la tecla programable SOFT8.

SOFT9 (propiedad ExtendedKey.SOFT9)


public static SOFT9 : String

Valor del cdigo de tecla para la tecla programable SOFT9.

Function
Object | +-Function public dynamic class Function extends Object

Tanto las funciones definidas por el usuario como las funciones incorporadas de ActionScript se representan mediante objetos Function, que son instancias de la funcin Function. Resumen de propiedades Propiedades heredadas de la clase Object
constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Function

347

Resumen de mtodos
Modificadores Firma
ect, [argArray:Array])

Descripcin
dentro de cualquier funcin a la que llame ActionScript.

apply(thisObject:Obj Especifica el valor de thisObject que debe utilizarse

call(thisObject:Obje Invoca la funcin representada por un objeto Function. ct, [parameter1:Object])

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

apply (mtodo Function.apply)


public apply(thisObject:Object, [argArray:Array])

Especifica el valor de thisObject que debe utilizarse dentro de cualquier funcin a la que llame ActionScript. Este mtodo tambin especifica parmetros que deben pasarse a la funcin llamada. Dado que apply() es un mtodo de la clase Function, es tambin un mtodo de todos los objetos Function de ActionScript. Los parmetros se especifican como objeto Array, a diferencia de Function.call(), que especifica los parmetros como una lista separada por comas. Suele ser til cuando no se conoce el nmero de parmetros hasta que se ejecuta el script. Devuelve el valor que la funcin llamada especifica como valor de devolucin. Parmetros
thisObject:Object argArray:Array

- Objeto al que se aplica myFunction.

[opcional] - Matriz cuyos elementos se pasan a myFunction como

parmetros. Valor devuelto Cualquier valor especificado por la funcin llamada.

348

Clases de ActionScript

Ejemplo Las siguientes invocaciones de funcin son equivalentes:


Math.atan2(1, 0) Math.atan2.apply(null, [1, 0])

El sencillo ejemplo siguiente muestra cmo apply() pasa una matriz de parmetros:
function theFunction() { trace(arguments); } // crea una nueva matriz para pasarla como parmetro a apply() var firstArray:Array = new Array(1,2,3); theFunction.apply(null,firstArray); // produce como resultado: 1,2,3 // crea una segunda matriz para pasarla como parmetro a apply() var secondArray:Array = new Array("a", "b", "c"); theFunction.apply(null,secondArray); // produce como resultado a,b,c

El ejemplo siguiente muestra cmo apply() pasa una matriz de parmetros y especifica el valor de sta:
// define una funcin function theFunction() { trace("this == myObj? " + (this == myObj)); trace("arguments: " + arguments); } // crea una instancia de un objeto var myObj:Object = new Object(); // crea matrices para pasarlas como parmetro a apply() var firstArray:Array = new Array(1,2,3); var secondArray:Array = new Array("a", "b", "c"); // utiliza apply() para establecer el valor de this en myObj y enviar firstArray theFunction.apply(myObj,firstArray); // salida: // this == myObj? true // argumentos: 1,2,3 // utiliza apply() para establecer el valor de this en myObj y enviar secondArray theFunction.apply(myObj,secondArray); // salida: // this == myObj? true // argumentos: a,b,c

Function

349

Vase tambin
call (mtodo Function.call)

call (mtodo Function.call)


public call(thisObject:Object, [parameter1:Object])

Invoca la funcin representada por un objeto Function. Cada funcin de ActionScript se representa mediante un objeto Function, de modo que todas las funciones admiten este mtodo. En casi todos los casos puede utilizarse el operador de llamada de funcin (()) en lugar de este mtodo. El operador de llamada de funcin hace que el cdigo sea conciso y legible. Este mtodo es de gran utilidad cuando debe controlarse explcitamente el parmetro thisObject de la llamada de funcin. Normalmente, si se invoca una funcin como mtodo de un objeto, el parmetro thisObject se establece en myObject dentro del cuerpo de la funcin, como se muestra en el siguiente ejemplo:
myObject.myMethod(1, 2, 3);

En algunos casos, es posible que desee que thisObject haga referencia a otro elemento; por ejemplo, si debe invocarse una funcin como un mtodo de un objeto, pero en realidad no se almacena como mtodo de dicho objeto:
myObject.myMethod.call(myOtherObject, 1, 2, 3);

Puede pasar el valor null para el parmetro thisObject para invocar una funcin como funcin regular y no como un mtodo de un objeto. Por ejemplo, las llamadas de funcin siguientes son equivalentes:
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)

Devuelve el valor que la funcin llamada especifica como valor de devolucin. Parmetros
thisObject:Object

- Objeto que especifica el valor de thisObject en el cuerpo de la

funcin.
parameter1:Object [opcional] - Un parmetro que se pasa a myFunction. Puede especificar cero o ms parmetros.

350

Clases de ActionScript

Ejemplo El ejemplo siguiente utiliza Function.call() para hacer que una funcin se comporte como un mtodo de otro objeto, sin almacenar la funcin en el objeto:
function myObject() { } function myMethod(obj) { trace("this == obj? " + (this == obj)); } var obj:Object = new myObject(); myMethod.call(obj, obj);

La sentencia trace() muestra:


this == obj? true

Vase tambin
apply (mtodo Function.apply)

Key
Object | +-Key public class Key extends Object

La clase Key es una clase de nivel superior cuyos mtodos y propiedades se pueden utilizar sin emplear un constructor. Utilice los mtodos de la clase Key para crear una interfaz que un usuario pueda controlar con un teclado estndar. Las propiedades de la clase Key son constantes que representan las teclas ms utilizadas en las aplicaciones de control, como las teclas de flecha AvPg y RePg. Vase tambin
ExtendedKey

Resumen de propiedades
Modificadores Propiedad
static BACKSPACE:Number

Descripcin
El valor de cdigo de tecla asociado a la tecla Retroceso (8). El valor de cdigo de tecla asociado a la tecla Bloq Mays (20).

static

CAPSLOCK:Number

Key

351

Modificadores Propiedad
static CONTROL:Number

Descripcin
El valor de cdigo de tecla asociado a la tecla Control (17). El valor de cdigo de tecla asociado a la tecla Supr (46). El valor de cdigo de tecla asociado a la tecla de flecha abajo (40). El valor de cdigo de tecla asociado a la tecla Fin (35). El valor de cdigo de tecla asociado a la tecla Intro (13). El valor de cdigo de tecla asociado a la tecla Esc (27). El valor de cdigo de tecla asociado a la tecla Inicio (36). El valor de cdigo de tecla asociado a la tecla Insert (45). El valor de cdigo de tecla asociado a la tecla de flecha izquierda (37). Una lista de las referencias a todos los objetos detectores registrados con el objeto Key. El valor de cdigo de tecla asociado a la tecla AvPg (34). El valor de cdigo de tecla asociado a la tecla RePg (33). El valor de cdigo de tecla asociado a la tecla de flecha derecha (39). El valor de cdigo de tecla asociado a la tecla Mays (16). El valor de cdigo de tecla asociado a la tecla Barra espaciadora (32). El valor de cdigo de tecla asociado a la tecla Tabulador (9). El valor de cdigo de tecla asociado a la tecla de flecha arriba (38).

static

DELETEKEY:Number

static

DOWN:Number

static

END:Number

static

ENTER:Number

static

ESCAPE:Number

static

HOME:Number

static

INSERT:Number

static

LEFT:Number

static

_listeners:Array

[read-only]
static PGDN:Number

static

PGUP:Number

static

RIGHT:Number

static

SHIFT:Number

static

SPACE:Number

static

TAB:Number

static

UP:Number

352

Clases de ActionScript

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onKeyDown = function() {} onKeyUp = function() {}

Descripcin
Se notifica cuando se presiona una tecla. Se notifica cuando se suelta una tecla.

Resumen de mtodos
Modificadores Firma
static r:Object) : Void static

Descripcin
onKeyDown y onKeyUp. presionada o soltada.

addListener(listene Registra un objeto para recibir notificacin de

getAscii() : Number Devuelve el cdigo ASCII de la ltima tecla

static

getCode() : Number

Devuelve el valor de cdigo de la ltima tecla presionada. especificada en code; false en caso contrario. Key.addListener().

static

isDown(code:Number) Devuelve true si est presionada la tecla : Boolean

static

removeListener(list Elimina un objeto registrado previamente con ener:Object) : Boolean

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

Key

353

addListener (mtodo Key.addListener)


public static addListener(listener:Object) : Void

Registra un objeto para recibir notificacin de onKeyDown y onKeyUp. Cuando se presiona o se suelta una tecla, con independencia de donde se encuentre la seleccin de entrada del teclado, se invocar el mtodo onKeyUp u onKeyDown de todos los objetos que estn a la escucha registrados con addListener(). Puede haber varios objetos a la escucha de notificaciones de teclado. Si el detector ya se ha registrado, no se producir ningn cambio. Parmetros
listener:Object

- Un objeto con mtodos onKeyDown y onKeyUp.

Ejemplo
onKeyDown

En el ejemplo siguiente se crea un nuevo objeto detector y se define una funcin para y onKeyUp. En la ltima lnea se utiliza addListener() para registrar el detector con el objeto Key de modo que se pueda recibir notificacin de los eventos que se producen al presionar y soltar teclas.

var myListener:Object = new Object(); myListener.onKeyDown = function() { trace ("You pressed a key."); } myListener.onKeyUp = function() { trace ("You released a key."); } Key.addListener(myListener);

Vase tambin
getCode (mtodo Key.getCode), isDown (mtodo Key.isDown), onKeyDown (detector de eventos Key.onKeyDown), onKeyUp (detector de eventos Key.onKeyUp), removeListener (mtodo Key.removeListener)

354

Clases de ActionScript

BACKSPACE (propiedad Key.BACKSPACE)


public static BACKSPACE : Number

El valor de cdigo de tecla asociado a la tecla Retroceso (8). Ejemplo En el ejemplo siguiente se crea un nuevo objeto detector y se define una funcin para onKeyDown. En la ltima lnea se utiliza addListener() para registrar el detector con el objeto Key de modo que se pueda recibir notificacin de los eventos que se producen al presionar teclas.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.BACKSPACE)) { trace("you pressed the Backspace key."); } else { trace("you DIDN'T press the Backspace key."); } }; Key.addListener(keyListener);

Cuando utilice este ejemplo, seleccione siempre Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba.

CAPSLOCK (propiedad Key.CAPSLOCK)


public static CAPSLOCK : Number

El valor de cdigo de tecla asociado a la tecla Bloq Mays (20).

CONTROL (propiedad Key.CONTROL)


public static CONTROL : Number

El valor de cdigo de tecla asociado a la tecla Control (17).

Key

355

DELETEKEY (propiedad Key.DELETEKEY)


public static DELETEKEY : Number

El valor de cdigo de tecla asociado a la tecla Supr (46). Ejemplo El ejemplo siguiente permite dibujar lneas con el puntero del ratn utilizando la interfaz API de dibujo y objetos detectores. Presione la tecla Retroceso o Suprimir para eliminar la lneas que haya dibujado.
this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.drawing = true; canvas_mc.moveTo(_xmouse, _ymouse); canvas_mc.lineStyle(3, 0x99CC00, 100); }; mouseListener.onMouseUp = function() { this.drawing = false; }; mouseListener.onMouseMove = function() { if (this.drawing) { canvas_mc.lineTo(_xmouse, _ymouse); } updateAfterEvent(); }; Mouse.addListener(mouseListener); // var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.DELETEKEY) || Key.isDown(Key.BACKSPACE)) { canvas_mc.clear(); } }; Key.addListener(keyListener);

Cuando utilice este ejemplo, seleccione siempre Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba.

356

Clases de ActionScript

DOWN (propiedad Key.DOWN)


public static DOWN : Number

El valor de cdigo de tecla asociado a la tecla de flecha abajo (40). Ejemplo El ejemplo siguiente mueve un clip de pelcula denominado car_mc hasta una distancia constante (10) al presionar las teclas de flecha. Se reproduce un sonido cuando se presiona la Barra espaciadora. Para este ejemplo, asigne a un sonido de la biblioteca el identificador de vinculacin horn_id.
var DISTANCE:Number = 10; var horn_sound:Sound = new Sound(); horn_sound.attachSound("horn_id"); var keyListener_obj:Object = new Object(); keyListener_obj.onKeyDown = function() { switch (Key.getCode()) { case Key.SPACE : horn_sound.start(); break; case Key.LEFT : car_mc._x -= DISTANCE; break; case Key.UP : car_mc._y -= DISTANCE; break; case Key.RIGHT : car_mc._x += DISTANCE; break; case Key.DOWN : car_mc._y += DISTANCE; break; } }; Key.addListener(keyListener_obj);

END (propiedad Key.END)


public static END : Number

El valor de cdigo de tecla asociado a la tecla Fin (35).

Key

357

ENTER (propiedad Key.ENTER)


public static ENTER : Number

El valor de cdigo de tecla asociado a la tecla Intro (13). Ejemplo El ejemplo siguiente mueve un clip de pelcula denominado car_mc hasta una distancia constante (10) al presionar las teclas de flecha. La instancia car_mc se detiene al presionar Intro y eliminar el evento onEnterFrame.
var DISTANCE:Number = 5; var keyListener:Object = new Object(); keyListener.onKeyDown = function() { switch (Key.getCode()) { case Key.LEFT : car_mc.onEnterFrame = function() { this._x -= DISTANCE; }; break; case Key.UP : car_mc.onEnterFrame = function() { this._y -= DISTANCE; }; break; case Key.RIGHT : car_mc.onEnterFrame = function() { this._x += DISTANCE; }; break; case Key.DOWN : car_mc.onEnterFrame = function() { this._y += DISTANCE; }; break; case Key.ENTER: delete car_mc.onEnterFrame; break; } }; Key.addListener(keyListener);

Cuando utilice este ejemplo, seleccione siempre Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba.

358

Clases de ActionScript

ESCAPE (propiedad Key.ESCAPE)


public static ESCAPE : Number

El valor de cdigo de tecla asociado a la tecla Esc (27). Ejemplo En el ejemplo siguiente se define un temporizador. Cuando presione la tecla Esc, el panel Salida muestra informacin que incluye el tiempo que ha tardado en presionar la tecla.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.ESCAPE)) { // obtiene el temporizador actual, convierte el valor a segundos y lo redondea a dos posiciones decimales. var timer:Number = Math.round(getTimer()/10)/100; trace("you pressed the Esc key: "+getTimer()+" ms ("+timer+" s)"); } }; Key.addListener(keyListener);

Cuando utilice este ejemplo, seleccione siempre Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba.

getAscii (mtodo Key.getAscii)


public static getAscii() : Number

Devuelve el cdigo ASCII de la ltima tecla presionada o soltada. Los valores ASCII devueltos son los correspondientes a un teclado ingls. Por ejemplo, si presiona Mays+2, Key.getAscii() devolver @ en un teclado japons, que es el mismo resultado que en un teclado ingls. Valor devuelto
Number - Devuelve el valor ASCII de la ltima tecla presionada. Este mtodo devuelve 0 si no se ha presionado ni soltado ninguna tecla, o si no se puede acceder al cdigo ASCII por motivos de seguridad.

Key

359

Ejemplo En el ejemplo siguiente se llama al mtodo getAscii() siempre que se presiona una tecla. En el ejemplo se crea un objeto detector denominado keyListener y se define una funcin que responde al evento onKeyDown realizando una llamada a Key.getAscii(). Despus se registra el objeto keyListener en el objeto Key, que difunde el mensaje onKeyDown siempre que se presione una tecla durante la reproduccin del archivo SWF.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { trace("The ASCII code for the last key typed is: "+Key.getAscii()); }; Key.addListener(keyListener);

Cuando utilice este ejemplo, seleccione siempre Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba. En el ejemplo siguiente se aade una llamada a Key.getAscii() para sealar la diferencia entre los mtodos getAscii() y getCode(). La principal diferencia es que Key.getAscii() distingue entre caracteres en maysculas y en minsculas, mientras que Key.getCode() no hace distinciones.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { trace("For the last key typed:"); trace("\tThe Key code is: "+Key.getCode()); trace("\tThe ASCII value is: "+Key.getAscii()); trace(""); }; Key.addListener(keyListener);

Cuando utilice este ejemplo, seleccione siempre Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba.

getCode (mtodo Key.getCode)


public static getCode() : Number

Devuelve el valor de cdigo de la ltima tecla presionada. Nota: la implementacin de Flash Lite de este mtodo devuelve una cadena o un nmero, segn el cdigo de tecla pasado en la plataforma. Los nicos cdigos de teclas vlidos son los cdigos estndar que acepta esta clase y los cdigos especiales que se muestran como propiedades de la clase ExtendedKey.

360

Clases de ActionScript

Valor devuelto
Number - El cdigo de tecla de la ltima tecla presionada. Este mtodo devuelve 0 si no se ha presionado ni soltado ninguna tecla, o si no se puede acceder al cdigo de tecla por motivos de seguridad.

Ejemplo En el ejemplo siguiente se llama al mtodo getCode() siempre que se presiona una tecla. En el ejemplo se crea un objeto detector denominado keyListener y se define una funcin que responde al evento onKeyDown realizando una llamada a Key.getCode(). Despus se registra el objeto keyListener en el objeto Key, que difunde el mensaje onKeyDown siempre que se presione una tecla durante la reproduccin del archivo SWF.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { // Compara el valor devuelto de getCode() con la constante if (Key.getCode() == Key.ENTER) { trace ("Virtual key code: "+Key.getCode()+" (ENTER key)"); } else { trace ("Virtual key code: "+Key.getCode()); } }; Key.addListener(keyListener);

Cuando utilice este ejemplo, seleccione siempre Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba. En el ejemplo siguiente se aade una llamada a Key.getAscii() para sealar la diferencia entre los dos mtodos. La principal diferencia es que Key.getAscii() distingue entre caracteres en maysculas y en minsculas, mientras que Key.getCode() no hace distinciones.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { trace("For the last key typed:"); trace("\tThe Key code is: "+Key.getCode()); trace("\tThe ASCII value is: "+Key.getAscii()); trace(""); }; Key.addListener(keyListener);

Cuando utilice este ejemplo, seleccione siempre Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba. Vase tambin
getAscii (mtodo Key.getAscii)

Key

361

HOME (propiedad Key.HOME)


public static HOME : Number

El valor de cdigo de tecla asociado a la tecla Inicio (36). Ejemplo En el ejemplo siguiente se asocia un clip de pelcula que se puede arrastrar denominado car_mc en las coordenadas x e y de 0,0. Cuando se presiona a la tecla Inicio, car_mc vuelve a las coordenadas 0,0. Cree un clip de pelcula que tenga el identificador de vinculacin car_id y agregue el siguiente cdigo ActionScript al fotograma 1 de la lnea de tiempo:
this.attachMovie("car_id", "car_mc", this.getNextHighestDepth(), {_x:0, _y:0}); car_mc.onPress = function() { this.startDrag(); }; car_mc.onRelease = function() { this.stopDrag(); }; var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.HOME)) { car_mc._x = 0; car_mc._y = 0; } }; Key.addListener(keyListener);

INSERT (propiedad Key.INSERT)


public static INSERT : Number

El valor de cdigo de tecla asociado a la tecla Insert (45). Ejemplo En el ejemplo siguiente se crea un nuevo objeto detector y se define una funcin para onKeyDown. En la ltima lnea se utiliza addListener() para registrar el detector con el objeto Key de modo que se pueda recibir notificacin del evento que se produce al presionar la tecla y mostrar informacin en el panel Salida.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.INSERT)) { trace("You pressed the Insert key."); } }; Key.addListener(keyListener);

362

Clases de ActionScript

isDown (mtodo Key.isDown)


public static isDown(code:Number) : Boolean

Devuelve true si est presionada la tecla especificada en code; false en caso contrario. Parmetros
code:Number

- El valor de cdigo de tecla asignado a una tecla especfica o una propiedad de clase Key asociada con una determinada tecla. Valor devuelto

Boolean

- El valor true si est presionada la tecla especificada en code; false en caso contrario. Ejemplo Con el script siguiente es posible controlar la ubicacin de un clip de pelcula (car_mc):

car_mc.onEnterFrame = function() { if (Key.isDown(Key.RIGHT)) { this._x += 10; } else if (Key.isDown(Key.LEFT)) { this._x -= 10; } };

LEFT (propiedad Key.LEFT)


public static LEFT : Number

El valor de cdigo de tecla asociado a la tecla de flecha izquierda (37). Ejemplo El ejemplo siguiente mueve un clip de pelcula denominado car_mc hasta una distancia constante (10) al presionar las teclas de flecha. Se reproduce un sonido cuando se presiona la Barra espaciadora. Para este ejemplo, asigne a un sonido de la biblioteca el identificador de vinculacin horn_id.
var DISTANCE:Number = 10; var horn_sound:Sound = new Sound(); horn_sound.attachSound("horn_id"); var keyListener_obj:Object = new Object(); keyListener_obj.onKeyDown = function() { switch (Key.getCode()) { case Key.SPACE : horn_sound.start(); break;

Key

363

case Key.LEFT : car_mc._x -= DISTANCE; break; case Key.UP : car_mc._y -= DISTANCE; break; case Key.RIGHT : car_mc._x += DISTANCE; break; case Key.DOWN : car_mc._y += DISTANCE; break; } }; Key.addListener(keyListener_obj);

_listeners (propiedad Key._listeners)


public static _listeners : Array [read-only]

Una lista de las referencias a todos los objetos detectores registrados con el objeto Key. Esta propiedad es para uso interno, aunque puede resultar til para determinar el nmero de detectores registrados actualmente en el objeto Key. Los objetos se aaden y quitan de esta matriz mediante llamadas a los mtodos addListener() y removelistener(). Ejemplo En el ejemplo siguiente se muestra cmo utilizar la propiedad length para determinar el nmero de objetos detectores que estn registrados actualmente en el objeto Key.
var myListener:Object = new Object(); myListener.onKeyDown = function () { trace ("You pressed a key."); } Key.addListener(myListener); trace(Key._listeners.length); // Salida: 1

onKeyDown (detector de eventos Key.onKeyDown)


onKeyDown = function() {}

Se notifica cuando se presiona una tecla. Para utilizar onKeyDown, deber crear un objeto detector. Posteriormente podr definir una funcin para onKeyDown y utilizar addListener() para registrar el detector en el objeto Key, como se muestra en el siguiente ejemplo:
var keyListener:Object = new Object(); keyListener.onKeyDown = function() {

364

Clases de ActionScript

trace("DOWN -> Code: " + Key.getCode() + "\tACSII: " + Key.getAscii() + "\tKey: " + chr(Key.getAscii())); }; keyListener.onKeyUp = function() { trace("UP -> Code: " + Key.getCode() + "\tACSII: " + Key.getAscii() + "\tKey: " + chr(Key.getAscii())); }; Key.addListener(keyListener);

Los detectores permiten que diversas partes del cdigo cooperen, ya que varios detectores pueden recibir notificacin de un solo evento. Vase tambin
addListener (mtodo Key.addListener)

onKeyUp (detector de eventos Key.onKeyUp)


onKeyUp = function() {}

Se notifica cuando se suelta una tecla. Para utilizar onKeyUp, deber crear un objeto detector. Posteriormente podr definir una funcin para onKeyUp y utilizar addListener() para registrar el detector en el objeto Key, como se muestra en el siguiente ejemplo:
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { trace("DOWN -> Code: " + Key.getCode() + "\tACSII: " + Key.getAscii() + "\tKey: " + chr(Key.getAscii())); }; keyListener.onKeyUp = function() { trace("UP -> Code: " + Key.getCode() + "\tACSII: " + Key.getAscii() + "\tKey: " + chr(Key.getAscii())); }; Key.addListener(keyListener);

Los detectores permiten que diversas partes del cdigo cooperen, ya que varios detectores pueden recibir notificacin de un solo evento. Vase tambin
addListener (mtodo Key.addListener)

Key

365

PGDN (propiedad Key.PGDN)


public static PGDN : Number

El valor de cdigo de tecla asociado a la tecla AvPg (34). Ejemplo El ejemplo siguiente gira un clip de pelcula denominado car_mc utilizando las teclas AvPg y RePg.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.PGDN)) { car_mc._rotation += 5; } else if (Key.isDown(Key.PGUP)) { car_mc._rotation -= 5; } }; Key.addListener(keyListener);

PGUP (propiedad Key.PGUP)


public static PGUP : Number

El valor de cdigo de tecla asociado a la tecla RePg (33). Ejemplo El ejemplo siguiente gira un clip de pelcula denominado car_mc utilizando las teclas AvPg y RePg.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.PGDN)) { car_mc._rotation += 5; } else if (Key.isDown(Key.PGUP)) { car_mc._rotation -= 5; } }; Key.addListener(keyListener);

removeListener (mtodo Key.removeListener)


public static removeListener(listener:Object) : Boolean

Elimina un objeto registrado previamente con Key.addListener(). Parmetros


listener:Object

- Un objeto.

366

Clases de ActionScript

Valor devuelto
Boolean listener

- Si el listener se ha eliminado correctamente, el mtodo devolver true. Si el no se ha eliminado correctamente (por ejemplo, porque el listener no se encontraba en la lista de detectores del objeto Key), el mtodo devolver false.

Ejemplo El ejemplo siguiente mueve un clip de pelcula denominado car_mc utilizando las teclas de flecha izquierda y derecha. Cuando se presiona la tecla Esc, se elimina el detector y car_mc ya no podr moverse.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { switch (Key.getCode()) { case Key.LEFT : car_mc._x -= 10; break; case Key.RIGHT : car_mc._x += 10; break; case Key.ESCAPE : Key.removeListener(keyListener); } }; Key.addListener(keyListener);

RIGHT (propiedad Key.RIGHT)


public static RIGHT : Number

El valor de cdigo de tecla asociado a la tecla de flecha derecha (39). Ejemplo El ejemplo siguiente mueve un clip de pelcula denominado car_mc hasta una distancia constante (10) al presionar las teclas de flecha. Se reproduce un sonido cuando se presiona la Barra espaciadora. Para este ejemplo, asigne a un sonido de la biblioteca el identificador de vinculacin horn_id.
var DISTANCE:Number = 10; var horn_sound:Sound = new Sound(); horn_sound.attachSound("horn_id"); var keyListener_obj:Object = new Object(); keyListener_obj.onKeyDown = function() { switch (Key.getCode()) { case Key.SPACE : horn_sound.start(); break;

Key

367

case Key.LEFT : car_mc._x -= DISTANCE; break; case Key.UP : car_mc._y -= DISTANCE; break; case Key.RIGHT : car_mc._x += DISTANCE; break; case Key.DOWN : car_mc._y += DISTANCE; break; } }; Key.addListener(keyListener_obj);

SHIFT (propiedad Key.SHIFT)


public static SHIFT : Number

El valor de cdigo de tecla asociado a la tecla Mays (16). Ejemplo El ejemplo siguiente cambia la escala de car_mc al presionar Mays.
var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.SHIFT)) { car_mc._xscale = 2; car_mc._yscale = 2; } else if (Key.isDown(Key.CONTROL)) { car_mc._xscale /= 2; car_mc._yscale /= 2; } }; Key.addListener(keyListener);

368

Clases de ActionScript

SPACE (propiedad Key.SPACE)


public static SPACE : Number

El valor de cdigo de tecla asociado a la tecla Barra espaciadora (32). Ejemplo El ejemplo siguiente mueve un clip de pelcula denominado car_mc hasta una distancia constante (10) al presionar las teclas de flecha. Se reproduce un sonido cuando se presiona la Barra espaciadora. Para este ejemplo, asigne a un sonido de la biblioteca el identificador de vinculacin horn_id.
var DISTANCE:Number = 10; var horn_sound:Sound = new Sound(); horn_sound.attachSound("horn_id"); var keyListener_obj:Object = new Object(); keyListener_obj.onKeyDown = function() { switch (Key.getCode()) { case Key.SPACE : horn_sound.start(); break; case Key.LEFT : car_mc._x -= DISTANCE; break; case Key.UP : car_mc._y -= DISTANCE; break; case Key.RIGHT : car_mc._x += DISTANCE; break; case Key.DOWN : car_mc._y += DISTANCE; break; } }; Key.addListener(keyListener_obj);

Key

369

TAB (propiedad Key.TAB)


public static TAB : Number

El valor de cdigo de tecla asociado a la tecla Tabulador (9). Ejemplo El ejemplo siguiente crea un campo de texto y muestra la fecha en el campo de texto al presionar la tecla Tabulador.
this.createTextField("date_txt", this.getNextHighestDepth(), 0, 0, 100, 22); date_txt.autoSize = true; var keyListener:Object = new Object(); keyListener.onKeyDown = function() { if (Key.isDown(Key.TAB)) { var today_date:Date = new Date(); date_txt.text = today_date.toString(); } }; Key.addListener(keyListener);

Cuando utilice este ejemplo, seleccione siempre Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba.

UP (propiedad Key.UP)
public static UP : Number

El valor de cdigo de tecla asociado a la tecla de flecha arriba (38). Ejemplo El ejemplo siguiente mueve un clip de pelcula denominado car_mc hasta una distancia constante (10) al presionar las teclas de flecha. Se reproduce un sonido cuando se presiona la Barra espaciadora. Para este ejemplo, asigne a un sonido de la biblioteca el identificador de vinculacin horn_id.
var DISTANCE:Number = 10; var horn_sound:Sound = new Sound(); horn_sound.attachSound("horn_id"); var keyListener_obj:Object = new Object(); keyListener_obj.onKeyDown = function() { switch (Key.getCode()) { case Key.SPACE : horn_sound.start(); break; case Key.LEFT : car_mc._x -= DISTANCE;

370

Clases de ActionScript

break; case Key.UP : car_mc._y -= DISTANCE; break; case Key.RIGHT : car_mc._x += DISTANCE; break; case Key.DOWN : car_mc._y += DISTANCE; break; } }; Key.addListener(keyListener_obj);

LoadVars
Object | +-LoadVars public dynamic class LoadVars extends Object

Puede utilizar la clase LoadVars para obtener confirmacin de que determinados datos se han cargado correctamente y para controlar el progreso de las descargas. La clase LoadVars es una alternativa a la funcin loadVariables() para la transferencia de variables entre una aplicacin Flash y un servidor. La clase LoadVars permite enviar todas las variables de un objeto a una URL y cargar todas las variables de una URL en un objeto. Tambin le permite enviar variables concretas en lugar de todas las variables, lo que puede contribuir a que la aplicacin sea ms eficaz. Puede utilizar el controlador LoadVars.onLoad para asegurarse de que la aplicacin se ejecute cuando se carguen datos y no antes. La clase LoadVars funciona de forma similar a la clase XML; utiliza los mtodos load(), send() y sendAndLoad() para comunicarse con un servidor. La principal diferencia entre la clase LoadVars y la clase XML estriba en que LoadVars transfiere pares de nombre y valor ActionScript, en lugar de un rbol DOM XML almacenado en el objeto XML. La clase LoadVars presenta las mismas restricciones de seguridad que la clase XML. Vase tambin
Funcin loadVariables, onLoad (controlador LoadVars.onLoad), XML

LoadVars

371

Resumen de propiedades
Modificadores Propiedad
contentType:String

Descripcin
El tipo MIME que se enva al servidor cuando se llama a LoadVars.send() o LoadVars.sendAndLoad(). Valor booleano que indica si una operacin load o sendAndLoad ha finalizado; el valor predeterminado es undefined (no definido).

loaded:Boolean

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onData = ) {} onLoad = olean) {}

Descripcin
Se invoca cuando se han descargado completamente los datos del datos de un servidor. Se invoca cuando ha finalizado una operacin LoadVars.load() o

function(src:String servidor o cuando se produce un error mientras se estn descargando

function(success:Bo LoadVars.sendAndLoad().

Resumen de constructores
Firma
LoadVars()

Descripcin
Crea un objeto LoadVars.

Resumen de mtodos
Modificadores Firma
ader:Object, : Void decode(queryString: Convierte la cadena variable en propiedades del String) : Void getBytesLoaded() : Number

Descripcin
HTTP (como Content-Type o SOAPAction)

addRequestHeader(he Aade o cambia los encabezados de peticiones headerValue:String) enviados con las acciones POST.

objeto LoadVars especificado. Devuelve el nmero de bytes descargados por LoadVars.load() o LoadVars.sendAndLoad().

372

Clases de ActionScript

Modificadores Firma
getBytesTotal() : Number load(url:String) : Boolean

Descripcin
Devuelve el total de bytes descargados por LoadVars.load() o LoadVars.sendAndLoad(). Descarga variables de la URL especificada, analiza los datos de la variable y coloca las variables resultantes en my_lv. Enva las variables contenidas en el objeto my_lv a la URL especificada.

send(url:String, target:String, [method:String]) : Boolean

sendAndLoad(url:Str Coloca las variables contenidas en el objeto my_lv ing, target:Object, en la URL especificada. [method:String]) : Boolean toString() : String Devuelve una cadena que contiene todas las

variables enumerables de my_lv, en la codificacin de contenido MIME application/x-www-formurlencoded.

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

addRequestHeader (mtodo LoadVars.addRequestHeader)


public addRequestHeader(header:Object, headerValue:String) : Void

Aade o cambia los encabezados de peticiones HTTP (como Content-Type o SOAPAction) enviados con las acciones POST. En la primera sintaxis, se pasan dos cadenas al mtodo: header y headerValue. En la segunda sintaxis, se pasa una matriz de cadenas, alternando los nombres de los encabezados y los valores de stos. Si se realizan varias llamadas para establecer el mismo nombre de encabezado, cada valor sucesivo reemplazar al valor establecido en la llamada anterior.

LoadVars

373

Los siguientes encabezados HTTP estndar no se pueden aadir ni cambiar con este mtodo: Accept-Ranges, Age, Allow, Allowed, Connection, Content-Length, Content-Location, Content-Range, ETag, Host, Last-Modified, Locations, Max-Forwards, ProxyAuthenticate, Proxy-Authorization, Public, Range, Retry-After, Server, TE, Trailer, Transfer-Encoding, Upgrade, URI, Vary, Via, Warning y WWW-Authenticate. Parmetros
header:Object - Una cadena o matriz de cadenas que representan un nombre de encabezado

de peticin HTTP.
headerValue:String

- Una cadena que representa el valor asociado con header.

Ejemplo El ejemplo siguiente aade un encabezado HTTP personalizado denominado SOAPAction con un valor de Foo al objeto my_lv:
my_lv.addRequestHeader("SOAPAction", "'Foo'");

El ejemplo siguiente crea una matriz headers que contiene dos encabezados HTTP alternativos y sus valores asociados. La matriz se pasa como un argumento a addRequestHeader().
var headers = ["Content-Type", "text/plain", "X-ClientAppVersion", "2.0"]; my_lv.addRequestHeader(headers);

El ejemplo siguiente crea un nuevo objeto LoadVars que aade un encabezado de peticin denominado FLASH-UUID. El encabezado contiene una variable que el servidor puede comprobar.
var my_lv:LoadVars = new LoadVars(); my_lv.addRequestHeader("FLASH-UUID", "41472"); my_lv.name = "Mort"; my_lv.age = 26; my_lv.send("http://flash-mx.com/mm/cgivars.cfm", "_blank", "POST");

Vase tambin
addRequestHeader (mtodo XML.addRequestHeader)

374

Clases de ActionScript

contentType (propiedad LoadVars.contentType)


public contentType : String

El tipo MIME que se enva al servidor cuando se llama a LoadVars.send() o LoadVars.sendAndLoad(). El valor predeterminado es application/x-www-form-urlencoded. Ejemplo El ejemplo siguiente crea un objeto LoadVars y muestra el tipo de contenido predeterminado de los datos enviados al servidor.
var my_lv:LoadVars = new LoadVars(); trace(my_lv.contentType); // salida: application/x-www-form-urlencoded

Vase tambin
send (mtodo LoadVars.send), sendAndLoad (mtodo LoadVars.sendAndLoad)

decode (mtodo LoadVars.decode)


public decode(queryString:String) : Void

Convierte la cadena variable en propiedades del objeto LoadVars especificado. El controlador de eventos LoadVars.onData utiliza internamente este mtodo. La mayora de los usuarios no necesitan llamar a este mtodo directamente. Si sustituye el controlador de eventos LoadVars.onData, puede llamar explcitamente a LoadVars.decode() para analizar una cadena de variables. Parmetros
queryString:String - Una cadena de consulta con codificacin URL con pares nombre/valor.

Ejemplo El ejemplo siguiente rastrea las tres variables:


// Crea un objeto LoadVars nuevo var my_lv:LoadVars = new LoadVars(); //Convierte la cadena variable en propiedades my_lv.decode("name=Mort&score=250000"); trace(my_lv.toString()); // Repite las propiedades de my_lv for (var prop in my_lv) { trace(prop+" -> "+my_lv[prop]); }

Vase tambin
onData (controlador LoadVars.onData), parseXML (mtodo XML.parseXML)

LoadVars

375

getBytesLoaded (mtodo LoadVars.getBytesLoaded)


public getBytesLoaded() : Number

Devuelve el nmero de bytes descargados por LoadVars.load() o LoadVars.sendAndLoad(). Este mtodo devuelve undefined si no hay ninguna operacin de carga en curso o si no ha comenzado todava ninguna operacin de carga. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente utiliza una instancia ProgressBar y un objeto LoadVars para descargar un archivo de texto. Cuando pruebe el archivo de texto, se muestran dos cosas en el panel Salida: si el archivo se carga correctamente y la cantidad de datos que se carga en el archivo SWF. Debe reemplazar el parmetro URL del comando LoadVars.load() de modo que el parmetro se refiera a un archivo de texto vlido que utilice HTTP. Si intenta utilizar este ejemplo para cargar un archivo local que resida en el disco duro, el ejemplo no funcionar correctamente porque, en el modo Probar pelcula, Flash Player carga los archivos locales ntegramente. Para ver cmo funciona este cdigo, aada una instancia ProgressBar denominada loadvars_pb en el escenario. A continuacin, aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
var loadvars_pb:mx.controls.ProgressBar; var my_lv:LoadVars = new LoadVars(); loadvars_pb.mode = "manual"; this.createEmptyMovieClip("timer_mc", 999); timer_mc.onEnterFrame = function() { var lvBytesLoaded:Number = my_lv.getBytesLoaded(); var lvBytesTotal:Number = my_lv.getBytesTotal(); if (lvBytesTotal != undefined) { trace("Loaded "+lvBytesLoaded+" of "+lvBytesTotal+" bytes."); loadvars_pb.setProgress(lvBytesLoaded, lvBytesTotal); } }; my_lv.onLoad = function(success:Boolean) { loadvars_pb.setProgress(my_lv.getBytesLoaded(), my_lv.getBytesTotal()); delete timer_mc.onEnterFrame; if (success) { trace("LoadVars loaded successfully."); } else { trace("An error occurred while loading variables."); } }; my_lv.load("[place a valid URL pointing to a text file here]");

376

Clases de ActionScript

Vase tambin
load (mtodo LoadVars.load), sendAndLoad (mtodo LoadVars.sendAndLoad)

getBytesTotal (mtodo LoadVars.getBytesTotal)


public getBytesTotal() : Number

Devuelve el total de bytes descargados por LoadVars.load() o LoadVars.sendAndLoad(). Este mtodo devuelve undefined si no hay ninguna operacin en curso o si no ha comenzado ninguna operacin de carga. Este mtodo tambin devuelve undefined si el nmero total de bytes no se puede determinar (por ejemplo, si la descarga se inici pero el servidor no transmiti un content-length HTTP). Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente utiliza una instancia ProgressBar y un objeto LoadVars para descargar un archivo de texto. Cuando pruebe el archivo de texto, se muestran dos cosas en el panel Salida: si el archivo se carga correctamente y la cantidad de datos que se carga en el archivo SWF. Debe reemplazar el parmetro URL del comando LoadVars.load() de modo que el parmetro se refiera a un archivo de texto vlido que utilice HTTP. Si intenta utilizar este ejemplo para cargar un archivo local que resida en el disco duro, el ejemplo no funcionar correctamente porque, en el modo Probar pelcula, Flash Player carga los archivos locales ntegramente. Para ver cmo funciona este cdigo, aada una instancia ProgressBar denominada loadvars_pb en el escenario. A continuacin, aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
var loadvars_pb:mx.controls.ProgressBar; var my_lv:LoadVars = new LoadVars(); loadvars_pb.mode = "manual"; this.createEmptyMovieClip("timer_mc", 999); timer_mc.onEnterFrame = function() { var lvBytesLoaded:Number = my_lv.getBytesLoaded(); var lvBytesTotal:Number = my_lv.getBytesTotal(); if (lvBytesTotal != undefined) { trace("Loaded "+lvBytesLoaded+" of "+lvBytesTotal+" bytes."); loadvars_pb.setProgress(lvBytesLoaded, lvBytesTotal); } };

LoadVars

377

my_lv.onLoad = function(success:Boolean) { loadvars_pb.setProgress(my_lv.getBytesLoaded(), my_lv.getBytesTotal()); delete timer_mc.onEnterFrame; if (success) { trace("LoadVars loaded successfully."); } else { trace("An error occurred while loading variables."); } }; my_lv.load("[place a valid URL pointing to a text file here]");

Vase tambin
load (mtodo LoadVars.load), sendAndLoad (mtodo LoadVars.sendAndLoad)

load (mtodo LoadVars.load)


public load(url:String) : Boolean

Descarga variables de la URL especificada, analiza los datos de la variable y coloca las variables resultantes en my_lv. Las propiedades existentes en my_lv que tengan los mismos nombres que las variables descargadas se sobrescribirn. Las propiedades existentes en my_lv que tengan nombres diferentes a los de las variables descargadas no se eliminarn. Esta es una accin asncrona. Los datos descargados deben tener el tipo de contenido MIME application/x-www-form-urlencoded. Es el mismo formato que se utiliza en loadVariables(). En archivos SWF que se ejecuten en una versin del reproductor anterior a Flash Player 7, url debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. El superdominio puede obtenerse eliminando el componente situado ms a la izquierda de la URL de un archivo. Por ejemplo, un archivo SWF situado en www.someDomain.com puede cargar datos de fuentes situadas en store.someDomain.com porque ambos archivos se encuentran en el mismo superdominio, denominado someDomain.com. En archivos SWF de cualquier versin que se ejecuten en Flash Player 7 o posterior, url debe estar exactamente en el mismo dominio. Por ejemplo, un archivo SWF situado en www.someDomain.com slo puede cargar datos de fuentes que tambin se encuentren en www.someDomain.com. Si desea cargar datos de un dominio diferente, puede colocar un archivo de poltica para distintos dominios en el servidor en el que se aloja el archivo SWF. Asimismo, en archivos publicados para Flash Player 7, la distincin entre maysculas y minsculas se admite para variables externas cargadas con LoadVars.load(). Este mtodo es similar a XML.load().

378

Clases de ActionScript

Parmetros
url:String - Una cadena; la URL desde la que se descargarn las variables. Si el archivo SWF

que realiza esta llamada se ejecuta en un navegador Web, el valor url debe pertenecer al mismo dominio que el archivo SWF; para ver ms detalles, consulte la seccin Descripcin. Valor devuelto - false si no se pasa ningn parmetro (null); true, en caso contrario. Utilice el controlador de eventos onLoad() para comprobar el estado de los datos cargados.
Boolean

Ejemplo El cdigo siguiente define una funcin de controlador onLoad que emite una seal cuando se devuelven datos a la aplicacin Flash desde un archivo de script PHP de servidor y carga los datos en passvars.php.
var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { if (success) { trace(this.toString()); } else { trace("Error loading/parsing LoadVars."); } }; my_lv.load("http://www.helpexamples.com/flash/params.txt");

Encontrar tambin un ejemplo en el archivo guestbook.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
load (mtodo XML.load), loaded (propiedad LoadVars.loaded), onLoad (controlador LoadVars.onLoad)

loaded (propiedad LoadVars.loaded)


public loaded : Boolean

Valor booleano que indica si una operacin load o sendAndLoad ha finalizado; el valor predeterminado es undefined (no definido). Cuando se inicia una operacin LoadVars.load() o LoadVars.sendAndLoad(), la propiedad loaded es false; cuando finaliza la operacin, la propiedad loaded es true. Si la operacin no ha finalizado o ha fallado con un error, la propiedad loaded continuar establecida en false. Esta propiedad es similar a XML.loaded.

LoadVars

379

Ejemplo El ejemplo siguiente carga un archivo de texto y muestra informacin en el panel Salida al finalizar la operacin.
var my_lv:LoadVars = new LoadVars(); my_lv.onLoad = function(success:Boolean) { trace("LoadVars loaded successfully: "+this.loaded); }; my_lv.load("http://www.helpexamples.com/flash/params.txt");

Vase tambin
load (mtodo LoadVars.load), sendAndLoad (mtodo LoadVars.sendAndLoad), load (mtodo XML.load)

Constructor LoadVars
public LoadVars()

Crea un objeto LoadVars. Posteriormente podr utilizar los mtodos de dicho objeto LoadVars para enviar y cargar los datos. Ejemplo En el ejemplo siguiente se crea un objeto LoadVars denominado my_lv:
var my_lv:LoadVars = new LoadVars();

onData (controlador LoadVars.onData)


onData = function(src:String) {}

Se invoca cuando se han descargado completamente los datos del servidor o cuando se produce un error mientras se estn descargando datos de un servidor. Este controlador se invoca antes de que se analicen los datos, por lo que puede utilizarse para llamar a una rutina de anlisis personalizada en lugar de la incorporada en Flash Player. El valor del parmetro src pasado a la funcin asignada a LoadVars.onData puede ser undefined (no definido) o una cadena que contenga los pares nombre-valor con codificacin URL descargados del servidor. Si el parmetro src tiene el valor undefined, ello indica que se ha producido un error al descargar los datos del servidor. La implementacin predeterminada de LoadVars.onData llama a LoadVars.onLoad. Puede sustituir esta implementacin predeterminada asignando una funcin personalizada a LoadVars.onData, pero no se llama a LoadVars.onLoad a menos que lo haga en su implementacin de LoadVars.onData.

380

Clases de ActionScript

Parmetros
src:String LoadVars.load()

- Una cadena o undefined; los datos sin analizar de una llamada a un mtodo o LoadVars.sendAndLoad().

Ejemplo El ejemplo siguiente carga un archivo de texto y muestra su contenido en una instancia TextArea denominada content_ta al finalizar la operacin. Si se produce un error, aparecer informacin en el panel Salida.
var my_lv:LoadVars = new LoadVars(); my_lv.onData = function(src:String) { if (src == undefined) { trace("Error loading content."); return; } content_ta.text = src; }; my_lv.load("content.txt", my_lv, "GET");

Vase tambin
onLoad (controlador LoadVars.onLoad), onLoad (controlador LoadVars.onLoad), load (mtodo LoadVars.load), sendAndLoad (mtodo LoadVars.sendAndLoad)

onLoad (controlador LoadVars.onLoad)


onLoad = function(success:Boolean) {}

Se invoca cuando ha finalizado una operacin LoadVars.load() o LoadVars.sendAndLoad(). Si la operacin se ha realizado correctamente, my_lv se llena con las variables descargadas por la operacin y dichas variables estarn disponibles cuando se invoque este controlador. De manera predeterminada, este controlador tiene el valor undefined (no definido). Este controlador de eventos es similar a XML.onLoad. Parmetros
success:Boolean - Un valor booleano que indica si la operacin de carga ha finalizado correctamente (true) o si ha fallado (false).

LoadVars

381

Ejemplo Para el ejemplo siguiente, aada una instancia de TextInput denominada name_ti, una instancia TextArea denominada result_ta y una instancia Button denominada submit_button en el escenario. Cuando un usuario hace clic en la instancia de botn Login en el ejemplo siguiente, se crean dos objetos LoadVars: send_lv y result_lv. El objeto send_lv copia el nombre de la instancia name_ti y enva los datos a greeting.cfm. El resultado de este script se carga en el objeto result_lv y la respuesta del servidor aparece en la instancia TextArea (result_ta). Aada el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
var submitListener:Object = new Object(); submitListener.click = function(evt:Object) { var result_lv:LoadVars = new LoadVars(); result_lv.onLoad = function(success:Boolean) { if (success) { result_ta.text = result_lv.welcomeMessage; } else { result_ta.text = "Error connecting to server."; } }; var send_lv:LoadVars = new LoadVars(); send_lv.name = name_ti.text; send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv, "POST"); }; submit_button.addEventListener("click", submitListener);

Para ver un ejemplo ms complejo, consulte el archivo login.fla en www.adobe.com/go/ learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
onLoad (controlador XML.onLoad), loaded (propiedad LoadVars.loaded), load (mtodo LoadVars.load), sendAndLoad (mtodo LoadVars.sendAndLoad)

382

Clases de ActionScript

send (mtodo LoadVars.send)


public send(url:String, target:String, [method:String]) : Boolean

Enva las variables contenidas en el objeto my_lv a la URL especificada. De manera predeterminada, todas las variables enumerables existentes en my_lv se concatenan en una cadena en el formato application/x-www-form-urlencoded y la cadena se coloca en la URL empleando el mtodo HTTP POST. Es el mismo formato que utiliza loadVariables(). El tipo de contenido MIME enviado en los encabezados de peticiones HTTP es el valor de my_lv.contentType o el valor predeterminado application/x-www-form-urlencoded. Se utiliza el mtodo POST a no ser que se especifique GET. Debe especificar el parmetro target para asegurarse de que se ejecute el script o la aplicacin de la URL especificada. Si omite el parmetro target, la funcin devolver true, pero el script o aplicacin no se ejecutar. El mtodo send() resulta til si se desea la respuesta del servidor para:

Reemplazar el contenido del SWF (utilice "_self" como parmetro de target); Que aparezca en una nueva ventana (utilice "_blank" como parmetro de target); Que aparezca en el marco superior o del nivel ms alto (utilice "_parent" o "_top" como parmetro de target); Que aparezca en un marco sin nombre (utilice el nombre del marco como cadena para el parmetro target).

Una llamada correcta al mtodo send() siempre abre una nueva ventana del navegador o reemplaza el contenido de una ventana o un marco existente. Si prefiere enviar la informacin a un servidor y continuar reproduciendo el archivo SWF sin abrir una ventana nueva ni reemplazar el contenido de una ventana o un marco existente, deber utilizar LoadVars.sendAndLoad(). Este mtodo es similar a XML.send(). El entorno de prueba de Flash siempre utiliza el mtodo GET. Si desea probar el mtodo POST, debe asegurarse de que intenta utilizarlo desde un navegador. Parmetros
url:String

- Una cadena; la URL a la que se cargarn las variables.

target:String

- Una cadena; la ventana o marco del navegador en el que aparecer la respuesta. Puede introducir el nombre de una ventana especfica o seleccionarlo de entre los siguientes nombres de destino reservados:
"_self"

especifica el fotograma actual en la ventana actual. especifica una nueva ventana.

"_blank"

LoadVars

383

"_parent" "_top"

especifica el elemento principal del fotograma actual.

especifica el fotograma de nivel superior de la ventana actual.

method:String [opcional] - Una cadena; el mtodo GET o POST del protocolo HTTP. El valor predeterminado es POST.

Valor devuelto
Boolean - Un valor booleano; false si no se especifica ningn parmetro; true en caso contrario.

Ejemplo El ejemplo siguiente copia dos valores de campos de texto y enva los datos a un script CFM, utilizado para manejar la informacin. Por ejemplo, el script puede comprobar si el usuario ha obtenido una alta puntuacin e insertar los datos en una tabla de base de datos.
var my_lv:LoadVars = new LoadVars(); my_lv.playerName = playerName_txt.text; my_lv.playerScore = playerScore_txt.text; my_lv.send("setscore.cfm", "_blank", "POST");

Vase tambin
sendAndLoad (mtodo LoadVars.sendAndLoad), send (mtodo XML.send)

sendAndLoad (mtodo LoadVars.sendAndLoad)


public sendAndLoad(url:String, target:Object, [method:String]) : Boolean

Coloca las variables contenidas en el objeto my_lv en la URL especificada. La respuesta del servidor se descarga, se analiza como datos variables y las variables resultantes se colocan en el objeto target. Las variables se colocan de la misma forma que en el caso de LoadVars.send(). Las variables se descargan en target de la misma forma que en el caso de LoadVars.load(). En archivos SWF que se ejecuten en una versin del reproductor anterior a Flash Player 7, url debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. El superdominio puede obtenerse eliminando el componente situado ms a la izquierda de la URL de un archivo. Por ejemplo, un archivo SWF situado en www.someDomain.com puede cargar datos de fuentes situadas en store.someDomain.com porque ambos archivos se encuentran en el mismo superdominio, denominado someDomain.com.

384

Clases de ActionScript

En archivos SWF de cualquier versin que se ejecuten en Flash Player 7 o posterior, url debe estar exactamente en el mismo dominio. Por ejemplo, un archivo SWF situado en www.someDomain.com slo puede cargar datos de fuentes que tambin se encuentren en www.someDomain.com. Si desea cargar datos de un dominio diferente, puede colocar un archivo de poltica para distintos dominios en el servidor en el que se aloja el archivo SWF. Este mtodo es similar a XML.sendAndLoad(). Parmetros - Una cadena; la URL a la que se cargarn las variables. Si el archivo SWF que realiza esta llamada se ejecuta en un navegador Web, el valor url debe pertenecer al mismo dominio que el archivo SWF.
url:String target:Object

- El objeto LoadVars o XML que recibe las variables descargadas.

method:String [opcional] - Una cadena; el mtodo GET o POST del protocolo HTTP. El valor predeterminado es POST.

Valor devuelto
Boolean

- Valor booleano.

Ejemplo Para el ejemplo siguiente, aada una instancia de TextInput denominada name_ti, una instancia TextArea denominada result_ta y una instancia Button denominada submit_button en el escenario. Cuando un usuario hace clic en la instancia de botn Login en el ejemplo siguiente, se crean dos objetos LoadVars: send_lv y result_lv. El objeto send_lv copia el nombre de la instancia name_ti y enva los datos a greeting.cfm. El resultado de este script se carga en el objeto result_lv y la respuesta del servidor aparece en la instancia TextArea (result_ta). Aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
var submitListener:Object = new Object(); submitListener.click = function(evt:Object) { var result_lv:LoadVars = new LoadVars(); result_lv.onLoad = function(success:Boolean) { if (success) { result_ta.text = result_lv.welcomeMessage; } else { result_ta.text = "Error connecting to server."; } }; var send_lv:LoadVars = new LoadVars(); send_lv.name = name_ti.text; send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv, "POST");

LoadVars

385

}; submit_button.addEventListener("click", submitListener);

Para ver un ejemplo ms complejo, consulte el archivo login.fla en www.adobe.com/go/ learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
send (mtodo LoadVars.send), load (mtodo LoadVars.load), sendAndLoad (mtodo XML.sendAndLoad)

toString (mtodo LoadVars.toString)


public toString() : String

Devuelve una cadena que contiene todas las variables enumerables de my_lv, en la codificacin de contenido MIME application/x-www-form-urlencoded. Valor devuelto
String

- Una cadena.

Ejemplo El ejemplo siguiente crea una instancia de un nuevo objeto LoadVars(), crea dos propiedades y utiliza toString() para devolver una cadena que contiene las dos propiedades en un formato URL codificado:
var my_lv:LoadVars = new LoadVars(); my_lv.name = "Gary"; my_lv.age = 26; trace (my_lv.toString()); //salida: age=26&name=Gary

386

Clases de ActionScript

Math
Object | +-Math public class Math extends Object

La clase Math es una clase de nivel superior cuyos mtodos y propiedades puede utilizar sin emplear un constructor. Utilice los mtodos y propiedades de esta clase para acceder a las constantes y funciones matemticas y manipularlas. Todos los mtodos y propiedades de la clase Math son estticos y deben llamarse utilizando la sintaxis Math.method(parameter) o Math.constant. En ActionScript, las constantes se definen con la mxima precisin de los nmeros de coma flotante IEEE-754 de doble precisin. Varios mtodos de la clase Math utilizan la medida de un ngulo en radianes como parmetro. Puede utilizar la siguiente ecuacin para calcular el valor en radianes antes de llamar al mtodo y luego proporcionar el valor calculado como parmetro, o bien puede proporcionar toda la parte derecha de la ecuacin (con la medida del ngulo en radianes en lugar de degrees) como el parmetro radian. Para calcular un valor en radianes, utilice la siguiente frmula:
radians = degrees * Math.PI/180

A continuacin se ofrece un ejemplo en el que se pasa la ecuacin como parmetro para calcular el seno de un ngulo de 45:
Math.sin(45 * Math.PI/180)

es lo mismo que Math.sin(.7854)

Resumen de propiedades
Modificadores Propiedad
static E:Number

Descripcin
Constante matemtica de la base de los logaritmos neperianos expresada como nmero e. Constante matemtica del logaritmo neperiano de 10, expresada como loge10, con un valor aproximado de 2,302585092994046. Constante matemtica del logaritmo neperiano de 2, expresada como loge2, con un valor aproximado de 0,6931471805599453.

static

LN10:Number

static

LN2:Number

Math

387

Modificadores Propiedad
static LOG10E:Number

Descripcin
Constante matemtica del logaritmo en base 10 de la constante e (Math.E), expresada como log10e, con un valor aproximado de 0,4342944819032518. Constante matemtica del logaritmo en base 2 de la constante e (Math.E), expresada como log2e, con un valor aproximado de 1,442695040888963387. Constante matemtica del radio de la circunferencia de un crculo con respecto a su dimetro, expresada como pi, con un valor aproximado de 3,141592653589793. Constante matemtica para la raz cuadrada de un medio, con un valor aproximado de 0,7071067811865476. Constante matemtica para la raz cuadrada de 2, con un valor aproximado de 1,4142135623730951.

static

LOG2E:Number

static

PI:Number

static

SQRT1_2:Number

static

SQRT2:Number

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de mtodos
Modificadores Firma
static abs(x:Number) : Number static acos(x:Number) : Number static asin(x:Number) : Number static

Descripcin
Calcula y devuelve un valor absoluto para el nmero especificado por el parmetro x. Calcula y devuelve el arco coseno del nmero especificado por el parmetro x, en radianes. Calcula y devuelve el arco seno del nmero especificado por el parmetro x, en radianes. cuya tangente se especifica en el parmetro tangent.

atan(tangent:Number Calcula y devuelve el valor en radianes del ngulo ) : Number

388

Clases de ActionScript

Modificadores Firma
static atan2(y:Number, x:Number) : Number

Descripcin
Calcula y devuelve el ngulo del punto y/ x en radianes cuando se mide en sentido contrario al de las agujas del reloj desde el eje x de un crculo (siendo 0,0 el centro del crculo). Devuelve el valor redondeado al alza del nmero o expresin especificada. Calcula y devuelve el coseno del ngulo especificado en radianes. Devuelve el valor de la base del logaritmo neperiano (e) elevado a la potencia del exponente especificado en el parmetro x. Devuelve el valor redondeado a la baja del nmero o expresin especificada en el parmetro x. Devuelve el logaritmo del parmetro x. Calcula x e y y devuelve el valor mayor. Calcula x e y y devuelve el valor ms pequeo. Calcula y devuelve x elevado a la potencia de y. Devuelve un nmero n seudo-aleatorio, siendo 0 <= n < 1. Redondea el valor del parmetro x hacia arriba o hacia abajo con el entero ms prximo y devuelve el valor resultante. Calcula y devuelve el seno del ngulo especificado en radianes. Calcula y devuelve la raz cuadrada del nmero especificado. Calcula y devuelve la tangente del ngulo especificado.

static

ceil(x:Number) : Number

static

cos(x:Number) : Number

static

exp(x:Number) : Number

static

floor(x:Number) : Number

static

log(x:Number) : Number

static

max(x:Number, y:Number) : Number

static

min(x:Number, y:Number) : Number

static

pow(x:Number, y:Number) : Number

static

random() : Number

static

round(x:Number) : Number

static

sin(x:Number) : Number

static

sqrt(x:Number) : Number

static

tan(x:Number) : Number

Math

389

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

abs (mtodo Math.abs)


public static abs(x:Number) : Number

Calcula y devuelve un valor absoluto para el nmero especificado por el parmetro x. Parmetros
x:Number

- Un nmero.

Valor devuelto
Number

- Un nmero.

Ejemplo El ejemplo siguiente muestra cmo Math.abs() devuelve el valor absoluto de un nmero y no afecta al valor del parmetro x (denominado num en este ejemplo):
var num:Number = -12; var numAbsolute:Number = Math.abs(num); trace(num); // salida: -12 trace(numAbsolute); // salida: 12

acos (mtodo Math.acos)


public static acos(x:Number) : Number

Calcula y devuelve el arco coseno del nmero especificado por el parmetro x, en radianes. Parmetros
x:Number

- Un nmero entre -1.0 y 1.0.

Valor devuelto
Number

- Un nmero; el arco coseno del parmetro x.

390

Clases de ActionScript

Ejemplo El ejemplo siguiente muestra el arco coseno de varios valores.


trace(Math.acos(-1)); // salida: 3.14159265358979 trace(Math.acos(0)); // salida: 1.5707963267949 trace(Math.acos(1)); // salida: 0

Vase tambin
asin (mtodo Math.asin), atan (mtodo Math.atan), atan2 (mtodo Math.atan2), cos (mtodo Math.cos), sin (mtodo Math.sin), tan (mtodo Math.tan)

asin (mtodo Math.asin)


public static asin(x:Number) : Number

Calcula y devuelve el arco seno del nmero especificado por el parmetro x, en radianes. Parmetros
x:Number

- Un nmero entre -1.0 y 1.0.

Valor devuelto
Number - Un nmero comprendido entre pi negativo dividido por 2 y pi positivo dividido por 2.

Ejemplo El ejemplo siguiente muestra el arco seno de varios valores.


trace(Math.asin(-1)); // salida: -1.5707963267949 trace(Math.asin(0)); // salida: 0 trace(Math.asin(1)); // salida: 1.5707963267949

Vase tambin
acos (mtodo Math.acos), atan (mtodo Math.atan), atan2 (mtodo Math.atan2), cos (mtodo Math.cos), sin (mtodo Math.sin), tan (mtodo Math.tan)

atan (mtodo Math.atan)


public static atan(tangent:Number) : Number

Calcula y devuelve el valor en radianes del ngulo cuya tangente se especifica en el parmetro tangent. El valor devuelto est comprendido entre pi negativo dividido por 2 y pi positivo dividido por 2.

Math

391

Parmetros
tangent:Number

- Un nmero que representa la tangente de un ngulo.

Valor devuelto
Number - Un nmero comprendido entre pi negativo dividido por 2 y pi positivo dividido por 2.

Ejemplo El ejemplo siguiente muestra el valor de ngulo para varias tangentes.


trace(Math.atan(-1)); // salida: -0.785398163397448 trace(Math.atan(0)); // salida: 0 trace(Math.atan(1)); // salida: 0.785398163397448

Vase tambin
acos (mtodo Math.acos), asin (mtodo Math.asin), atan2 (mtodo Math.atan2), cos (mtodo Math.cos), sin (mtodo Math.sin), tan (mtodo Math.tan)

atan2 (mtodo Math.atan2)


public static atan2(y:Number, x:Number) : Number

Calcula y devuelve el ngulo del punto y/ x en radianes cuando se mide en sentido contrario al de las agujas del reloj desde el eje x de un crculo (siendo 0,0 el centro del crculo). El valor devuelto est comprendido entre pi positivo y pi negativo. Parmetros
y:Number x:Number

- Un nmero que especifica la coordenada y del punto. - Un nmero que especifica la coordenada x del punto.

Valor devuelto
Number

- Un nmero.

Ejemplo El ejemplo siguiente devuelve el ngulo, en radianes, del punto especificado por las coordenadas (0, 10), de forma que x = 0 e y = 10. Observe que el primer parmetro de atan2 es siempre la coordenada y.
trace(Math.atan2(10, 0)); // salida: 1.5707963267949

392

Clases de ActionScript

Vase tambin
acos (mtodo Math.acos), asin (mtodo Math.asin), atan (mtodo Math.atan), cos (mtodo Math.cos), sin (mtodo Math.sin), tan (mtodo Math.tan)

ceil (mtodo Math.ceil)


public static ceil(x:Number) : Number

Devuelve el valor redondeado al alza del nmero o expresin especificada. El valor redondeado al alza de un nmero es el nmero entero ms cercano mayor o igual al nmero. Parmetros
x:Number

- Un nmero o expresin.

Valor devuelto - Un entero que es, al mismo tiempo, el ms prximo y mayor o igual que el parmetro x.
Number

Ejemplo El cdigo siguiente devuelve un valor de 13:


Math.ceil(12.5);

Vase tambin
floor (mtodo Math.floor), round (mtodo Math.round)

cos (mtodo Math.cos)


public static cos(x:Number) : Number

Calcula y devuelve el coseno del ngulo especificado en radianes. Para calcular un radin, consulte la descripcin incluida en la entrada de la clase Math. Parmetros
x:Number

- Un nmero que representa un ngulo medido en radianes.

Valor devuelto
Number

- Un nmero entre -1.0 y 1.0.

Math

393

Ejemplo El ejemplo siguiente muestra el coseno de varios ngulos diferentes.


trace (Math.cos(0)); // ngulo de 0 grados. Salida: 1 trace (Math.cos(Math.PI/2)); // ngulo de 90 grados. Salida: 6.12303176911189e-17 trace (Math.cos(Math.PI)); // ngulo de 180 grados. Salida: -1 trace (Math.cos(Math.PI*2)); // ngulo de 360 grados. Salida: 1

Nota:el coseno de un ngulo de 90 grados es cero, pero debido a la inherente falta de precisin de los clculos decimales utilizando nmeros binarios, Flash Player generar un nmero muy cercano pero que no es exactamente igual a cero. Vase tambin
acos (mtodo Math.acos), asin (mtodo Math.asin), atan (mtodo Math.atan), atan2 (mtodo Math.atan2), sin (mtodo Math.sin), tan (mtodo Math.tan)

E (propiedad Math.E)
public static E : Number

Constante matemtica de la base de los logaritmos neperianos expresada como nmero e. El valor aproximado de e es 2.71828182845905. Ejemplo El ejemplo siguiente muestra cmo se puede utilizar Math.E para calcular continuamente intereses compuestos en un sencillo caso de un inters del 100 por cien en un periodo de un ao.
var principal:Number = 100; var simpleInterest:Number = 100; var continuouslyCompoundedInterest:Number = (100 * Math.E) - principal; trace ("Beginning principal: $" + principal); trace ("Simple interest after one year: $" + simpleInterest); trace ("Continuously compounded interest after one year: $" + continuouslyCompoundedInterest); // Salida: Beginning principal: $100 Simple interest after one year: $100 Continuously compounded interest after one year: $171.828182845905

394

Clases de ActionScript

exp (mtodo Math.exp)


public static exp(x:Number) : Number

Devuelve el valor de la base del logaritmo neperiano (e) elevado a la potencia del exponente especificado en el parmetro x. La constante Math.E puede proporcionar el valor de e. Parmetros
x:Number

- El exponente; un nmero o expresin.

Valor devuelto
Number

- Un nmero.

Ejemplo El ejemplo siguiente muestra el logaritmo de dos nmeros.


trace(Math.exp(1)); // salida: 2.71828182845905 trace(Math.exp(2)); // salida: 7.38905609893065

Vase tambin
E (propiedad Math.E)

floor (mtodo Math.floor)


public static floor(x:Number) : Number

Devuelve el valor redondeado a la baja del nmero o expresin especificada en el parmetro x. El valor redondeado a la baja es el entero ms cercano inferior o igual al nmero o expresin especificada. Parmetros
x:Number

- Un nmero o expresin.

Valor devuelto
Number - El entero que es, al mismo tiempo, el ms prximo y menor o igual que el parmetro x.

Ejemplo El cdigo siguiente devuelve un valor de 12:


Math.floor(12.5);

El cdigo siguiente devuelve un valor de -7:


Math.floor(-6,5);

Math

395

LN10 (propiedad Math.LN10)


public static LN10 : Number

Constante matemtica del logaritmo neperiano de 10, expresada como loge10, con un valor aproximado de 2,302585092994046. Ejemplo Este ejemplo rastrea el valor de Math.LN10.
trace(Math.LN10); // salida: 2.30258509299405

LN2 (propiedad Math.LN2)


public static LN2 : Number

Constante matemtica del logaritmo neperiano de 2, expresada como loge2, con un valor aproximado de 0,6931471805599453.

log (mtodo Math.log)


public static log(x:Number) : Number

Devuelve el logaritmo del parmetro x. Parmetros


x:Number

- Un nmero o expresin con un valor mayor que 0.

Valor devuelto
Number

- Devuelve el logaritmo del parmetro x.

Ejemplo El ejemplo siguiente muestra el logaritmo de tres nmeros.


trace(Math.log(0)); // salida: -Infinity trace(Math.log(1)); // salida: 0 trace(Math.log(2)); // salida: 0.693147180559945 trace(Math.log(Math.E)); // salida: 1

396

Clases de ActionScript

LOG10E (propiedad Math.LOG10E)


public static LOG10E : Number

Constante matemtica del logaritmo en base 10 de la constante e (Math.E), expresada como log10e, con un valor aproximado de 0,4342944819032518. El mtodo Math.log() calcula el logaritmo neperiano de un nmero. Multiplique el resultado de Math.log() por Math.LOG10E para obtener el logaritmo de base 10. Ejemplo Este ejemplo muestra cmo obtener el logaritmo de base 10 de un nmero:
trace(Math.log(1000) * Math.LOG10E); // Salida: 3

LOG2E (propiedad Math.LOG2E)


public static LOG2E : Number

Constante matemtica del logaritmo en base 2 de la constante e (Math.E), expresada como log2e, con un valor aproximado de 1,442695040888963387. El mtodo Math.log calcula el logaritmo neperiano de un nmero. Multiplique el resultado de Math.log() por Math.LOG2E para obtener el logaritmo de base 10. Ejemplo Este ejemplo muestra cmo obtener el logaritmo de base 2 de un nmero:
trace(Math.log(16) * Math.LOG2E); // Salida: 4

max (mtodo Math.max)


public static max(x:Number, y:Number) : Number

Calcula x e y y devuelve el valor mayor. Parmetros


x:Number y:Number

- Un nmero o expresin. - Un nmero o expresin.

Valor devuelto
Number

- Un nmero.

Math

397

Ejemplo El ejemplo siguiente muestra Thu Dec 30 00:00:00 GMT-0700 2004, que es la mayor de las expresiones evaluadas.
var date1:Date = new Date(2004, 11, 25); var date2:Date = new Date(2004, 11, 30); var maxDate:Number = Math.max(date1.getTime(), date2.getTime()); trace(new Date(maxDate).toString());

Vase tambin
min (mtodo Math.min)

min (mtodo Math.min)


public static min(x:Number, y:Number) : Number

Calcula x e y y devuelve el valor ms pequeo. Parmetros


x:Number y:Number

- Un nmero o expresin. - Un nmero o expresin.

Valor devuelto
Number

- Un nmero.

Ejemplo El ejemplo siguiente muestra Sat Dec 25 00:00:00 GMT-0700 2004, que es la menor de las expresiones evaluadas.
var date1:Date = new Date(2004, 11, 25); var date2:Date = new Date(2004, 11, 30); var minDate:Number = Math.min(date1.getTime(), date2.getTime()); trace(new Date(minDate).toString());

Vase tambin
max (mtodo Math.max)

398

Clases de ActionScript

PI (propiedad Math.PI)
public static PI : Number

Constante matemtica del radio de la circunferencia de un crculo con respecto a su dimetro, expresada como pi, con un valor aproximado de 3,141592653589793. Ejemplo El ejemplo siguiente dibuja un crculo utilizando la constante matemtica pi y la API de dibujo.
drawCircle(this, 100, 100, 50); // function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void { mc.lineStyle(2, 0xFF0000, 100); mc.moveTo(x+r, y); mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y); mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y); }

pow (mtodo Math.pow)


public static pow(x:Number, y:Number) : Number

Calcula y devuelve x elevado a la potencia de y. Parmetros


x:Number y:Number

- Un nmero elevado a una potencia. - Un nmero que especifica la potencia a la que se eleva el parmetro x.

Valor devuelto
Number

- Un nmero.

Math

399

Ejemplo El ejemplo siguiente utiliza Math.pow y Math.sqrt para calcular la longitud de una lnea.
this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.origX = _xmouse; this.origY = _ymouse; }; mouseListener.onMouseUp = function() { this.newX = _xmouse; this.newY = _ymouse; var minY = Math.min(this.origY, this.newY); var nextDepth:Number = canvas_mc.getNextHighestDepth(); var line_mc:MovieClip = canvas_mc.createEmptyMovieClip("line"+nextDepth+"_mc", nextDepth); line_mc.moveTo(this.origX, this.origY); line_mc.lineStyle(2, 0x000000, 100); line_mc.lineTo(this.newX, this.newY); var hypLen:Number = Math.sqrt(Math.pow(line_mc._width, 2)+Math.pow(line_mc._height, 2)); line_mc.createTextField("length"+nextDepth+"_txt", canvas_mc.getNextHighestDepth(), this.origX, this.origY-22, 100, 22); line_mc['length'+nextDepth+'_txt'].text = Math.round(hypLen) +" pixels"; }; Mouse.addListener(mouseListener);

random (mtodo Math.random)


public static random() : Number

Devuelve un nmero n seudo-aleatorio, siendo 0 <= n < 1. El nmero devuelto es seudoaleatorio porque no se genera mediante un verdadero fenmeno aleatorio natural, como una cada radioactiva. Valor devuelto
Number

- Un nmero.

Ejemplo El siguiente ejemplo obtiene 100 enteros aleatorios entre 4 y 11 (inclusive):


function randRange(min:Number, max:Number):Number { var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min; return randomNum; } for (var i = 0; i<100; i++) { var n:Number = randRange(4, 11) trace(n); }
400 Clases de ActionScript

round (mtodo Math.round)


public static round(x:Number) : Number

Redondea el valor del parmetro x hacia arriba o hacia abajo con el entero ms prximo y devuelve el valor resultante. Si el parmetro x es equidistante de los dos enteros ms prximos a l (es decir, que el nmero termina en ,5), el valor se redondea al alza con el siguiente entero mayor. Parmetros
x:Number

- Un nmero.

Valor devuelto
Number

- Un nmero; un entero.

Ejemplo El ejemplo siguiente devuelve un nmero aleatorio comprendido entre dos enteros especificados.
function randRange(min:Number, max:Number):Number { var randomNum:Number = Math.round(Math.random() * (max-min+1) + (min.5)); return randomNum; } for (var i = 0; i<25; i++) { trace(randRange(4, 11)); }

Vase tambin
ceil (mtodo Math.ceil), floor (mtodo Math.floor)

sin (mtodo Math.sin)


public static sin(x:Number) : Number

Calcula y devuelve el seno del ngulo especificado en radianes. Para calcular un radin, consulte la descripcin incluida en la entrada de la clase Math. Parmetros
x:Number

- Un nmero que representa un ngulo medido en radianes.

Valor devuelto
Number

- Un nmero; el seno del ngulo especificado (entre -1.0 y 1.0).

Math

401

Ejemplo El ejemplo siguiente dibuja un crculo utilizando la constante matemtica pi, el seno de un ngulo y la API de dibujo
drawCircle(this, 100, 100, 50); // function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void { mc.lineStyle(2, 0xFF0000, 100); mc.moveTo(x+r, y); mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y); mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y); }

Vase tambin
acos (mtodo Math.acos), asin (mtodo Math.asin), atan (mtodo Math.atan), atan2 (mtodo Math.atan2), cos (mtodo Math.cos), tan (mtodo Math.tan)

sqrt (mtodo Math.sqrt)


public static sqrt(x:Number) : Number

Calcula y devuelve la raz cuadrada del nmero especificado. Parmetros


x:Number

- Un nmero o expresin mayor o igual que 0.

Valor devuelto
Number

- Un nmero si el parmetro x es mayor o igual a cero; en caso contrario, NaN (no es un nmero).

402

Clases de ActionScript

Ejemplo El ejemplo siguiente utiliza Math.pow y Math.sqrt para calcular la longitud de una lnea.
this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.origX = _xmouse; this.origY = _ymouse; }; mouseListener.onMouseUp = function() { this.newX = _xmouse; this.newY = _ymouse; var minY = Math.min(this.origY, this.newY); var nextDepth:Number = canvas_mc.getNextHighestDepth(); var line_mc:MovieClip = canvas_mc.createEmptyMovieClip("line"+nextDepth+"_mc", nextDepth); line_mc.moveTo(this.origX, this.origY); line_mc.lineStyle(2, 0x000000, 100); line_mc.lineTo(this.newX, this.newY); var hypLen:Number = Math.sqrt(Math.pow(line_mc._width, 2)+Math.pow(line_mc._height, 2)); line_mc.createTextField("length"+nextDepth+"_txt", canvas_mc.getNextHighestDepth(), this.origX, this.origY-22, 100, 22); line_mc['length'+nextDepth+'_txt'].text = Math.round(hypLen) +" pixels"; }; Mouse.addListener(mouseListener);

SQRT1_2 (propiedad Math.SQRT1_2)


public static SQRT1_2 : Number

Constante matemtica para la raz cuadrada de un medio, con un valor aproximado de 0,7071067811865476. Ejemplo Este ejemplo rastrea el valor de Math.SQRT1_2..
trace(Math.SQRT1_2); // Salida: 0.707106781186548

Math

403

SQRT2 (propiedad Math.SQRT2)


public static SQRT2 : Number

Constante matemtica para la raz cuadrada de 2, con un valor aproximado de 1,4142135623730951. Ejemplo Este ejemplo rastrea el valor de Math.SQRT2..
trace(Math.SQRT2); // Salida: 1.4142135623731

tan (mtodo Math.tan)


public static tan(x:Number) : Number

Calcula y devuelve la tangente del ngulo especificado. Para calcular un radin, utilice la informacin descrita en la introduccin a la clase Math. Parmetros
x:Number

- Un nmero que representa un ngulo medido en radianes.

Valor devuelto
Number

- Un nmero; tangente del parmetro x.

Ejemplo El ejemplo siguiente dibuja un crculo utilizando la constante matemtica pi, la tangente de un ngulo y la API de dibujo.
drawCircle(this, 100, 100, 50); // function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void { mc.lineStyle(2, 0xFF0000, 100); mc.moveTo(x+r, y); mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y); mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y); }
404 Clases de ActionScript

Vase tambin
acos (mtodo Math.acos), asin (mtodo Math.asin), atan (mtodo Math.atan), atan2 (mtodo Math.atan2), cos (mtodo Math.cos), sin (mtodo Math.sin)

Mouse
Object | +-Mouse public class Mouse extends Object

La clase Mouse es una clase de nivel superior a cuyos mtodos y propiedades puede acceder sin emplear un constructor. Puede utilizar los mtodos de la clase Mouse para aadir y eliminar detectores y para gestionar eventos de ratn. Nota: los miembros de esta clase se admiten en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Resumen de propiedades Propiedades heredadas de la clase Object
constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onMouseDown = function() {} onMouseMove = function() {} onMouseUp = function() {}

Descripcin
Se notifica cuando se presiona el botn del ratn. Se notifica cuando se mueve el ratn. Se notifica cuando se suelta el botn del ratn.

Mouse

405

Resumen de mtodos
Modificadores Firma
static r:Object) : Void

Descripcin
detectores onMouseDown, onMouseMove y onMouseUp. addListener().

addListener(listene Registra un objeto para recibir notificaciones de los

static

removeListener(list Elimina un objeto registrado previamente con ener:Object) : Boolean

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

addListener (mtodo Mouse.addListener)


public static addListener(listener:Object) : Void

Registra un objeto para recibir notificaciones de los detectores onMouseDown, onMouseMove y onMouseUp. El parmetro listener debe contener un objeto que tenga un mtodo definido al menos para uno de los detectores. Cuando el botn del ratn se presiona, se mueve, se suelta o se utiliza para desplazamiento, con independencia de cul sea la seleccin de entrada, se invocar el mtodo onMouseDown, onMouseMove u onMouseUp de todos los objetos a la escucha que estn registrados con este mtodo. Puede haber varios objetos a la escucha de notificaciones de ratn. Si el detector ya se ha registrado, no se producir ningn cambio. Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Parmetros
listener:Object

- Un objeto.

406

Clases de ActionScript

Ejemplo Este ejemplo est extrado del archivo animation.fla de la carpeta de ejemplos de ActionScript.
// Crea un objeto detector de ratn. var mouseListener:Object = new Object(); // Cada vez que se desplaza el cursor del ratn en el archivo SWF, actualizar la posicin de la instancia del clip de pelcula crosshair en el escenario. mouseListener.onMouseMove = function() { crosshair_mc._x = _xmouse; crosshair_mc._y = _ymouse; }; // Al pulsar el botn del ratn, comprueba si el cursor se encuentra dentro de los lmites del escenario. Si es as, aumentar el nmero de tomas. mouseListener.onMouseDown = function() { if (bg_mc.hitTest(_xmouse, _ymouse, false)) { _global.shots++; } }; Mouse.addListener(mouseListener);

Para ver el script completo, consulte el archivo animation.fla de la carpeta de ejemplos de ActionScript en www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
onMouseDown (detector de eventos Mouse.onMouseDown), onMouseMove (detector de eventos Mouse.onMouseMove), onMouseUp (detector de eventos Mouse.onMouseUp)

onMouseDown (detector de eventos Mouse.onMouseDown)


onMouseDown = function() {}

Se notifica cuando se presiona el botn del ratn. Para utilizar el detector onMouseDown, debe crear un objeto detector. Posteriormente podr definir una funcin para onMouseDown y utilizar addListener() para registrar el detector en el objeto Mouse, como se muestra en el siguiente cdigo:
var someListener:Object = new Object(); someListener.onMouseDown = function () { ... }; Mouse.addListener(someListener);

Mouse

407

Los detectores permiten que diversas partes del cdigo cooperen, ya que varios detectores pueden recibir notificacin de un solo evento. Nota: este detector de eventos se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El siguiente ejemplo utiliza la API de dibujo para trazar un rectngulo cuando el usuario pulsa el botn del ratn, lo desplaza y, despus, lo suelta en tiempo de ejecucin.
this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.isDrawing = true; this.orig_x = _xmouse; this.orig_y = _ymouse; this.target_mc = canvas_mc.createEmptyMovieClip("", canvas_mc.getNextHighestDepth()); }; mouseListener.onMouseMove = function() { if (this.isDrawing) { this.target_mc.clear(); this.target_mc.lineStyle(1, 0xFF0000, 100); this.target_mc.moveTo(this.orig_x, this.orig_y); this.target_mc.lineTo(_xmouse, this.orig_y); this.target_mc.lineTo(_xmouse, _ymouse); this.target_mc.lineTo(this.orig_x, _ymouse); this.target_mc.lineTo(this.orig_x, this.orig_y); } updateAfterEvent(); }; mouseListener.onMouseUp = function() { this.isDrawing = false; }; Mouse.addListener(mouseListener);

Vase tambin
addListener (mtodo Mouse.addListener)

408

Clases de ActionScript

onMouseMove (detector de eventos Mouse.onMouseMove)


onMouseMove = function() {}

Se notifica cuando se mueve el ratn. Para utilizar el detector onMouseMove, debe crear un objeto detector. Posteriormente podr definir una funcin para onMouseMove y utilizar addListener() para registrar el detector en el objeto Mouse, como se muestra en el siguiente cdigo:
var someListener:Object = new Object(); someListener.onMouseMove = function () { ... }; Mouse.addListener(someListener);

Los detectores permiten que diversas partes del cdigo cooperen, ya que varios detectores pueden recibir notificacin de un solo evento. Nota: este detector de eventos se admite en Flash Lite slo si System.capabilities.hasMouse es true. Ejemplo El ejemplo siguiente utiliza el puntero del ratn como herramienta para dibujar lneas con onMouseMove y la interfaz API de dibujo. El usuario dibuja una lnea desplazando el puntero.
this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.isDrawing = true; canvas_mc.lineStyle(2, 0xFF0000, 100); canvas_mc.moveTo(_xmouse, _ymouse); }; mouseListener.onMouseMove = function() { if (this.isDrawing) { canvas_mc.lineTo(_xmouse, _ymouse); } updateAfterEvent(); }; mouseListener.onMouseUp = function() { this.isDrawing = false; }; Mouse.addListener(mouseListener);

Mouse

409

El siguiente ejemplo establece las posiciones x e y de la instancia del clip de pelcula pointer_mc en las posiciones x e y del puntero. El dispositivo debe admitir un lpiz stylus o un ratn para que el ejemplo funcione. Para utilizar el ejemplo, cree un clip de pelcula y establezca su identificador de vinculacin en pointer_id. A continuacin, aada el siguiente cdigo ActionScript al fotograma 1 de la lnea de tiempo:
this.attachMovie("pointer_id", "pointer_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { pointer_mc._x = _xmouse; pointer_mc._y = _ymouse; }; Mouse.addListener(mouseListener);

Vase tambin
addListener (mtodo Mouse.addListener)

onMouseUp (detector de eventos Mouse.onMouseUp)


onMouseUp = function() {}

Se notifica cuando se suelta el botn del ratn. Para utilizar el detector onMouseUp, debe crear un objeto detector. Posteriormente podr definir una funcin para onMouseUp y utilizar addListener() para registrar el detector en el objeto Mouse, como se muestra en el siguiente cdigo:
var someListener:Object = new Object(); someListener.onMouseUp = function () { ... }; Mouse.addListener(someListener);

Los detectores permiten que diversas partes del cdigo cooperen, ya que varios detectores pueden recibir notificacin de un solo evento. Nota: este detector de eventos se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente utiliza el puntero del ratn como herramienta para dibujar lneas con onMouseMove y la interfaz API de dibujo. El usuario dibuja una lnea desplazando el puntero y deja de trazarla soltando el botn del ratn.
this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.isDrawing = true;

410

Clases de ActionScript

canvas_mc.lineStyle(2, 0xFF0000, 100); canvas_mc.moveTo(_xmouse, _ymouse); }; mouseListener.onMouseMove = function() { if (this.isDrawing) { canvas_mc.lineTo(_xmouse, _ymouse); } updateAfterEvent(); }; mouseListener.onMouseUp = function() { this.isDrawing = false; }; Mouse.addListener(mouseListener);

Vase tambin
addListener (mtodo Mouse.addListener)

removeListener (mtodo Mouse.removeListener)


public static removeListener(listener:Object) : Boolean

Elimina un objeto registrado previamente con addListener(). Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Parmetros
listener:Object

- Un objeto.

Valor devuelto
Boolean - Si el objeto detector se elimina correctamente, el mtodo devolver true; si el objeto detector no se elimina correctamente (por ejemplo, si el objeto detector no se encontraba en la lista de detectores del objeto Mouse), el mtodo devolver false.

Ejemplo El ejemplo siguiente asocia tres botones al escenario y permite que el usuario dibuje lneas en el archivo SWF con el puntero del ratn en tiempo de ejecucin. Un botn borra todas las lneas del archivo SWF. El segundo botn elimina el detector del ratn, por lo que el usuario no puede dibujar lneas. El tercer botn aade el detector del ratn cuando se ha eliminado, de modo que el usuario puede volver a dibujar lneas. Aada el cdigo ActionScript siguiente al fotograma 1 de la lnea de tiempo:
this.createClassObject(mx.controls.Button, "clear_button", this.getNextHighestDepth(), {_x:10, _y:10, label:'clear'});

Mouse

411

this.createClassObject(mx.controls.Button, "stopDrawing_button", this.getNextHighestDepth(), {_x:120, _y:10, label:'stop drawing'}); this.createClassObject(mx.controls.Button, "startDrawing_button", this.getNextHighestDepth(), {_x:230, _y:10, label:'start drawing'}); startDrawing_button.enabled = false; // this.createEmptyMovieClip("canvas_mc", this.getNextHighestDepth()); var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { this.isDrawing = true; canvas_mc.lineStyle(2, 0xFF0000, 100); canvas_mc.moveTo(_xmouse, _ymouse); }; mouseListener.onMouseMove = function() { if (this.isDrawing) { canvas_mc.lineTo(_xmouse, _ymouse); } updateAfterEvent(); }; mouseListener.onMouseUp = function() { this.isDrawing = false; }; Mouse.addListener(mouseListener); var clearListener:Object = new Object(); clearListener.click = function() { canvas_mc.clear(); }; clear_button.addEventListener("click", clearListener); // var stopDrawingListener:Object = new Object(); stopDrawingListener.click = function(evt:Object) { Mouse.removeListener(mouseListener); evt.target.enabled = false; startDrawing_button.enabled = true; }; stopDrawing_button.addEventListener("click", stopDrawingListener); var startDrawingListener:Object = new Object(); startDrawingListener.click = function(evt:Object) { Mouse.addListener(mouseListener); evt.target.enabled = false; stopDrawing_button.enabled = true; }; startDrawing_button.addEventListener("click", startDrawingListener);

412

Clases de ActionScript

MovieClip
Object | +-MovieClip public dynamic class MovieClip extends Object

Los mtodos de la clase MovieClip proporcionan la misma funcionalidad que las acciones que van dirigidas a clips de pelcula. Tambin existen mtodos adicionales que carecen de acciones equivalentes en el cuadro de herramientas Acciones del panel Acciones. Para crear nuevo un clip de pelcula no tendr que utilizar un mtodo constructor. Es posible elegir entre tres mtodos para crear nuevas instancias de clip de pelcula:

El mtodo attachMovie() permite crear una nueva instancia de clip de pelcula basada en un smbolo de clip de pelcula que existe en la biblioteca. El mtodo createEmptyMovieClip() permite crear una nueva instancia vaca de clip de pelcula como elemento secundario de otro clip de pelcula. El mtodo duplicateMovieClip() permite crear una instancia de clip de pelcula basada en otro clip de pelcula.

Para llamar a los mtodos de la clase MovieClip, debe hacer referencia a las instancias de clip de pelcula por su nombre y utilizar la siguiente sintaxis, donde my_mc es una instancia de clip de pelcula:
my_mc.play(); my_mc.gotoAndPlay(3);

Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Resumen de propiedades
Modificadores Propiedad
_alpha:Number

Descripcin
Valor de transparencia alfa del clip de pelcula. situada la cabeza lectora en la lnea de tiempo del clip de pelcula. Devuelve la ruta absoluta en notacin de sintaxis con barras de la instancia de clip de pelcula en la que se ha colocado dicho clip de pelcula. Valor booleano que indica si un clip de pelcula est activado.

_currentframe:Number Devuelve el nmero del fotograma en el que est

[read-only]

_droptarget:String

[read-only]

enabled:Boolean

MovieClip

413

Modificadores Propiedad

Descripcin
pelcula no puede quedar resaltado a menos que sea un botn.

focusEnabled:Boolean Si el valor es undefined o false, un clip de

_focusrect:Boolean

Valor booleano que especifica si un clip de pelcula debe mostrar un rectngulo amarillo a su alrededor cuando tiene la seleccin de entrada. flujo de archivo SWF. Altura del clip de pelcula, expresada en pxeles. Desfasadadesde Flash Player 7. Esta propiedad est desfasada y en su lugar debe utilizarse MovieClip._quality. Especifica el nivel de visualizacin suavizada que se aplica al archivo SWF actual. Designa otro clip de pelcula para que acte como rea activa de un clip de pelcula. Un valor booleano que especifica a qu hace referencia _root cuando se carga un archivo SWF en un clip de pelcula. Nombre de instancia del clip de pelcula. Referencia al clip de pelcula u objeto que contiene el clip de pelcula u objeto actual. Establece o recupera la calidad de representacin que se utiliza para un archivo SWF. Especifica el giro del clip de pelcula, expresado en grados, con respecto a su orientacin original. debe acumularse previamente en el bfer antes de que comience a reproducirse sin interrupcin.

_framesloaded:Number Nmero de fotogramas que se han cargado de un

[read-only]
_height:Number _highquality:Number

hitArea:Object

_lockroot:Boolean

_name:String _parent:MovieClip

_quality:String

_rotation:Number

_soundbuftime:Number Especifica el nmero de segundos que un sonido

tabChildren:Boolean

Determina si los elementos secundarios de un clip de pelcula se incluyen en el orden de tabulacin automtico. Especifica si el clip de pelcula se incluye en el orden de tabulacin automtico. Permite personalizar el orden de tabulacin de los objetos de una pelcula.

tabEnabled:Boolean

tabIndex:Number

414

Clases de ActionScript

Modificadores Propiedad
only]
_totalframes:Number

Descripcin
de pelcula en notacin con barras. Devuelve el nmero total de fotogramas de la instancia de clip de pelcula especificada en el parmetro MovieClip. Valor booleano que indica si otros botones o clips de pelcula pueden recibir un evento de liberacin del botn del ratn o del lpiz stylus. Recupera la URL del archivo SWF, JPEG, GIF o PNG del que se descarg el clip de pelcula. Valor booleano que indica si un clip de pelcula est visible. Anchura del clip de pelcula, expresada en pxeles. Entero que establece la coordenada x de un clip de pelcula con respecto a las coordenadas locales del clip de pelcula principal.

_target:String [read- Devuelve la ruta de destino de la instancia de clip

[read-only]

trackAsMenu:Boolean

_url:String [read-

only]
_visible:Boolean

_width:Number _x:Number

_xmouse:Number [read- Devuelve la coordenada x de la posicin del ratn.

only]
_xscale:Number

Establece la escala horizontal (percentage) del clip de pelcula aplicada desde el punto de registro del clip de pelcula. Establece la coordenada y de un clip de pelcula con respecto a las coordenadas locales del clip de pelcula principal.

_y:Number

_ymouse:Number [read- Indica la coordenada y de la posicin del ratn.

only]
_yscale:Number

Establece la escala vertical (percentage) del clip de pelcula aplicada desde el punto de registro del clip de pelcula.

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

MovieClip

415

Resumen de eventos
Evento
onData = function() {} onDragOut = function() {} onDragOver = function() {} onEnterFrame = function() {} onKeyDown = function() {} onKeyUp = function() {} onKillFocus = bject) {} onLoad = function() {} onMouseDown = function() {} onMouseMove = function() {} onMouseUp = function() {} onPress = function() {} onRelease = function() {} onReleaseOutside = function() {} onRollOut = function() {} onRollOver = function() {}

Descripcin
Se invoca cuando un clip de pelcula recibe datos de una llamada MovieClip.loadVariables() o MovieClip.loadMovie(). Se invoca cuando se presiona el botn del ratn y el puntero se desplaza fuera del objeto. Se invoca cuando el puntero se arrastra fuera del clip de pelcula y luego se pasa por encima de ste. Se invoca de manera repetida con la velocidad de fotogramas del archivo SWF. Se invoca cuando un clip de pelcula est resaltado y se presiona una tecla. Se invoca cuando se suelta una tecla. Se invoca cuando un clip de pelcula deja de tener la seleccin de

function(newFocus:O entrada.

Se invoca cuando se crea una instancia del clip de pelcula y sta aparece en la lnea de tiempo. Se invoca cuando se presiona el botn del ratn. Se invoca cuando se mueve el ratn. Se invoca cuando se suelta el botn del ratn. Se invoca cuando el usuario hace clic en el ratn mientras el puntero se encuentra sobre el clip de pelcula. Se invoca cuanto se suelta el botn del ratn sobre un clip de pelcula. Se invoca cuando se presiona el botn del ratn dentro del rea del clip de pelcula y haberlos soltado despus fuera del rea. Se invoca cuando el puntero se desplaza fuera del rea de un clip de pelcula. Se invoca cuando el puntero se desplaza sobre el rea de un clip de pelcula.

416

Clases de ActionScript

Evento
onSetFocus = function(oldFocus:O bject) {} onUnload = function() {}

Descripcin
Se invoca cuando un clip de pelcula recibe la seleccin de entrada.

Se invoca en el primer fotograma despus de que el clip de pelcula se elimine de la lnea de tiempo.

Resumen de mtodos
Modificadores Firma
ng, name:String, depth:Number, [initObject:Object] ) : MovieClip beginFill(rgb:Numbe Indica el comienzo de un nuevo trazo de dibujo. r, [alpha:Number]) : Void beginGradientFill(f Indica el comienzo de un nuevo trazo de dibujo. illType:String, colors:Array, alphas:Array, ratios:Array, matrix:Object) : Void clear() : Void

Descripcin
clip de pelcula.

attachMovie(id:Stri Localiza un smbolo de la biblioteca y lo asocia al

Elimina todos los grficos creados en tiempo de ejecucin empleando los mtodos de dibujo del clip de pelcula, incluidos los estilos de lnea especificados con MovieClip.lineStyle(). secundario de un clip de pelcula existente.

createEmptyMovieCli Crea un clip de pelcula vaco como elemento p(name:String, depth:Number) : MovieClip createTextField(ins Crea un nuevo campo de texto vaco como tanceName:String, depth:Number, x:Number, y:Number, width:Number, height:Number) : TextField

elemento secundario del clip de pelcula que llama a este mtodo.

MovieClip

417

Modificadores Firma
mber, controlY:Number, anchorX:Number, anchorY:Number) : Void

Descripcin
la posicin de dibujo actual hasta (anchorX, anchorY) utilizando el punto de control especificado con ((controlX, controlY).

curveTo(controlX:Nu Dibuja una curva con el estilo de lnea actual desde

duplicateMovieClip( Crea una instancia del clip de pelcula especificado name:String, depth:Number, [initObject:Object] ) : MovieClip endFill() : Void

mientras se reproduce el archivo SWF.

Aplica un relleno a las lneas y curvas aadidas desde la ltima llamada a beginFill() o beginGradientFill(). coordenada mnimo y mximo x e y del clip de pelcula para el parmetro bounds. Devuelve el nmero de bytes que se han cargado (reproducido sin interrupcin) para el clip de pelcula. Devuelve el tamao en bytes del clip de pelcula.

getBounds(bounds:Ob Devuelve las propiedades que son los valores de ject) : Object

getBytesLoaded() : Number

getBytesTotal() : Number

getDepth() : Number Devuelve la profundidad de una instancia de clip de

pelcula.
getInstanceAtDepth( Determina si una profundidad especfica ya est depth:Number) : MovieClip getNextHighestDepth Le permite determinar un valor de profundidad que () : Number

ocupada por un clip de pelcula.

puede pasar a MovieClip.attachMovie(), MovieClip.duplicateMovieClip() o MovieClip.createEmptyMovieClip() para asegurarse de que Flash representa el clip de pelcula delante de todos los dems objetos situados en el mismo nivel y capa del clip de pelcula actual. Devuelve un entero que indica la versin de Flash Player para la que se ha publicado el clip de pelcula.

getSWFVersion() : Number

418

Clases de ActionScript

Modificadores Firma
getURL(url:String, [window:String], [method:String]) : Void

Descripcin
Carga un documento de la URL especificada en la ventana indicada.

globalToLocal(pt:Ob Convierte el objeto pt de las coordenadas del ject) : Void

escenario (globales) en coordenadas del clip de pelcula (locales). fotograma especificado. especificado del clip de pelcula y la detiene en dicho lugar. superpone o corta con el rea activa identificada mediante los parmetros de coordenadas target o x e y.

gotoAndPlay(frame:O Inicia la reproduccin del archivo SWF en el bject) : Void

gotoAndStop(frame:O Traslada la cabeza lectora al fotograma bject) : Void

hitTest() : Boolean Evala el clip de pelcula para comprobar si se

lineStyle(thickness Especifica un estilo de lnea que Flash utilizar para :Number, rgb:Number, alpha:Number, pixelHinting:Boolea n, noScale:String, capsStyle:String, jointStyle:String, miterLimit:Number) : Void lineTo(x:Number, y:Number) : Void

las posteriores llamadas a lineTo() y curveTo() hasta que llame a lineStyle() con otros parmetros.

Dibuja una lnea utilizando el estilo de lnea actual desde la posicin de dibujo actual hasta (x, y); la posicin de dibujo actual se establece posteriormente como (x, y).

loadMovie(url:Strin Carga un archivo SWF o JPEG en un clip de g, [method:String]) pelcula en Flash Player mientras se reproduce el : Void

archivo SWF original. valores de variables en el clip de pelcula.

loadVariables(url:S Lee datos de un archivo externo y establece los tring, [method:String]) : Void

MovieClip

419

Modificadores Firma
ject) : Void

Descripcin
pelcula (locales) en coordenadas del escenario (globales). Mueve la posicin de dibujo actual a (x, y). Traslada la cabeza lectora al siguiente fotograma y la detiene en dicho punto. Mueve la cabeza lectora por la lnea de tiempo del clip de pelcula. Traslada la cabeza lectora al fotograma anterior y la detiene en dicho punto. duplicateMovieClip(), MovieClip.duplicateMovieClip(), MovieClip.createEmptyMovieClip() o MovieClip.attachMovie(). Convierte el clip de pelcula del parmetro mc en una mscara que revela el clip de pelcula especificado por el clip de pelcula. especificado.

localToGlobal(pt:Ob Convierte el objeto pt de coordenadas del clip de

moveTo(x:Number, y:Number) : Void nextFrame() : Void

play() : Void

prevFrame() : Void

removeMovieClip() : Elimina una instancia de clip de pelcula creada por Void

setMask(mc:Object) : Void

startDrag([lockCent Permite al usuario arrastrar el clip de pelcula er:Boolean], [left:Number], [top:Number], [right:Number], [bottom:Number]) : Void stop() : Void

Detiene el clip de pelcula que se est reproduciendo actualmente. Finaliza un mtodo MovieClip.startDrag(). (orden z), de este clip de pelcula con el clip de pelcula especificado por el parmetro target o con el clip de pelcula que ocupa actualmente el nivel de profundidad especificado en el parmetro target. Elimina el contenido de una instancia de clip de pelcula.

stopDrag() : Void

swapDepths(target:O Intercambia el apilamiento o nivel de profundidad bject) : Void

unloadMovie() : Void

420

Clases de ActionScript

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

_alpha (propiedad MovieClip._alpha)


public _alpha : Number

Valor de transparencia alfa del clip de pelcula. Los valores vlidos son los comprendidos entre 0 (totalmente transparente) y 100 (totalmente opaco). El valor predeterminado es 100. Los objetos existentes en un clip de pelcula que tenga configurado _alpha con el valor 0 continuarn activos aunque no sean visibles. Por ejemplo, puede hacer clic en un botn de un clip de pelcula aunque su propiedad _alpha est configurada con el valor 0. Para desactivar el botn completamente, puede establecer la propiedad _visible del clip de pelcula con el valor false. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Ejemplo El cdigo siguiente define en 50% la propiedad _alpha de un clip de pelcula creado dinmicamente y denominado triangle cuando el ratn se desplaza sobre el clip de pelcula. Aada el siguiente cdigo ActionScript al archivo FLA o AS:
this.createEmptyMovieClip("triangle", this.getNextHighestDepth()); triangle.beginFill(0x0000FF, 100); triangle.moveTo(10, 10); triangle.lineTo(10, 100); triangle.lineTo(100, 10); triangle.lineTo(10, 10); triangle.onRollOver = function() { this._alpha = 50; }; triangle.onRollOut = function() { this._alpha = 100; };

Vase tambin
_alpha (propiedad Button._alpha), _alpha (propiedad TextField._alpha), _visible (propiedad MovieClip._visible)

MovieClip

421

attachMovie (mtodo MovieClip.attachMovie)


public attachMovie(id:String, name:String, depth:Number, [initObject:Object]) : MovieClip

Localiza un smbolo de la biblioteca y lo asocia al clip de pelcula. Utilice MovieClip.removeMovieClip() o MovieClip.unloadMovie() para eliminar un archivo SWF asociado mediante attachMovie(). Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
id:String

- Nombre de vinculacin del smbolo de clip de pelcula de la biblioteca que va a asociarse a un clip de pelcula del escenario. Es el nombre introducido en el campo Identificador del cuadro de dilogo Propiedades de vinculacin. - Nombre de instancia exclusivo del clip de pelcula que va a asociarse al clip de - Entero que especifica el nivel de profundidad en el que est situado el

name:String

pelcula.
depth:Number

archivo SWF.
initObject:Object [opcional] - (Admitido en Flash Player 6 y versiones posteriores) Objeto que contiene propiedades con las que rellenar el clip de pelcula recin asociado. Este parmetro permite a los clips de pelcula creados dinmicamente recibir parmetros de clip. Si initObject no es un objeto, se omite. Todas las propiedades de initObject se copian en la nueva instancia. Las propiedades especificadas con initObject estn disponibles para la funcin constructora.

Valor devuelto
MovieClip

- Una referencia a la nueva instancia creada.

Ejemplo El ejemplo siguiente asocia el smbolo con el identificador de vinculacin "circle" a la instancia de clip de pelcula, situada en el escenario en el archivo SWF:
this.attachMovie("circle", "circle1_mc", this.getNextHighestDepth()); this.attachMovie("circle", "circle2_mc", this.getNextHighestDepth(), {_x:100, _y:100});

Vase tambin
removeMovieClip (mtodo MovieClip.removeMovieClip), unloadMovie (mtodo MovieClip.unloadMovie), Funcin removeMovieClip

422

Clases de ActionScript

beginFill (mtodo MovieClip.beginFill)


public beginFill(rgb:Number, [alpha:Number]) : Void

Indica el comienzo de un nuevo trazo de dibujo. Si existe un trazado abierto (es decir, si la posicin de dibujo actual no es la misma que la posicin anterior especificada en un mtodo MovieClip.moveTo() y tiene un relleno asociado, dicho trazado se cerrar con una lnea y luego se rellenar. Se trata de un resultado similar al que se obtiene cuando se llama a MovieClip.endFill(). Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
rgb:Number

- Valor de color hexadecimal (por ejemplo, rojo es 0xFF0000, azul es 0x0000FF, etc.). Si no se proporciona este valor o es undefined, no se crea un relleno.

alpha:Number

[opcional] - Entero entre 0 y 100 que especifica el valor alfa del relleno. Si no se proporciona este valor, se utiliza 100 (continuo). Si el valor es inferior a 0, Flash utiliza 0. Si el valor es mayor que 100, Flash utiliza 100. Ejemplo El ejemplo siguiente crea un cuadrado con relleno rojo en el escenario:

this.createEmptyMovieClip("square_mc", this.getNextHighestDepth()); square_mc.beginFill(0xFF0000); square_mc.moveTo(10, 10); square_mc.lineTo(100, 10); square_mc.lineTo(100, 100); square_mc.lineTo(10, 100); square_mc.lineTo(10, 10); square_mc.endFill();

Encontrar tambin un ejemplo en el archivo drawingapi.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
moveTo (mtodo MovieClip.moveTo), endFill (mtodo MovieClip.endFill), beginGradientFill (mtodo MovieClip.beginGradientFill)

MovieClip

423

beginGradientFill (mtodo MovieClip.beginGradientFill)


public beginGradientFill(fillType:String, colors:Array, alphas:Array, ratios:Array, matrix:Object) : Void

Indica el comienzo de un nuevo trazo de dibujo. Si el primer parmetro es undefined, o si no se han pasado parmetros, el trazado no tendr relleno. Si existe un trazado abierto (es decir, si la posicin de dibujo actual no es la misma que la posicin anterior especificada en un mtodo MovieClip.moveTo()) y tiene un relleno asociado, dicho trazado se cerrar con una lnea y luego se rellenar. Se trata de un resultado similar al que se obtiene cuando se llama a MovieClip.endFill(). Este mtodo falla si se da una de las situaciones siguientes:

El nmero de elementos de los parmetros colors, alphas y ratios no coincide. El parmetro fillType no es "linear" ni "radial". Alguno de los campos del objeto correspondiente al parmetro matrix no estn presentes o no son vlidos.

Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
fillType:String

- Cadena "linear" o "radial". en el degradado

colors:Array - Matriz de valores de color RGB hexadecimales que se utiliza

(por ejemplo, rojo es 0xFF0000, azul es 0x0000FF, etc.).


alphas:Array - Matriz de valores alfa para los colores correspondientes de la matriz colors; los valores vlidos son del 0 al 100. Si el valor es inferior a 0, Flash utiliza 0. Si el valor es mayor que 100, Flash utiliza 100. ratios:Array

- Una matriz de proporciones de distribucin de colores; los valores vlidos son del 0 al -255. Este valor define el porcentaje de la anchura donde el color se muestrea al 100%.

matrix:Object - Matriz de transformacin que es un objeto con uno de los dos conjuntos de

propiedades siguientes:

a, b, c, d, e, f, g, h, i, a b c d e f g h i

para describir una matriz de 3 x 3 de la forma siguiente:

424

Clases de ActionScript

El ejemplo siguiente utiliza el mtodo beginGradientFill() con un parmetro matrixde este tipo:
this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth()); with (gradient_mc) { colors = [0xFF0000, 0x0000FF]; fillType = "radial" alphas = [100, 100]; ratios = [0, 0xFF]; spreadMethod = "reflect"; interpolationMethod = "linearRGB"; focalPointRatio = 0.9; matrix = {a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1}; beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio); moveTo(100, 100); lineTo(100, 300); lineTo(300, 300); lineTo(300, 100); lineTo(100, 100); endFill(); }

Este cdigo dibuja la imagen siguiente en la pantalla:

matrixType, x, y, w, h, r.

Las propiedades indican lo siguiente: matrixType es la cadena "box", x es la posicin horizontal de la esquina superior izquierda del degradado con respecto al punto de registro del clip principal, y es la posicin vertical de la esquina superior izquierda del degradado con respecto al punto de registro del clip principal, w es la anchura del degradado, h es la altura del degradado y r es la rotacin en radianes del degradado.

MovieClip

425

El ejemplo siguiente utiliza el mtodo beginGradientFill() con un parmetro matrixde este tipo:
this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth()); with (gradient_mc) { colors = [0xFF0000, 0x0000FF]; fillType = "radial" alphas = [100, 100]; ratios = [0, 0xFF]; spreadMethod = "reflect"; interpolationMethod = "linearRGB"; focalPointRatio = 0.9; matrix = {matrixType:"box", x:100, y:100, w:200, h:200, r:(45/ 180)*Math.PI}; beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio); moveTo(100, 100); lineTo(100, 300); lineTo(300, 300); lineTo(300, 100); lineTo(100, 100); endFill(); }

Este cdigo dibuja la imagen siguiente en la pantalla:

Vase tambin
beginFill (mtodo MovieClip.beginFill), endFill (mtodo MovieClip.endFill), lineStyle (mtodo MovieClip.lineStyle), lineTo (mtodo MovieClip.lineTo), moveTo (mtodo MovieClip.moveTo)

426

Clases de ActionScript

clear (mtodo MovieClip.clear)


public clear() : Void

Elimina todos los grficos creados en tiempo de ejecucin empleando los mtodos de dibujo del clip de pelcula, incluidos los estilos de lnea especificados con MovieClip.lineStyle(). Las formas y lneas que se dibujan manualmente durante la etapa de edicin (con las herramientas de dibujo de Flash) no se ven afectadas. Ejemplo El ejemplo siguiente dibuja un recuadro en el escenario: Cuando el usuario hace clic en el grfico del recuadro, elimina el grfico del escenario.
this.createEmptyMovieClip("box_mc", this.getNextHighestDepth()); box_mc.onRelease = function() { this.clear(); }; drawBox(box_mc, 10, 10, 320, 240); function drawBox(mc:MovieClip, x:Number, y:Number, w:Number, h:Number):Void { mc.lineStyle(0); mc.beginFill(0xEEEEEE); mc.moveTo(x, y); mc.lineTo(x+w, y); mc.lineTo(x+w, y+h); mc.lineTo(x, y+h); mc.lineTo(x, y); mc.endFill(); }

Encontrar tambin un ejemplo en el archivo drawingapi.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
lineStyle (mtodo MovieClip.lineStyle)

MovieClip

427

createEmptyMovieClip (mtodo MovieClip.createEmptyMovieClip)


public createEmptyMovieClip(name:String, depth:Number) : MovieClip

Crea un clip de pelcula vaco como elemento secundario de un clip de pelcula existente. Este mtodo se comporta de forma similar al mtodo attachMovie(), aunque no es necesario proporcionar un identificador de vinculacin externo para el nuevo clip de pelcula. El punto de registro de un clip de pelcula vaco recin creado es la esquina superior izquierda. Este mtodo falla si falta cualquiera de los parmetros. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
name:String

- Cadena que identifica el nombre de instancia del nuevo clip de pelcula. - Entero que especifica la profundidad del nuevo clip de pelcula.

depth:Number

Valor devuelto
MovieClip

- Una referencia al nuevo clip de pelcula creado.

Ejemplo El ejemplo siguiente crea un objeto MovieClip vaco denominado container, crea un nuevo objeto TextField en su interior y define la nueva propiedad TextField.text.
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); var label:TextField = container.createTextField("label", 1, 0, 0, 150, 20); label.text = "Hello World";

Vase tambin
attachMovie (mtodo MovieClip.attachMovie)

428

Clases de ActionScript

createTextField (mtodo MovieClip.createTextField)


public createTextField(instanceName:String, depth:Number, x:Number, y:Number, width:Number, height:Number) : TextField

Crea un nuevo campo de texto vaco como elemento secundario del clip de pelcula que llama a este mtodo. Puede utilizar el mtodo createTextField() para crear campos de texto mientras se reproduce un archivo SWF. El parmetro depth determina el nivel de profundidad del nuevo campo de texto (posicin de orden z) del clip de pelcula. Cada nivel de profundidad slo puede contener un objeto. Si crea un nuevo campo de texto en una profundidad en la que ya hay un campo de texto, el nuevo campo de texto reemplaza al existente. Para evitar sobrescribir campos de texto existentes, utilice MovieClip.getInstanceAtDepth() con el fin de determinar si una profundidad ya est ocupada o MovieClip.getNextHighestDepth() para determinar la profundidad ms alta no ocupada. El campo de texto se sita en (x, y) con las dimensiones width (anchura) por height (altura). Los parmetros x e y son relativos al clip de pelcula del contenedor; estos parmetros corresponden a las propiedades _x e _y del campo de texto. Los parmetros width y height corresponden a las propiedades _width y _height del campo de texto. Las propiedades predeterminadas de un campo de texto son las siguientes:
type = "dynamic" border = false background = false password = false multiline = false html = false embedFonts = false selectable = true wordWrap = false mouseWheelEnabled = true condenseWhite = false restrict = null variable = null maxChars = null styleSheet = undefined tabInded = undefined

Un campo de texto creado con createTextField() recibe los ajustes del siguiente objeto TextFormat predeterminado:
font = "Times New Roman" // "Times" en Mac OS size = 12 color = 0x000000 bold = false italic = false underline = false url = "" target = ""

MovieClip

429

align = "left" leftMargin = 0 rightMargin = 0 indent = 0 leading = 0 blockIndent = 0 bullet = false display = block tabStops = [] // (matriz vaca)

Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
instanceName:String

- Cadena que identifica el nombre de instancia del nuevo campo de

texto.
depth:Number x:Number y:Number

- Entero positivo que especifica la profundidad del nuevo campo de texto.

- Entero que especifica la coordenada x del nuevo campo de texto. - Entero que especifica la coordenada y del nuevo campo de texto. - Entero positivo que especifica la anchura del nuevo campo de texto. - Entero positivo que especifica la altura del nuevo campo de texto.

width:Number

height:Number

Valor devuelto
TextField

Ejemplo El ejemplo siguiente crea un campo de texto con una anchura de 300, una altura de 100, una coordenada xde 100, una coordenada y de 100, sin bordes, rojo y texto subrayado:
this.createTextField("my_txt", 1, 100, 100, 300, 100); my_txt.multiline = true; my_txt.wordWrap = true; var my_fmt:TextFormat = new TextFormat(); my_fmt.color = 0xFF0000; my_fmt.underline = true; my_txt.text = "This is my first test field object text."; my_txt.setTextFormat(my_fmt);

Encontrar tambin un ejemplo en el archivo animations.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo.

430

Clases de ActionScript

Vase tambin
getInstanceAtDepth (mtodo MovieClip.getInstanceAtDepth), getNextHighestDepth (mtodo MovieClip.getNextHighestDepth), TextFormat

_currentframe (propiedad MovieClip._currentframe)


public _currentframe : Number [read-only]

Devuelve el nmero del fotograma en el que est situada la cabeza lectora en la lnea de tiempo del clip de pelcula. Ejemplo El ejemplo siguiente utiliza la propiedad _currentframe para ordenar a la cabeza lectora del clip de pelcula actionClip_mc que avance cinco fotogramas con respecto a su posicin actual:
actionClip_mc.gotoAndStop(actionClip_mc._currentframe + 5);

curveTo (mtodo MovieClip.curveTo)


public curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number) : Void

Dibuja una curva con el estilo de lnea actual desde la posicin de dibujo actual hasta (anchorX, anchorY) utilizando el punto de control especificado con ((controlX, controlY). La posicin de dibujo actual se establece entonces como anchorX, anchorY). Si el clip de pelcula en el que est dibujando incluye contenido creado con las herramientas de dibujo de Flash, las llamadas a curveTo() se dibujarn debajo de este contenido. Si llama a curveTo() antes de realizar ninguna llamada al mtodo moveTo(), se adoptar la posicin de dibujo predeterminada (0,0). Si falta alguno de los parmetros, este mtodo falla y la posicin de dibujo actual no cambia. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
controlX:Number - Entero que especifica la posicin horizontal del punto de control con respecto al punto de registro del clip de pelcula principal. controlY:Number - Entero que especifica la posicin vertical del punto de control con respecto al punto de registro del clip de pelcula principal. anchorX:Number - Entero que especifica la posicin horizontal del siguiente punto de anclaje con respecto al punto de registro del clip de pelcula principal.

MovieClip

431

anchorY:Number - Entero que especifica la posicin vertical del siguiente punto de anclaje con respecto al punto de registro del clip de pelcula principal.

Ejemplo El ejemplo siguiente dibuja una curva casi circular con un trazo fino continuo azul y un relleno continuo rojo:
this.createEmptyMovieClip("circle_mc", 1); with (circle_mc) { lineStyle(0, 0x0000FF, 100); beginFill(0xFF0000); moveTo(0, 100); curveTo(0,200,100,200); curveTo(200.200.200.100); curveTo(200,0,100,0); curveTo(0,0,0,100); endFill(); }

La curva dibujada en este ejemplo es una curva cuadrtica de Bzier. Las curvas cuadrticas de Bzier constan de dos puntos de anclaje y un punto de control. La curva interpola los dos puntos de anclaje y se dirige al punto de control.

En el script siguiente se utiliza el mtodo curveTo() y la clase Math para crear un crculo:
this.createEmptyMovieClip("circle2_mc", 2); circle2_mc.lineStyle(0, 0x000000); drawCircle(circle2_mc, 100, 100, 100); function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void { mc.moveTo(x+r, y); mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, '+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y); mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y); mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y); mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y); mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x,

432

Clases de ActionScript

-Math.sin(Math.PI/4)*r+y); mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y); }

Encontrar tambin un ejemplo en el archivo drawingapi.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
beginFill (mtodo MovieClip.beginFill), createEmptyMovieClip (mtodo MovieClip.createEmptyMovieClip), endFill (mtodo MovieClip.endFill), lineStyle (mtodo MovieClip.lineStyle), lineTo (mtodo MovieClip.lineTo), moveTo (mtodo MovieClip.moveTo), Math

_droptarget (propiedad MovieClip._droptarget)


public _droptarget : String [read-only]

Devuelve la ruta absoluta en notacin de sintaxis con barras de la instancia de clip de pelcula en la que se ha colocado dicho clip de pelcula. La propiedad _droptarget siempre devuelve una ruta que comienza con una barra (/). Para comparar la propiedad _droptarget de una instancia con una referencia, utilice la funcin eval() para convertir el valor devuelto de la sintaxis con barras a una referencia de sintaxis con punto (ActionScript 2.0 no admite sintaxis con barras). Nota: esta propiedad se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente evala la propiedad _droptarget de la instancia de clip de pelcula y utiliza eval() para convertirla de sintaxis con barras a una referencia de sintaxis con punto. A continuacin, la referencia a garbage_mc se compara con la referencia a la instancia de clip de pelcula trashcan_mc. Si las dos referencias son equivalentes, la visibilidad de garbage_mc se establece en el valor false. Si no son equivalentes, la instancia garbage recupera su posicin original.
garbage_mc origX = garbage_mc._x; origY = garbage_mc._y; garbage_mc.onPress = function() { this.startDrag(); }; garbage_mc.onRelease = function() { this.stopDrag(); if (eval(this._droptarget) == trashcan_mc) {

MovieClip

433

this._visible = false; } else { this._x = origX; this._y = origY; } };

Vase tambin
startDrag (mtodo MovieClip.startDrag), stopDrag (mtodo MovieClip.stopDrag), Funcin eval

duplicateMovieClip (mtodo MovieClip.duplicateMovieClip)


public duplicateMovieClip(name:String, depth:Number, [initObject:Object]) : MovieClip

Crea una instancia del clip de pelcula especificado mientras se reproduce el archivo SWF. Los clips de pelcula duplicados siempre comienzan a reproducirse por el fotograma 1, con independencia del fotograma en el que se encontrara el clip de pelcula original cuando se llam al mtodo duplicateMovieClip(). Las variables del clip de pelcula principal no se copian en el clip de pelcula duplicado. Los clips de pelcula que se han creado con duplicateMovieClip() no se duplican si efecta una llamada a duplicateMovieClip() en el clip principal. Si se elimina el clip de pelcula principal, el clip de pelcula duplicado tambin se elimina. Si ha utilizado MovieClip.loadMovie() o la clase MovieClipLoader para cargar un clip de pelcula, el contenido del archivo SWF no se duplica. Esto significa que no puede ahorrar ancho de banda cargando un archivo JPEG, GIF, PNG o SWF y duplicando posteriormente el clip de pelcula. Compare este mtodo con la versin de funcin global de duplicateMovieClip(). La versin global de este mtodo requiere un parmetro que especifique el clip de pelcula de destino que duplicar. Este parmetro es innecesario con la versin de clase de MovieClip, ya que el objetivo de este mtodo es la instancia de clip de pelcula en la que se invoca este mtodo. Adems, la versin global de duplicateMovieClip() no admite el parmetro initobject ni el valor devuelto de una referencia a la instancia de MovieClip recin creada. Parmetros
name:String

- Identificador exclusivo del clip de pelcula duplicado.

434

Clases de ActionScript

depth:Number

- Entero exclusivo que especifica la profundidad a la que debe colocarse el nuevo clip de pelcula. Utilice la profundidad -16384 para colocar la nueva instancia de clip de pelcula debajo del contenido creado en el entorno de edicin de Flash. Los valores comprendidos entre -16384 y -1, ambos inclusive, estn reservados para utilizarse en el entorno de edicin y no deben emplearse con este mtodo. Los dems valores de profundidad vlidos oscilan entre 0 y 1048575, ambos inclusive.

[opcional] - (Admitido en Flash Player 6 y posteriores.) Objeto que contiene propiedades con las que rellenar el clip de pelcula duplicado. Este parmetro permite a los clips de pelcula creados dinmicamente recibir parmetros de clip. Si initObject no es un objeto, se omite. Todas las propiedades de initObject se copian en la nueva instancia. Las propiedades especificadas con initObject estn disponibles para la funcin constructora.
initObject:Object

Valor devuelto
MovieClip

- Una referencia al clip de pelcula duplicado (admitido en Flash Player 6 y posteriores). Ejemplo El ejemplo siguiente duplica varias veces un objeto MovieClip creado recientemente y detecta el destino de cada duplicado.

var container:MovieClip = setUpContainer(); var ln:Number = 10; var spacer:Number = 1; var duplicate:MovieClip; for(var i:Number = 1; i < ln; i++) { var newY:Number = i * (container._height + spacer); duplicate = container.duplicateMovieClip("clip-" + i, i, {_y:newY}); trace(duplicate); // _level0.clip-[nmero] } function setUpContainer():MovieClip { var mc:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); var w:Number = 100; var h:Number = 20; mc.beginFill(0x333333); mc.lineTo(w, 0); mc.lineTo(w, h); mc.lineTo(0, h); mc.lineTo(0, 0); mc.endFill(); return mc; }

MovieClip

435

Vase tambin
loadMovie (mtodo MovieClip.loadMovie), removeMovieClip (mtodo MovieClip.removeMovieClip), Funcin duplicateMovieClip

enabled (propiedad MovieClip.enabled)


public enabled : Boolean

Valor booleano que indica si un clip de pelcula est activado. El valor predeterminado de enabled es true. Si enabled se configura con el valor false, ya no se invocarn los mtodos callback y controladores de eventos onaction del clip de pelcula, al tiempo que se desactivarn los fotogramas Over, Down y Up. La propiedad enabled no afecta a la lnea de tiempo del clip de pelcula; si se est reproduciendo un clip de pelcula, ste continuar reproducindose. El clip de pelcula continuar recibiendo los eventos de clip de pelcula (por ejemplo, mouseDown, mouseUp, keyDown y keyUp). La propiedad enabled slo controla las propiedades de botn de un clip de pelcula. Puede cambiar la propiedad enabled en cualquier momento; el clip de pelcula modificado se activa o desactiva de inmediato. La propiedad enabled puede leerse de un objeto prototipo. Si enabled se establece con el valor false, el objeto no se incluir en el orden de tabulacin automtico. Ejemplo El ejemplo siguiente desactiva el clip de pelcula circle_mc cuando el usuario hace clic en l:
circle_mc.onRelease = function() { trace("disabling the "+this._name+" movie clip."); this.enabled = false; };

endFill (mtodo MovieClip.endFill)


public endFill() : Void

Aplica un relleno a las lneas y curvas aadidas desde la ltima llamada a beginFill() o beginGradientFill(). Flash utiliza el relleno especificado en la anterior llamada a beginFill() o beginGradientFill(). Si la posicin de dibujo actual no es la misma que la posicin anterior especificada en un mtodo moveTo() y se ha definido un relleno, el trazado se cerrar con una lnea y luego se rellenar. Ejemplo El ejemplo siguiente crea un cuadrado con relleno rojo en el escenario:

436

Clases de ActionScript

this.createEmptyMovieClip("square_mc", this.getNextHighestDepth()); square_mc.beginFill(0xFF0000); square_mc.moveTo(10, 10); square_mc.lineTo(100, 10); square_mc.lineTo(100, 100); square_mc.lineTo(10, 100); square_mc.lineTo(10, 10); square_mc.endFill();

Encontrar tambin un ejemplo en el archivo drawingapi.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
beginFill (mtodo MovieClip.beginFill), beginGradientFill (mtodo MovieClip.beginGradientFill), moveTo (mtodo MovieClip.moveTo)

focusEnabled (propiedad MovieClip.focusEnabled)


public focusEnabled : Boolean

Si el valor es undefined o false, un clip de pelcula no puede quedar resaltado a menos que sea un botn. Si el valor de la propiedad focusEnabled es true, el clip de pelcula podr seleccionarse con el teclado aunque no sea un botn. Ejemplo El ejemplo siguiente configura la propiedad focusEnabledd del clip de pelcula my_mc en false:
my_mc.focusEnabled = false;

_focusrect (propiedad MovieClip._focusrect)


public _focusrect : Boolean

Valor booleano que especifica si un clip de pelcula debe mostrar un rectngulo amarillo a su alrededor cuando tiene la seleccin de entrada. Esta propiedad puede sustituir a la propiedad global _focusrect. El valor predeterminado de la propiedad _focusrect de una instancia de clip de pelcula es null, la instancia de clip de pelcula no sustituye a la propiedad global _focusrect. Si la propiedad _focusrect de una instancia de clip de pelcula se establece como true o false, sta sustituir a la configuracin de la propiedad global _focusrect para la instancia de clip de pelcula en cuestin.

MovieClip

437

Nota: En Flash Lite 2.0, cuando se desactiva la propiedad _focusrect (dicho de otro modo, MovieClip._focusrect se establece en false), el clip de pelcula seguir recibiendo todos los eventos de pulsacin de teclas y de ratn. Tambin en Flash Lite 2.0, se puede cambiar el color del rectngulo de seleccin utilizando el comando SetFocusRectColor de la funcin fscommand2. Este comportamiento tambin ha cambiado con respecto a Flash Player, donde el color del rectngulo de seleccin nicamente puede ser amarillo. Ejemplo Este ejemplo muestra cmo ocultar el rectngulo amarillo que rodea una determinada instancia de clip de pelcula de un archivo SWF cuando est seleccionada la instancia en una ventana del navegador. Cree tres clips de pelcula denominados mc1_mc, mc2_mc y mc3_mc, y aada el siguiente cdigo ActionScript al fotograma 1 de la lnea de tiempo:
mc1_mc._focusrect = true; mc2_mc._focusrect = false; mc3_mc._focusrect = true; mc1_mc.onRelease = traceOnRelease; mc3_mc.onRelease = traceOnRelease; function traceOnRelease() { trace(this._name); }

Para probar el archivo SWF en una ventana del navegador, seleccione Archivo > Vista previa de publicacin > HTML. Para seleccionar el archivo SWF, haga clic sobre l en la ventana del navegador y pulse la tecla Tabulador para seleccionar cada instancia. Si _focusrect est desactivado, no podr ejecutar cdigo en el navegador para este clip de pelcula con la tecla Intro ni la barra espaciadora. Tambin puede probar el archivo SWF en el entorno de prueba. Seleccione Control > Deshabilitar mtodos abreviados de teclado en el entorno de prueba. Esto le permitir ver el rectngulo de seleccin alrededor de las instancias del archivo SWF. Vase tambin
Propiedad _focusrect, _focusrect (propiedad Button._focusrect)

438

Clases de ActionScript

_framesloaded (propiedad MovieClip._framesloaded)


public _framesloaded : Number [read-only]

Nmero de fotogramas que se han cargado de un flujo de archivo SWF. Esta propiedad es til para determinar si se ha cargado el contenido de un fotograma especfico y de todos los que le preceden y si est disponible localmente en el navegador. Tambin resulta til para controlar la descarga de archivos SWF grandes. Por ejemplo, puede que desee mostrar un mensaje a los usuarios para indicar que el archivo SWF se est cargando hasta que un fotograma concreto del archivo SWF haya terminado de cargarse. Ejemplo El ejemplo siguiente utiliza la propiedad _framesloaded para iniciar un archivo SWF cuando se han cargado todos los fotogramas. Si no estn cargados todos los fotogramas, la propiedad _xscale de la instancia de clip de pelcula bar_mc aumenta proporcionalmente para crear una barra de progreso. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
var pctLoaded:Number = Math.round(this.getBytesLoaded()/ this.getBytesTotal()*100); bar_mc._xscale = pctLoaded;

Aada el siguiente cdigo al fotograma 2:


if (this._framesloaded < this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); }

Coloque el contenido sobre o detrs del fotograma 3. A continuacin aada el cdigo siguiente al fotograma 3:
stop();

Vase tambin
MovieClipLoader

getBounds (mtodo MovieClip.getBounds)


public getBounds(bounds:Object) : Object

Devuelve las propiedades que son los valores de coordenada mnimo y mximo x e y del clip de pelcula para el parmetro bounds.

MovieClip

439

Nota:utilice MovieClip.lcalToGlobal() y MovieClip.globalToLocal() para convertir las coordenadas locales del clip de pelcula en coordenadas de escenario o las coordenadas de escenario en coordenadas locales, respectivamente. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
bounds:Object

- Ruta de destino de la lnea de tiempo cuyo sistema de coordenadas desee utilizar como punto de referencia. Valor devuelto

Object

- Un objeto con las propiedades xMin, xMax, yMin y yMax.

Ejemplo El ejemplo siguiente crea un clip de pelcula denominado square_mc. El cdigo dibuja un cuadrado para este clip de pelcula y utiliza MovieClip.getBounds() para mostrar los valores de coordenada de la instancia en el panel Salida.
this.createEmptyMovieClip("square_mc", 1); square_mc._x = 10; square_mc._y = 10; square_mc.beginFill(0xFF0000); square_mc.moveTo(0, 0); square_mc.lineTo(100, 0); square_mc.lineTo(100, 100); square_mc.lineTo(0, 100); square_mc.lineTo(0, 0); square_mc.endFill(); var bounds_obj:Object = square_mc.getBounds(this); for (var i in bounds_obj) { trace(i+" --> "+bounds_obj[i]); }

Aparecer la informacin siguiente en el panel Salida:


yMax yMin xMax xMin --> --> --> --> 110 10 110 10

Vase tambin
globalToLocal (mtodo MovieClip.globalToLocal), localToGlobal (mtodo MovieClip.localToGlobal)

440

Clases de ActionScript

getBytesLoaded (mtodo MovieClip.getBytesLoaded)


public getBytesLoaded() : Number

Devuelve el nmero de bytes que se han cargado (reproducido sin interrupcin) para el clip de pelcula. Puede comparar este valor con el devuelto por MovieClip.getBytesTotal() para determinar el porcentaje de un clip de pelcula que se ha cargado. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Valor devuelto
Number

- Un entero que indica el nmero de bytes cargados.

Ejemplo El ejemplo siguiente utiliza la propiedad _framesloaded para iniciar un archivo SWF cuando se han cargado todos los fotogramas. Si no estn cargados todos los fotogramas, la propiedad _xscale de la instancia de clip de pelcula loader aumenta proporcionalmente para crear una barra de progreso. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
var pctLoaded:Number = Math.round(this.getBytesLoaded()/ this.getBytesTotal()*100); bar_mc._xscale = pctLoaded;

Aada el siguiente cdigo al fotograma 2:


if (this._framesloaded < this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); }

Coloque el contenido sobre o detrs del fotograma 3 y aada el cdigo siguiente al fotograma 3:
stop();

Vase tambin
getBytesTotal (mtodo MovieClip.getBytesTotal)

MovieClip

441

getBytesTotal (mtodo MovieClip.getBytesTotal)


public getBytesTotal() : Number

Devuelve el tamao en bytes del clip de pelcula. En el caso de clips de pelcula externos (el archivo SWF raz o un clip de pelcula que se est cargando en un destino o un nivel), el valor devuelto es el tamao sin comprimir del archivo SWF. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Valor devuelto
Number

- Un entero que indica el tamao total en bytes del clip de pelcula.

Ejemplo El ejemplo siguiente utiliza la propiedad _framesloaded para iniciar un archivo SWF cuando se han cargado todos los fotogramas. Si no estn cargados todos los fotogramas, la propiedad _xscale de la instancia loader de clip de pelcula aumenta proporcionalmente para crear una barra de progreso. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
var pctLoaded:Number = Math.round(this.getBytesLoaded()/ this.getBytesTotal()*100); bar_mc._xscale = pctLoaded;

Aada el siguiente cdigo al fotograma 2:


if (this._framesloaded < this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); }

Coloque el contenido sobre o detrs del fotograma 3. A continuacin aada el cdigo siguiente al fotograma 3:
stop();

Vase tambin
getBytesLoaded (mtodo MovieClip.getBytesLoaded)

442

Clases de ActionScript

getDepth (mtodo MovieClip.getDepth)


public getDepth() : Number

Devuelve la profundidad de una instancia de clip de pelcula. Cada clip de pelcula, botn y campo de texto tiene asociada una profundidad exclusiva que determina cmo aparece el objeto delante o detrs de otros objetos. Los objetos con mayor profundidad aparecen delante. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Valor devuelto
Number

- La profundidad del clip de pelcula.

Ejemplo El cdigo siguiente averigua la profundidad de todas las instancias de clip de pelcula del escenario:
for (var i in this) { if (typeof (this[i]) == "movieclip") { trace("movie clip '"+this[i]._name+"' is at depth "+this[i].getDepth()); } }

Vase tambin
getInstanceAtDepth (mtodo MovieClip.getInstanceAtDepth), getNextHighestDepth (mtodo MovieClip.getNextHighestDepth), swapDepths (mtodo MovieClip.swapDepths), getDepth (mtodo TextField.getDepth), getDepth (mtodo Button.getDepth)

getInstanceAtDepth (mtodo MovieClip.getInstanceAtDepth)


public getInstanceAtDepth(depth:Number) : MovieClip

Determina si una profundidad especfica ya est ocupada por un clip de pelcula. Puede utilizar ese mtodo antes de utilizar MovieClip.attachMovie(), MovieClip.duplicateMovieClip() o MovieClip.createEmptyMovieClip() para determinar si el parmetro de profundidad que desea pasar a alguno de estos mtodos ya contiene un clip de pelcula. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase.

MovieClip

443

Parmetros
depth:Number

- Entero que especifica el nivel de profundidad de la consulta.

Valor devuelto
MovieClip undefined

- Una referencia a la instancia MovieClip situada en la profundidad especificada o si no hay ningn clip de pelcula en dicha profundidad.

Ejemplo
triangle

El ejemplo siguiente muestra la profundidad ocupada por la instancia de clip de pelcula en el panel Salida:

this.createEmptyMovieClip("triangle", 1); triangle.beginFill(0x0000FF, 100); triangle.moveTo(100, 100); triangle.lineTo(100, 150); triangle.lineTo(150, 100); triangle.lineTo(100, 100); trace(this.getInstanceAtDepth(1)); // salida: _level0.triangle

Vase tambin
attachMovie (mtodo MovieClip.attachMovie), duplicateMovieClip (mtodo MovieClip.duplicateMovieClip), createEmptyMovieClip (mtodo MovieClip.createEmptyMovieClip), getDepth (mtodo MovieClip.getDepth), getNextHighestDepth (mtodo MovieClip.getNextHighestDepth), swapDepths (mtodo MovieClip.swapDepths)

getNextHighestDepth (mtodo MovieClip.getNextHighestDepth)


public getNextHighestDepth() : Number

Le permite determinar un valor de profundidad que puede pasar a MovieClip.attachMovie(), MovieClip.duplicateMovieClip() o MovieClip.createEmptyMovieClip() para asegurarse de que Flash representa el clip de pelcula delante de todos los dems objetos situados en el mismo nivel y capa del clip de pelcula actual. El valor devuelto es 0 o un valor mayor (es decir, no se devuelven nmeros negativos). Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase.

444

Clases de ActionScript

Nota: no debera utilizar este mtodo si tambin utiliza componentes de la versin 2. Si coloca un componente de la versin 2 en el escenario o la biblioteca, el mtodo getNextHighestDepth() devuelve una profundidad de 1048676, valor que queda fuera del rango vlido. Esto puede evitar correctamente llamadas a MovieClip.removeMovieClip(). Valor devuelto
Number - Un entero que refleja el siguiente ndice de profundidad disponible que se representara por encima de todos los dems objetos del mismo nivel y capa dentro del clip de pelcula.

Ejemplo El ejemplo siguiente dibuja tres instancias de clip de pelcula utilizando el mtodo getNextHighestDepth() como parmetro depth del mtodo createEmptyMovieClip(), adems etiqueta cada clip de pelcula con su profundidad:
for (i = 0; i < 3; i++) { drawClip(i); } function drawClip(n:Number):Void { this.createEmptyMovieClip("triangle" + n, this.getNextHighestDepth()); var mc:MovieClip = eval("triangle" + n); mc.beginFill(0x00aaFF, 100); mc.lineStyle(4, 0xFF0000, 100); mc.moveTo(0, 0); mc.lineTo(100, 100); mc.lineTo(0, 100); mc.lineTo(0, 0); mc._x = n * 30; mc._y = n * 50 mc.createTextField("label", this.getNextHighestDepth(), 20, 50, 200, 200) mc.label.text = mc.getDepth(); }

Vase tambin
getDepth (mtodo MovieClip.getDepth), getInstanceAtDepth (mtodo MovieClip.getInstanceAtDepth), swapDepths (mtodo MovieClip.swapDepths), attachMovie (mtodo MovieClip.attachMovie), duplicateMovieClip (mtodo MovieClip.duplicateMovieClip), createEmptyMovieClip (mtodo MovieClip.createEmptyMovieClip)

MovieClip

445

getSWFVersion (mtodo MovieClip.getSWFVersion)


public getSWFVersion() : Number

Devuelve un entero que indica la versin de Flash Player para la que se ha publicado el clip de pelcula. Si el clip de pelcula es un archivo JPEG, GIF o PNG, o si se produce un error y Flash Player no logra determinar la versin de SWF del clip de pelcula, se devuelve -1. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Valor devuelto
Number - Un entero que especifica la versin de Flash Player de destino cuando se public el archivo SWF cargado en el clip de pelcula.

Ejemplo El ejemplo siguiente crea un nuevo contenedor y ofrece como salida el valor de getSWFVersion(). Despus utiliza MovieClipLoader para cargar un archivo SWF externo que se public con Flash Player 7 y muestra el valor de getSWFVersion() despus de activarse el controlador onLoadInit.
var container:MovieClip = this.createEmptyMovieClip("container", this.getUpperEmptyDepth()); var listener:Object = new Object(); listener.onLoadInit = function(target:MovieClip):Void { trace("target: " + target.getSWFVersion()); // destino: 7 } var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.addListener(listener); trace("container: " + container.getSWFVersion()); // contenedor: 8 mcLoader.loadClip("FlashPlayer7.swf", container);

getURL (mtodo MovieClip.getURL)


public getURL(url:String, [window:String], [method:String]) : Void

Carga un documento de la URL especificada en la ventana indicada. El mtodo getURL() tambin puede utilizarse para pasar variables a otra aplicacin definida en la URL mediante un mtodo GET o POST.

446

Clases de ActionScript

Las pginas Web que albergan pelculas Flash deben definir explcitamente el atributo allowScriptAccess para permitir o denegar la creacin de scripts en Flash Player a partir del cdigo HTML (etiqueta PARAM en Internet Explorer o la etiqueta EMBED en Netscape Navigator).

Cuando allowScriptAccess es "never", la creacin de scripts salientes falla siempre. Cuando allowScriptAccess es "always", la creacin de scripts salientes siempre es correcta. Cuando allowScriptAccess es "sameDomain" (admitido en los archivos SWF a partir de la versin 8), se permite la creacin de scripts salientes si el archivo SWF pertenece al mismo dominio de la pgina Web que lo aloja. Si una pgina HTML no especifica allowScriptAccess, el valor predeterminado es "sameDomain" para los archivos SWF de la versin 8; en el caso de archivos SWF de versiones anteriores, el valor predeterminado es "always".

Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
url:String

- URL del cual se obtiene el documento.

window:String

[opcional] - Un parmetro que especifica el nombre, fotograma o expresin que especifica la ventana o fotograma HTML en el que se carga el documento. Tambin es posible utilizar uno de los siguientes nombres de destino reservados: _self especifica el marco actual de la ventana actual, _blank especifica una ventana nueva, _parent especifica el nivel superior del marco actual y _top especifica el marco del nivel ms alto de la ventana actual.

method:String [opcional] - Una cadena ("GET" o "POST") que especifica un mtodo para enviar las variables asociadas al archivo SWF que va a cargarse. Si no hay ninguna variable, omita este parmetro; de lo contrario, especifique si se cargarn variables con un mtodo GET o POST. GET aade las variables al final de la URL y se utiliza para nmeros reducidos de variables. POST enva las variables en un encabezado HTTP independiente y se utiliza para cadenas de variables largas.

Ejemplo El siguiente cdigo ActionScript crea una instancia nueva de clip de pelcula y abre el sitio Web de Macromedia en una nueva ventana del navegador:
this.createEmptyMovieClip("loader_mc", this.getNextHighestDepth()); loader_mc.getURL("http://www.macromedia.com", "_blank");

MovieClip

447

El mtodo getURL() tambin permite enviar variables a un script de servidor remoto, como muestra el cdigo siguiente:
this.createEmptyMovieClip("loader_mc", this.getNextHighestDepth()); loader_mc.username = "some user input"; loader_mc.password = "random string"; loader_mc.getURL("http://www.flash-mx.com/mm/viewscope.cfm", "_blank", "GET");

Vase tambin
Funcin getURL, sendAndLoad (mtodo LoadVars.sendAndLoad), send (mtodo LoadVars.send)

globalToLocal (mtodo MovieClip.globalToLocal)


public globalToLocal(pt:Object) : Void

Convierte el objeto pt de las coordenadas del escenario (globales) en coordenadas del clip de pelcula (locales). El mtodo MovieClip.globalToLocal() permite convertir los valores de las coordenadas x e y dadas, relativos a la esquina superior izquierda del escenario, en valores relativos a la esquina superior izquierda de un clip de pelcula especificado. En primer lugar deber crear un objeto genrico con dos propiedades, x e y. Estos valores x e y (deben llamarse x e y) se denominan coordenadas globales porque son relativas a la esquina superior izquierda del escenario. La propiedad x representa el desplazamiento horizontal con respecto a la esquina superior izquierda. En otras palabras, representa la distancia del punto hacia la derecha. Por ejemplo, si x = 50, el punto queda 50 pxeles a la derecha de la esquina superior izquierda. La propiedad y representa el desplazamiento vertical con respecto a la esquina superior izquierda. En otras palabras, representa la distancia del punto hacia abajo. Por ejemplo, si y = 20, el punto queda 20 pxeles por debajo de la esquina superior izquierda. El cdigo siguiente crea un objeto genrico con estas coordenadas:
var myPoint:Object = new Object(); myPoint.x = 50; myPoint.y = 20;

Tambin es posible crear el objeto y asignarle simultneamente los valores con un valor literal de objeto:
var myPoint:Object = {x:50, y:20};

448

Clases de ActionScript

Una vez creado un objeto punto con coordenadas globales, puede convertir las coordenadas en coordenadas locales. El mtodo globalToLocal() no devuelve un valor porque cambia los valores de x e y del objeto genrico enviado como parmetro. Sustituye los valores relativos al escenario (coordenadas globales) por valores relativos a un clip de pelcula especfico (coordenadas locales). Por ejemplo, si crea un clip de pelcula situado en el punto (_x:100, _y:100) y pasa el punto global que representa la esquina superior izquierda del escenario (x:0, y:0) al mtodo globalToLocal(), el mtodo debera convertir los valores de x e y en coordenadas locales, en este caso (x:-100, y:-100). Esta conversin ocurre porque ahora las coordenadas x e y se expresan en relacin con la esquina superior izquierda del clip de pelcula, no del escenario. Los valores son negativos porque para pasar de la esquina superior izquierda del clip de pelcula a la esquina superior izquierda del escenario, debe desplazarse 100 pxeles a la izquierda (x negativo) y 100 pxeles hacia arriba (y negativo). Las coordenadas del clip de pelcula se han expresado con e porque son las propiedades de MovieClip utilizadas para definir los valores x e y para MovieClips. Sin embargo, el objeto genrico utiliza x e y sin subrayado. El siguiente cdigo convierte los valores de x e y en coordenadas locales:
var myPoint:Object = {x:0, y:0}; // Crear el objeto punto genrico. this.createEmptyMovieClip("myMovieClip", this.getNextHighestDepth()); myMovieClip._x = 100; // _x para la posicin x del clip de pelcula myMovieClip._y = 100; // _y para la posicin y del clip de pelcula myMovieClip.globalToLocal(myPoint); trace ("x: " + myPoint.x); // salida: -100 trace ("y: " + myPoint.y); // salida: -100

Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
pt:Object

- Nombre o identificador de un objeto creado con la clase Object genrica. El objeto especifica las coordenadas x e y como propiedades. Ejemplo Aada el siguiente cdigo ActionScript a un archivo FLA o AS del mismo directorio como una imagen denominada photo1.jpg:

this.createTextField("coords_txt", this.getNextHighestDepth(), 10, 10, 100, 22); coords_txt.html = true; coords_txt.multiline = true; coords_txt.autoSize = true;

MovieClip

449

this.createEmptyMovieClip("target_mc", this.getNextHighestDepth()); target_mc._x = 100; target_mc._y = 100; target_mc.loadMovie("photo1.jpg"); var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var point:Object = {x:_xmouse, y:_ymouse}; target_mc.globalToLocal(point); var rowHeaders = "<b> &nbsp; \t</b><b>_x\t</b><b>_y</b>"; var row_1 = "_root\t"+_xmouse+"\t"+_ymouse; var row_2 = "target_mc\t"+point.x+"\t"+point.y; coords_txt.htmlText = "<textformat tabstops='[100, 150]'>"; coords_txt.htmlText += rowHeaders; coords_txt.htmlText += row_1; coords_txt.htmlText += row_2; coords_txt.htmlText += "</textformat>"; }; Mouse.addListener(mouseListener);

Vase tambin
getBounds (mtodo MovieClip.getBounds), localToGlobal (mtodo MovieClip.localToGlobal), Object

gotoAndPlay (mtodo MovieClip.gotoAndPlay)


public gotoAndPlay(frame:Object) : Void

Inicia la reproduccin del archivo SWF en el fotograma especificado. Para especificar una escena adems de un fotograma, utilice gotoAndPlay(). Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
frame:Object

- Nmero que representa el nmero de fotograma o la cadena que representa la etiqueta del fotograma al que se enva la cabeza lectora. Ejemplo

El ejemplo siguiente utiliza la propiedad _framesloaded para iniciar un archivo SWF cuando se han cargado todos los fotogramas. Si no estn cargados todos los fotogramas, la propiedad _xscale de la instancia de clip de pelcula loader aumenta proporcionalmente para crear una barra de progreso.

450

Clases de ActionScript

Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:


var pctLoaded:Number = Math.round(this.getBytesLoaded()/ this.getBytesTotal()*100); bar_mc._xscale = pctLoaded;

Aada el siguiente cdigo al fotograma 2:


if (this._framesloaded < this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); }

Coloque el contenido sobre o detrs del fotograma 3. A continuacin aada el cdigo siguiente al fotograma 3:
stop();

Vase tambin
Funcin gotoAndPlay, Funcin play

gotoAndStop (mtodo MovieClip.gotoAndStop)


public gotoAndStop(frame:Object) : Void

Traslada la cabeza lectora al fotograma especificado del clip de pelcula y la detiene en dicho lugar. Para especificar una escena adems de un fotograma, utilice gotoAndStop(). Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
frame:Object

- Nmero del fotograma al que se enva la cabeza lectora.

Ejemplo El ejemplo siguiente utiliza la propiedad _framesloaded para iniciar un archivo SWF cuando se han cargado todos los fotogramas. Si no estn cargados todos los fotogramas, la propiedad _xscale de la instancia de clip de pelcula loader aumenta proporcionalmente para crear una barra de progreso. Introduzca el siguiente cdigo ActionScript en el fotograma 1 de la lnea de tiempo:
var pctLoaded:Number = Math.round(this.getBytesLoaded()/ this.getBytesTotal()*100); bar_mc._xscale = pctLoaded;

MovieClip

451

Aada el siguiente cdigo al fotograma 2:


if (this._framesloaded < this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); }

Coloque el contenido sobre o detrs del fotograma 3. A continuacin aada el cdigo siguiente al fotograma 3:
stop();

Vase tambin
Funcin gotoAndStop, Funcin stop

_height (propiedad MovieClip._height)


public _height : Number

Altura del clip de pelcula, expresada en pxeles. Ejemplo El siguiente ejemplo de cdigo muestra la altura y anchura de un clip de pelcula en el panel Salida:
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var image_mcl:MovieClipLoader = new MovieClipLoader(); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { trace(target_mc._name+" = "+target_mc._width+" X "+target_mc._height+" pixels"); }; image_mcl.addListener(mclListener); image_mcl.loadClip("example.jpg", image_mc);

Vase tambin
_width (propiedad MovieClip._width)

452

Clases de ActionScript

_highquality (propiedad MovieClip._highquality)


public _highquality : Number

Desfasada desde Flash Player 7. Esta propiedad est desfasada y en su lugar debe utilizarse MovieClip._quality. Especifica el nivel de visualizacin suavizada que se aplica al archivo SWF actual. Especifique 2 (mejor calidad) para aplicar alta calidad con el suavizado de mapa de bits siempre activado. Especifique 1 (alta calidad) para aplicar la visualizacin suavizada, que suaviza los mapas de bits si el archivo SWF no contiene animacin. Especifique 0 (baja calidad) para evitar el suavizado. Esta propiedad puede sobrescribir a la propiedad global _highquality. Ejemplo El siguiente cdigo ActionScript especifica la aplicacin de visualizacin suavizada de la mejor calidad al archivo SWF.
my_mc._highquality = 2;

Vase tambin
_quality (propiedad MovieClip._quality), Propiedad _quality

hitArea (propiedad MovieClip.hitArea)


public hitArea : Object

Designa otro clip de pelcula para que acte como rea activa de un clip de pelcula. Si la propiedad hitArea no existe o tiene el valor nullo undefined, se utilizar el propio clip de pelcula como rea activa. El valor de la propiedad hitArea puede ser una referencia a un objeto de clip de pelcula. Puede cambiar la propiedad hitArea en cualquier momento; el clip de pelcula modificado adoptar de inmediato el nuevo comportamiento de rea activa. No es preciso que el clip de pelcula designado como rea activa sea visible; se detectar la condicin de "activa" de su forma grfica aunque no sea visible. La propiedad hitArea puede leerse de un objeto prototipo. Ejemplo El ejemplo siguiente configura el clip de pelcula circle_mc como rea activa del clip de pelcula square_mc. Coloque los dos clips de pelcula en el escenario y pruebe el documento. Al hacer clic en circle_mc, el clip de pelcula square_mc detecta que se ha hecho clic.
square_mc.hitArea = circle_mc; square_mc.onRelease = function() {

MovieClip

453

trace("hit! " + this._name); };

Tambin es posible configurar como false la propiedad visible del clip de pelcula circle_mc para ocultar el rea activa de square_mc.
circle_mc._visible = false;

Vase tambin
hitTest (mtodo MovieClip.hitTest)

hitTest (mtodo MovieClip.hitTest)


public hitTest() : Boolean

Evala el clip de pelcula para comprobar si se superpone o corta con el rea activa identificada mediante los parmetros de coordenadas target o x e y. Sintaxis 1: Compara las coordenadas x e y con la forma o el recuadro de delimitacin de la instancia especificada, segn la configuracin de shapeFlag. Si shapeFlag se configura como true, slo se evaluar el rea del escenario que ocupa la instancia en s y, si x e y se solapan en algn punto, se devolver el valor true. Esta evaluacin resulta til para determinar si el clip de pelcula se encuentra dentro de un rea activa especificada. Sintaxis 2: Evala los recuadros de delimitacin del destino (target) y la instancia especificada y devuelve true si se solapan o cortan en algn punto. Parmetrosx: Number La coordenada x del rea activa en el escenario. y: Number La coordenada y del rea activa en el escenario. Las coordenadas x e y se definen en el espacio de coordenadas globales. shapeFlag: Boolean - Valor booleano que especifica si debe evaluarse la forma completa de la instancia especificada (true) o slo el recuadro de delimitacin (false). Este parmetro slo puede especificarse si el rea activa se identifica empleando los parmetros de coordenadas x e y target: Object El trazado de destino del rea activa que puede solaparse con la instancia especificada por el clip de pelcula. El parmetro target normalmente representa un botn o campo de introduccin de texto. Valor devuelto
Boolean - El valor booleano true si el clip de pelcula se solapa con el rea activa especificada, false

en caso contrario.

454

Clases de ActionScript

Ejemplo El ejemplo siguiente utiliza hitTest() para determinar si el clip de pelcula circle_mc se solapa con el clip de pelcula square_mc cuando el usuario suelta el botn del ratn:
square_mc.onPress = function() { this.startDrag(); }; square_mc.onRelease = function() { this.stopDrag(); if (this.hitTest(circle_mc)) { trace("you hit the circle"); } };

Vase tambin
getBounds (mtodo MovieClip.getBounds), globalToLocal (mtodo MovieClip.globalToLocal), localToGlobal (mtodo MovieClip.localToGlobal)

lineStyle (mtodo MovieClip.lineStyle)


public lineStyle(thickness:Number, rgb:Number, alpha:Number, pixelHinting:Boolean, noScale:String, capsStyle:String, jointStyle:String, miterLimit:Number) : Void

Especifica un estilo de lnea que Flash utilizar para las posteriores llamadas a lineTo() y curveTo() hasta que llame a lineStyle() con otros parmetros. Puede efectuar una llamada a lineStyle() en mitad de un trazado para especificar diferentes estilos para los distintos segmentos de lnea de un trazado. Nota:las llamadas a clear() volvern a establecer el estilo de lnea con el valor undefined. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
thickness:Number - Entero que indica el grosor de la lnea en puntos; los valores vlidos son del 0 al 255. Si no se especifica ningn nmero o si el parmetro es undefined, no se traza ninguna lnea. Si se pasa un valor inferior a 0, Flash Player utiliza 0. El valor 0 indica grosor muy fino; el grosor mximo es 255. Si se pasa un valor superior a 255, el intrprete de Flash utiliza 255. rgb:Number

- Valor de color hexadecimal (por ejemplo, rojo es 0xFF0000, azul es 0x0000FF, etc.) de la lnea. Si no se indica ningn valor, Flash utiliza 0x000000 (negro).

MovieClip

455

alpha:Number - Entero que indica el valor alfa del color de la lnea; los valores vlidos son del

0 al 100. Si no se indica ningn valor, Flash utiliza 100 (continuo). Si el valor es inferior a 0, Flash utiliza 0; si el valor es mayor que 100, Flash utiliza 100.
pixelHinting:Boolean noScale:String

capsStyle:String

jointStyle:String miterLimit:Number

Ejemplo El cdigo siguiente dibuja un tringulo de 5 pxeles con lnea slida magenta y sin relleno.
this.createEmptyMovieClip("triangle_mc", 1); triangle_mc.lineStyle(5, 0xff00ff, 100); triangle_mc.moveTo(200, 200); triangle_mc.lineTo(300, 300); triangle_mc.lineTo(100, 300); triangle_mc.lineTo(200, 200);

Vase tambin
beginFill (mtodo MovieClip.beginFill), beginGradientFill (mtodo MovieClip.beginGradientFill), clear (mtodo MovieClip.clear), curveTo (mtodo MovieClip.curveTo), lineTo (mtodo MovieClip.lineTo), moveTo (mtodo MovieClip.moveTo)

lineTo (mtodo MovieClip.lineTo)


public lineTo(x:Number, y:Number) : Void

Dibuja una lnea utilizando el estilo de lnea actual desde la posicin de dibujo actual hasta (x, y); la posicin de dibujo actual se establece posteriormente como (x, y). Si el clip de pelcula en el que est dibujando incluye contenido creado con las herramientas de dibujo de Flash, las llamadas a lineTo() se dibujarn debajo de este contenido. Si llama a lineTo() antes de realizar ninguna llamada al mtodo moveTo(), se adoptar la posicin de dibujo predeterminada (0,0). Si falta alguno de los parmetros, este mtodo falla y la posicin de dibujo actual no cambia. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase.

456

Clases de ActionScript

Parmetros
x:Number

- Entero que indica la posicin horizontal con respecto al punto de registro del clip de pelcula principal. - Entero que indica la posicin vertical con respecto al punto de registro del clip de pelcula principal. Ejemplo El ejemplo siguiente dibuja un tringulo con una lnea continua magenta de 5 pxeles y un relleno azul parcialmente transparente:

y:Number

this.createEmptyMovieClip("triangle_mc", 1); triangle_mc.beginFill(0x0000FF, 30); triangle_mc.lineStyle(5, 0xFF00FF, 100); triangle_mc.moveTo(200, 200); triangle_mc.lineTo(300, 300); triangle_mc.lineTo(100, 300); triangle_mc.lineTo(200, 200); triangle_mc.endFill();

Vase tambin
beginFill (mtodo MovieClip.beginFill), createEmptyMovieClip (mtodo MovieClip.createEmptyMovieClip), endFill (mtodo MovieClip.endFill), lineStyle (mtodo MovieClip.lineStyle), moveTo (mtodo MovieClip.moveTo)

loadMovie (mtodo MovieClip.loadMovie)


public loadMovie(url:String, [method:String]) : Void

Carga un archivo SWF o JPEG en un clip de pelcula en Flash Player mientras se reproduce el archivo SWF original. Sugerencia:para controlar el progreso de la descarga, utilice MovieClipLoader.loadClip() en lugar del mtodo loadMovie(). Sin el mtodo loadMovie(), Flash Player muestra un nico archivo SWF y luego se cierra. El mtodo loadMovie() permite mostrar varios archivos SWF a la vez y cambiar entre archivos SWF sin cargar otro documento HTML. Un archivo SWF o imagen cargada en un clip de pelcula hereda las propiedades de posicin, giro y escala del clip de pelcula. Puede utilizar la ruta de destino del clip de pelcula para emplear como destino el archivo SWF cargado.

MovieClip

457

Cuando se realice una llamada al mtodo loadMovie(), defina la propiedad MovieClip._lockroot en true en la pelcula de cargador, tal como se muestra en el ejemplo siguiente. Si no establece _lockroot en true en la pelcula de cargador, todas las referencias a _root que contenga la pelcula cargada sealan a _root del cargador en lugar de a _root de la pelcula cargada.
myMovieClip._lockroot = true;

Utilice el mtodo MovieClip.unloadMovie() para eliminar los archivos o imgenes SWF cargados con el mtodo loadMovie(). Utilice el mtodo MovieClip.loadVariables(), el objeto XML, Flash Remoting u objetos compartidos en tiempo de ejecucin para mantener el archivo SWF activo y cargar nuevos datos en l. La utilizacin de controladores de evento con MovieClip.loadMovie() puede producir resultados impredecibles. Si asocia un controlador de eventos a un botn mediante on(), o si crea un controlador dinmico empleando un mtodo de controlador de eventos como MovieClip.onPress, y posteriormente efecta una llamada a loadMovie(), el controlador de eventos no permanecer despus de cargarse el nuevo contenido. No obstante, si asocia un controlador de eventos a un clip de pelcula utilizando onClipEvent() u on() y luego efecta una llamada a loadMovie() en dicho clip de pelcula, el controlador de eventos permanecer despus de cargarse el nuevo contenido. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
url:String

- URL absoluto o relativo del archivo SWF o JPEG que se va a cargar. Una ruta relativa debe ser relativa al archivo SWF en el nivel 0. Las URL absolutas deben incluir la referencia al protocolo, como http:// o file:///.

[opcional] - Especifica un mtodo HTTP para enviar o cargar variables. El parmetro debe ser la cadena GET o POST. Si no necesita enviar variables, omita este parmetro. El mtodo GET aade las variables al final de la URL y se utiliza para un nmero reducido de variables. El mtodo POST enva las variables en un encabezado HTTP independiente y se utiliza para enviar cadenas de variables largas.
method:String

458

Clases de ActionScript

Ejemplo El ejemplo siguiente crea dinmicamente un nuevo de clip de pelcula, despus, crea un elemento secundario en dicho clip de pelcula y carga una imagen PNG en el elemento secundario. De este modo el elemento principal conserva los valores de instancia que se asignaron antes de realizar la llamada a loadMovie.
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.onRelease = function():Void { trace(this.image._url); // http://www.w3.org/Icons/w3c_main.png } var image:MovieClip = mc.createEmptyMovieClip("image", mc.getNextHighestDepth()); image.loadMovie("http://www.w3.org/Icons/w3c_main.png");

Vase tambin
_lockroot (propiedad MovieClip._lockroot), unloadMovie (mtodo MovieClip.unloadMovie), loadVariables (mtodo MovieClip.loadVariables), loadMovie (mtodo MovieClip.loadMovie), onPress (controlador MovieClip.onPress), MovieClipLoader, Controlador onClipEvent, Controlador on, Funcin loadMovieNum, Funcin unloadMovie, Funcin unloadMovieNum

loadVariables (mtodo MovieClip.loadVariables)


public loadVariables(url:String, [method:String]) : Void

Lee datos de un archivo externo y establece los valores de variables en el clip de pelcula. El archivo externo puede ser un archivo de texto generado por ColdFusion, un script CGI, Active Server Page (ASP) o un script PHP o cualquier archivo de texto que tenga los formatos correctos. El archivo puede contener cualquier nmero de variables. El mtodo loadVariables se puede utilizar adems para actualizar las variables del clip de pelcula activo con nuevos valores. El mtodo loadVariables exige que el texto de la URL est en formato MIME estndar:application/x-www-form-urlencoded (formato de script CGI). En archivos SWF que se ejecuten en una versin anterior a Flash Player 7, url debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. El superdominio puede obtenerse eliminando el componente situado ms a la izquierda de la URL de un archivo. Por ejemplo, un archivo SWF situado en www.someDomain.com puede cargar datos de una fuente situada en store.someDomain.com porque ambos archivos se encuentran en el mismo superdominio, denominado someDomain.com.

MovieClip

459

En archivos SWF de cualquier versin que se ejecuten en Flash Player 7 o versiones posteriores, url debe estar exactamente en el mismo dominio que el archivo SWF que emite esta llamada. Por ejemplo, un archivo SWF en www.someDomain.com puede cargar datos nicamente desde orgenes que tambin se encuentren en www.someDomain.com. Para cargar datos de un dominio distinto, puede colocar un archivo de poltica para distintos dominios en el servidor que aloja el origen de los datos a los que se obtiene acceso. Para cargar variables en un nivel especfico, utilice loadVariablesNum() en lugar de loadVariables(). Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros - URL absoluta o relativa del archivo externo que contiene las variables que se van a cargar. Si el archivo SWF que realiza esta llamada se ejecuta en un navegador Web, el valor url debe pertenecer al mismo dominio que el archivo SWF; para ver ms detalles, consulte la seccin "Descripcin" ms abajo.
url:String method:String [opcional] - Especifica un mtodo HTTP para enviar variables. El parmetro

debe ser la cadena GET o POST. Si no se enva ninguna variable, omita este parmetro. El mtodo GET aade las variables al final de la URL y se utiliza para un nmero reducido de variables. El mtodo POST enva las variables en un encabezado HTTP independiente y se utiliza para enviar cadenas de variables largas. Ejemplo El ejemplo siguiente carga informacin de un archivo de texto denominado params.txt en el clip de pelcula target_mc que se ha creado con createEmptyMovieClip(). La funcin setInterval() se utiliza para comprobar el progreso de la carga. El script busca en el archivo params.txt una variable denominada done.
this.createEmptyMovieClip("target_mc", this.getNextHighestDepth()); target_mc.loadVariables("params.txt"); function checkParamsLoaded() { if (target_mc.done == undefined) { trace("not yet."); } else { trace("finished loading. killing interval."); trace("-------------"); for (i in target_mc) { trace(i+": "+target_mc[i]); } trace("-------------"); clearInterval(param_interval); }

460

Clases de ActionScript

} var param_interval = setInterval(checkParamsLoaded, 100);

El archivo params.txt incluye el texto siguiente:


var1="hello"&var2="goodbye"&done="done"

Vase tambin
loadMovie (mtodo MovieClip.loadMovie), Funcin loadVariablesNum, unloadMovie (mtodo MovieClip.unloadMovie)

localToGlobal (mtodo MovieClip.localToGlobal)


public localToGlobal(pt:Object) : Void

Convierte el objeto pt de coordenadas del clip de pelcula (locales) en coordenadas del escenario (globales). El mtodo MovieClip.localToGlobal() permite convertir los valores de las coordenadas x e y dadas, relativos a la esquina superior izquierda de un clip de pelcula especificado, en valores relativos a la esquina superior izquierda del escenario. En primer lugar deber crear un objeto genrico con dos propiedades, x e y. Estos valores x e y (deben llamarse x e y) se denominan coordenadas locales porque son relativas a la esquina superior izquierda del clip de pelcula. La propiedad x representa el desplazamiento horizontal con respecto a la esquina superior izquierda del clip de pelcula. En otras palabras, representa la distancia del punto hacia la derecha. Por ejemplo, si x = 50, el punto queda 50 pxeles a la derecha de la esquina superior izquierda. La propiedad y representa el desplazamiento vertical con respecto a la esquina superior izquierda del clip de pelcula. En otras palabras, representa la distancia del punto hacia abajo. Por ejemplo, si y = 20, el punto queda 20 pxeles por debajo de la esquina superior izquierda. El cdigo siguiente crea un objeto genrico con estas coordenadas.
var myPoint:Object = new Object(); myPoint.x = 50; myPoint.y = 20;

Tambin es posible crear el objeto y asignarle simultneamente los valores con un valor literal de objeto.
var myPoint:Object = {x:50, y:20};

Una vez creado un objeto punto con coordenadas locales, puede convertir las coordenadas en coordenadas globales. El mtodo localToGlobal() no devuelve un valor porque cambia los valores de x e y del objeto genrico enviado como parmetro. Sustituye los valores relativos a un clip de pelcula determinado (coordenadas locales) por valores relativos al escenario (coordenadas globales).

MovieClip

461

Por ejemplo, si crea un clip de pelcula situado en el punto (_x:100, _y:100) y pasa un punto local que representa un punto prximo a la esquina superior izquierda del clip de pelcula (x:10, y:10) al mtodo localToGlobal() el mtodo debera convertir los valores de x e y en coordenadas globales, en este caso (x:110, y:110). Esta conversin ocurre porque ahora las coordenadas x e y se expresan en relacin con la esquina superior izquierda del escenario, no del clip de pelcula. Las coordenadas del clip de pelcula se han expresado con _x e _y porque son las propiedades de MovieClip utilizadas para definir los valores x e y para MovieClips. Sin embargo, el objeto genrico utiliza x e y sin subrayado. El siguiente cdigo convierte las coordenadas x e y en coordenadas globales:
var myPoint:Object = {x:10, y:10}; // crea el objeto punto genrico this.createEmptyMovieClip("myMovieClip", this.getNextHighestDepth()); myMovieClip._x = 100; // _x para la posicin x del clip de pelcula myMovieClip._y = 100; // _y para la posicin y del clip de pelcula myMovieClip.localToGlobal(myPoint); trace ("x: " + myPoint.x); // salida: 110 trace ("y: " + myPoint.y); // salida: 110

Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
pt:Object

- Nombre o identificador de un objeto creado con la clase Object que especifica las coordenadas x e y como propiedades. Ejemplo

El ejemplo siguiente convierte las coordenadas x e y del objeto my_mc, coordenadas de clip de pelcula (locales), en coordenadas del escenario (globales). El punto central del clip de pelcula se refleja despus de hacer clic en la instancia y arrastrarla.
this.createTextField("point_txt", this.getNextHighestDepth(), 0, 0, 100, 22); var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { var point:Object = {x:my_mc._width/2, y:my_mc._height/2}; my_mc.localToGlobal(point); point_txt.text = "x:"+point.x+", y:"+point.y; }; Mouse.addListener(mouseListener); my_mc.onPress = function () { this.startDrag(); };

462

Clases de ActionScript

my_mc.onRelease = function() { this.stopDrag(); };

Vase tambin
globalToLocal (mtodo MovieClip.globalToLocal)

_lockroot (propiedad MovieClip._lockroot)


public _lockroot : Boolean

Un valor booleano que especifica a qu hace referencia _root cuando se carga un archivo SWF en un clip de pelcula. La propiedad _lockroot tiene el valor undefined de manera predeterminada. Puede establecer esta propiedad dentro del archivo SWF que se est cargando o en el controlador que est cargando el clip de pelcula. Por ejemplo, supongamos que tiene un documento denominado Games.fla que permite a un usuario elegir un juego y que carga dicho juego (por ejemplo, Chess.swf ) en el clip de pelcula game_mc. Asegrese de que despus de haber cargado Games.swf, cualquier uso de _root en Chess.swf hace referencia a _root en Chess.swf (y no a _root en Games.swf ). Si tiene acceso a Chess.fla y lo publica con Flash Player 7 o una versin posterior, puede agregar esta sentencia en lnea de tiempo principal de Chess.fla:
this._lockroot = true;

Si no dispone de acceso a Chess.fla (por ejemplo, si est cargando Chess.swf en chess_mc desde un sitio ajeno), podr establecer la propiedad _lockroot de Chess.swf cuando la cargue. Site el siguiente cdigo ActionScript en la lnea de tiempo principal de Games.fla:
chess_mc._lockroot = true;

En este caso, Chess.swf se podr publicar para cualquier versin de Flash Player en tanto en cuanto Games.swf se publique para Flash Player 7 o posterior. Cuando se realice una llamada al mtodo loadMovie(), defina la propiedad MovieClip._lockroot en true en la pelcula de cargador, tal como se muestra en el cdigo siguiente. Si no establece _lockroot en true en la pelcula de cargador, todas las referencias a _root que contenga la pelcula cargada sealan a _root del cargador en lugar de a _root de la pelcula cargada:
myMovieClip._lockroot = true;

MovieClip

463

Ejemplo En el ejemplo siguiente, lockroot.fla tiene _lockroot aplicado en el archivo SWF principal. Si est cargado en otro documento FLA, _root siempre hace referencia al mbito de lockroot.swf, lo que ayuda a prevenir conflictos. Site el siguiente cdigo ActionScript en la lnea de tiempo principal de lockroot.fla:
this._lockroot = true; _root.myVar = 1; _root.myOtherVar = 2; trace("from lockroot.swf"); for (i in _root) { trace(" "+i+" -> "+_root[i]); } trace("");

que obtiene la siguiente informacin:


from lockroot.swf myOtherVar -> 2 myVar -> 1 _lockroot -> true $version -> WIN 7,0,19,0

El ejemplo siguiente carga dos archivos SWF, lockroot.swf y nolockroot.swf. El documento lockroot.fla contiene el cdigo ActionScript del ejemplo anterior. El archivo FLA nolockroot tiene el siguiente cdigo insertado en el fotograma Frame de la lnea de tiempo:
_root.myVar = 1; _root.myOtherVar = 2; trace("from nolockroot.swf"); for (i in _root) { trace(" "+i+" -> "+_root[i]); } trace("");

El archivo lockroot.swf tiene aplicado lockroot, no as nolockroot.swf. Una vez cargados los archivos, cada uno muestra los valores de las variables de sus mbitos _root. Inserte el siguiente cdigo ActionScript en la lnea de tiempo principal del documento FLA:
this.createEmptyMovieClip("lockroot_mc", this.getNextHighestDepth()); lockroot_mc.loadMovie("lockroot.swf"); this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth()); nolockroot_mc.loadMovie("nolockroot.swf"); function dumpRoot() { trace("from current SWF file"); for (i in _root) { trace(" "+i+" -> "+_root[i]); } trace(""); } dumpRoot();

464

Clases de ActionScript

que obtiene la siguiente informacin:


from current SWF file dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from nolockroot.swf myVar -> 1 i -> lockroot_mc dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from lockroot.swf myOtherVar -> 2 myVar -> 1

El archivo que no tiene _lockroot aplicado tambin contiene todas las dems variables que contiene el archivo SWF raz. Si no tiene acceso a nolockroot.fla, puede utilizar el siguiente cdigo ActionScript aadido a la lnea de tiempo principal para cambiar _lockroot en el documento FLA principal precedente:
this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth()); nolockroot_mc._lockroot = true; nolockroot_mc.loadMovie("nolockroot.swf");

que entonces obtendra lo siguiente:


from current SWF file dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from nolockroot.swf myOtherVar -> 2 myVar -> 1 from lockroot.swf myOtherVar -> 2 myVar -> 1

Vase tambin
Propiedad _root, _lockroot (propiedad MovieClip._lockroot), attachMovie (mtodo MovieClip.attachMovie), loadMovie (mtodo MovieClip.loadMovie), onLoadInit (detector de eventos MovieClipLoader.onLoadInit)

MovieClip

465

moveTo (mtodo MovieClip.moveTo)


public moveTo(x:Number, y:Number) : Void

Mueve la posicin de dibujo actual a (x, y). Si falta alguno de los parmetros, este mtodo falla y la posicin de dibujo actual no cambia. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
x:Number

- Entero que indica la posicin horizontal con respecto al punto de registro del clip de pelcula principal. - Entero que indica la posicin vertical con respecto al punto de registro del clip de pelcula principal. Ejemplo El ejemplo siguiente dibuja un tringulo con una lnea continua magenta de 5 pxeles y un relleno azul parcialmente transparente:

y:Number

this.createEmptyMovieClip("triangle_mc", 1); triangle_mc.beginFill(0x0000FF, 30); triangle_mc.lineStyle(5, 0xFF00FF, 100); triangle_mc.moveTo(200, 200); triangle_mc.lineTo(300, 300); triangle_mc.lineTo(100, 300); triangle_mc.lineTo(200, 200); triangle_mc.endFill();

Vase tambin
createEmptyMovieClip (mtodo MovieClip.createEmptyMovieClip), lineStyle (mtodo MovieClip.lineStyle), lineTo (mtodo MovieClip.lineTo)

_name (propiedad MovieClip._name)


public _name : String

Nombre de instancia del clip de pelcula. Vase tambin


_name (propiedad Button._name)

466

Clases de ActionScript

nextFrame (mtodo MovieClip.nextFrame)


public nextFrame() : Void

Traslada la cabeza lectora al siguiente fotograma y la detiene en dicho punto. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Ejemplo El ejemplo siguiente utiliza _framesloaded y nextFrame() para cargar contenido en un archivo SWF. No aada ningn cdigo al fotograma 1, pero aada el siguiente cdigo ActionScript en el fotograma 2 de la lnea de tiempo:
if (this._framesloaded >= 3) { this.nextFrame(); } else { this.gotoAndPlay(1); }

A continuacin, aada el cdigo siguiente (y el contenido que desee cargar) al fotograma 3:


stop();

Vase tambin
Funcin nextFrame, Funcin prevFrame, prevFrame (mtodo MovieClip.prevFrame)

onData (controlador MovieClip.onData)


onData = function() {}

Se invoca cuando un clip de pelcula recibe datos de una llamada MovieClip.loadVariables() o MovieClip.loadMovie(). Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Este controlador slo puede se utilizar con clips de pelcula para los que disponga de smbolo en la biblioteca asociada a la clase. Si desea que se invoque el controlador de eventos cuando un clip de pelcula concreto reciba datos, deber utilizar onClipEvent() en lugar de este controlador. Este ltimo controlador se invoca cuando algn clip de pelcula recibe datos. Ejemplo El ejemplo siguiente ilustra cmo utilizar correctamente el mtodo MovieClip.onData() y onClipEvent(data).

MovieClip

467

El smbolo symbol_mc es un smbolo de clip de pelcula de la biblioteca. Est vinculado a la clase MovieClip. La primera funcin que se muestra a continuacin se activa para cada instancia de symbol_mc cuando recibe datos. dynamic_mc es un clip de pelcula que se carga con MovieClip.loadMovie(). El cdigo que utiliza dynamic_mc intenta llamar a una funcin cuando se carga el clip de pelcula, pero no funciona. El archivo SWF cargado debe ser un smbolo de la biblioteca asociado a la clase MovieClip. La ltima funcin utiliza onClipEvent(data). El controlador de eventos onClipEvent() se invoca para cualquier clip de pelcula que reciba datos, se encuentre o no en la biblioteca. Por lo tanto, la ltima funcin de este ejemplo se invoca cuando se crea una instancia de symbol_mc y tambin cuando se carga replacement.swf.
// La siguiente funcin se activa para cada instancia de symbol_mc // cuando recibe datos. symbol_mc.onData = function() { trace("The movie clip has received data"); } // Este cdigo intenta llamar a la funcin cuando se carga el clip, // pero no funcionar, ya que el archivo SWF no es un smbolo // de la biblioteca asociado a la clase MovieClip. function output() { trace("Will never be called."); } dynamic_mc.onData = output; dynamic_mc.loadMovie("replacement.swf"); // La siguiente funcin se invoca para cualquier clip de pelcula que // reciba datos, est o no en la biblioteca. onClipEvent(data) { trace("The movie clip has received data"); }

Vase tambin
Controlador onClipEvent

468

Clases de ActionScript

onDragOut (controlador MovieClip.onDragOut)


onDragOut = function() {}

Se invoca cuando se presiona el botn del ratn y el puntero se desplaza fuera del objeto. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Nota: este controlador de eventos se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente define una funcin para el mtodo onDragOut que enva una accin trace() al panel Salida:
my_mc.onDragOut = function () { trace ("onDragOut called"); }

Vase tambin
onDragOver (controlador MovieClip.onDragOver)

onDragOver (controlador MovieClip.onDragOver)


onDragOver = function() {}

Se invoca cuando el puntero se arrastra fuera del clip de pelcula y luego se pasa por encima de ste. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Nota: este controlador de eventos se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente define una funcin para el mtodo onDragOver que enva una accin trace() al panel Salida:
my_mc.onDragOver = function () { trace ("onDragOver called"); }

Vase tambin
onDragOut (controlador MovieClip.onDragOut)

MovieClip

469

onEnterFrame (controlador MovieClip.onEnterFrame)


onEnterFrame = function() {}

Se invoca de manera repetida con la velocidad de fotogramas del archivo SWF. La funcin que se asigne al controlador de eventos onEnterFrame se procesa antes que cualquier otro cdigo ActionScript que este asignado a los fotogramas afectados. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Ejemplo El ejemplo siguiente define una funcin para el controlador de eventos onEnterFrame que enva una accin trace() al panel Salida:
my_mc.onEnterFrame = function () { trace ("onEnterFrame called"); }

onKeyDown (controlador MovieClip.onKeyDown)


onKeyDown = function() {}

Se invoca cuando un clip de pelcula est resaltado y se presiona una tecla. El controlador de eventos onKeyDown se invoca sin parmetros. Puede utilizar los mtodos Key.getAscii() y Key.getCode() para determinar qu tecla ha presionado el usuario. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. El controlador de eventos onKeyDown slo funciona si el clip de pelcula tiene la seleccin de entrada activada y establecida. En primer lugar, la propiedad MovieClip.focusEnabled debe establecerse como true para el clip de pelcula. Seguidamente, el clip debe recibir la seleccin de entrada. Esto puede hacerse utilizando Selection.setFocus() o estableciendo la tecla Tabulador para que se desplace al clip de pelcula. Si utiliza Selection.setFocus(), la ruta del clip de pelcula deber pasarse a Selection.setFocus(). Es fcil que otros elementos reciban la seleccin de entrada despus de que un usuario mueva el ratn.

470

Clases de ActionScript

Ejemplo El ejemplo siguiente define una funcin para el mtodo onKeyDown() que enva una accin trace() al panel Salida. Cree un clip de pelcula denominado my_mc y aada el siguiente cdigo ActionScript al archivo FLA o AS:
my_mc.onKeyDown = function () { trace ("key was pressed"); }

El clip de pelcula debe estar seleccionado para que el controlador de eventos onKeyDown funcione. Aada el siguiente cdigo ActionScript para establecer la seleccin de entrada:
my_mc.tabEnabled = true; my_mc.focusEnabled = true; Selection.setFocus(my_mc);

Si utiliza el tabulador para acceder al clip de pelcula y presiona una tecla, se mostrar key was en el panel Salida. Sin embargo, esto no ocurre si se desplaza el ratn, porque el clip de pelcula deja de estar seleccionado. Por lo tanto, debera utilizar Key.onKeyDown en la mayora de los casos.
pressed

Vase tambin
getAscii (mtodo Key.getAscii), getCode (mtodo Key.getCode), focusEnabled (propiedad MovieClip.focusEnabled), setFocus (mtodo Selection.setFocus), onKeyDown (detector de eventos Key.onKeyDown), onKeyUp (controlador MovieClip.onKeyUp)

onKeyUp (controlador MovieClip.onKeyUp)


onKeyUp = function() {}

Se invoca cuando se suelta una tecla. El controlador de eventos onKeyUp se invoca sin parmetros. Puede utilizar los mtodos Key.getAscii() y Key.getCode() para determinar qu tecla ha presionado el usuario. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. El controlador de eventos onKeyUp slo funciona si el clip de pelcula tiene la seleccin de entrada activada y establecida. En primer lugar, la propiedad MovieClip.focusEnabled debe establecerse como true para el clip de pelcula. Seguidamente, el clip debe recibir la seleccin de entrada. Esto puede hacerse utilizando Selection.setFocus() o estableciendo la tecla Tabulador para que se desplace al clip de pelcula.

MovieClip

471

Si utiliza Selection.setFocus(), la ruta del clip de pelcula deber pasarse a Selection.setFocus(). Es fcil que otros elementos reciban la seleccin de entrada despus de que un usuario mueva el ratn. Ejemplo
trace()

El ejemplo siguiente define una funcin para el mtodo onKeyUp que enva una accin al panel Salida:

my_mc.onKeyUp = function () { trace ("onKey called"); }

El ejemplo siguiente define la seleccin de entrada:


my_mc.focusEnabled = true; Selection.setFocus(my_mc);

Vase tambin
getAscii (mtodo Key.getAscii), getCode (mtodo Key.getCode), focusEnabled (propiedad MovieClip.focusEnabled), setFocus (mtodo Selection.setFocus), onKeyDown (detector de eventos Key.onKeyDown), onKeyDown (controlador MovieClip.onKeyDown)

onKillFocus (controlador MovieClip.onKillFocus)


onKillFocus = function(newFocus:Object) {}

Se invoca cuando un clip de pelcula deja de tener la seleccin de entrada. El mtodo onKillFocus recibe un parmetro, newFocus, que es un objeto que representa al nuevo objeto seleccionado. Si no hay ningn objeto seleccionado con el teclado, newFocus contendr el valor null (nulo). Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Parmetros
newFocus:Object

- El objeto que recibe la seleccin de entrada.

472

Clases de ActionScript

Ejemplo El ejemplo siguiente muestra informacin sobre el clip de pelcula que deja de estar seleccionado y la instancia que est seleccionada actualmente. En el escenario hay dos clips de pelcula denominados my_mc y other_mc. Puede aadir el siguiente cdigo ActionScript al documento FLA o AS:
my_mc.onRelease = Void; other_mc.onRelease = Void; my_mc.onKillFocus = function(newFocus) { trace("onKillFocus called, new focus is: "+newFocus); };

Si presiona la tecla Tabulador para desplazarse entre las dos instancias, la informacin se mostrar en el panel Salida. Vase tambin
onSetFocus (controlador MovieClip.onSetFocus)

onLoad (controlador MovieClip.onLoad)


onLoad = function() {}

Se invoca cuando se crea una instancia del clip de pelcula y sta aparece en la lnea de tiempo. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Este controlador slo puede se utilizar con clips de pelcula para los que disponga de smbolo en la biblioteca asociada a la clase. Si desea que se invoque un controlador de eventos al cargarse un determinado clip de pelcula, deber utilizar onClipEvent(load) o la clase MovieClipLoader en lugar de este controlador, por ejemplo, cuando utilice MovieClip.loadMovie() para cargar dinmicamente un archivo SWF. A diferencia de MovieClip.onLoad, los dems controladores se invocan cuando se carga cualquier clip de pelcula. Ejemplo Este ejemplo muestra cmo utilizar el controlador de eventos onLoad en una definicin de clase de ActionScript 2.0 que ampla la clase MovieClip. En primer lugar, cree un archivo de clase llamado Oval.as y defina un mtodo de clase llamado onLoad(). Asegrese de que el archivo de clase se coloca en la ruta adecuada:
// contenido de Oval.as class Oval extends MovieClip{ public function onLoad () {

MovieClip

473

trace ("onLoad called"); } }

En segundo lugar, cree un smbolo de clip de pelcula en la biblioteca y denomnelo Oval. Haga clic en cualquier punto del smbolo en el panel Biblioteca (normalmente con el botn derecho del ratn) y seleccione Vinculacin... en el men emergente. Haga clic en "Export for ActionScript" y rellene los campos "Identifier" y "ActionScript 2.0 Class" con la palabra "Oval" (sin comillas). Deje la opcin Exportar en primer fotograma sin seleccionar y haga clic en Aceptar. En tercer lugar, desplcese al primer fotograma del archivo e introduzca el cdigo siguiente en el panel Acciones:
var myOval:Oval = Oval(attachMovie("Oval","Oval_1",1));

Finalmente, realice una prueba de la pelcula; debera ver el texto de salida "onLoad called". Vase tambin
loadMovie (mtodo MovieClip.loadMovie), Controlador onClipEvent, MovieClipLoader

onMouseDown (controlador MovieClip.onMouseDown)


onMouseDown = function() {}

Se invoca cuando se presiona el botn del ratn. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Nota: este controlador de eventos se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente define una funcin para el mtodo onMouseDown que enva una accin trace() al panel Salida:
my_mc.onMouseDown = function () { trace ("onMouseDown called"); }

474

Clases de ActionScript

onMouseMove (controlador MovieClip.onMouseMove)


onMouseMove = function() {}

Se invoca cuando se mueve el ratn. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Nota: este controlador de eventos se admite en Flash Lite slo si System.capabilities.hasMouse es true. Ejemplo El ejemplo siguiente define una funcin para el mtodo onMouseMove que enva una accin trace() al panel Salida:
my_mc.onMouseMove = function () { trace ("onMouseMove called"); }

onMouseUp (controlador MovieClip.onMouseUp)


onMouseUp = function() {}

Se invoca cuando se suelta el botn del ratn. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Nota: este controlador de eventos se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente define una funcin para el mtodo onMouseUp que enva una accin trace() al panel Salida:
my_mc.onMouseUp = function () { trace ("onMouseUp called"); }

MovieClip

475

onPress (controlador MovieClip.onPress)


onPress = function() {}

Se invoca cuando el usuario hace clic en el ratn mientras el puntero se encuentra sobre el clip de pelcula. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la biblioteca. Ejemplo El ejemplo siguiente define una funcin para el mtodo onPress que enva una accin trace() al panel Salida:
my_mc.onPress = function () { trace ("onPress called"); }

onRelease (controlador MovieClip.onRelease)


onRelease = function() {}

Se invoca cuanto se suelta el botn del ratn sobre un clip de pelcula. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Ejemplo El ejemplo siguiente define una funcin para el mtodo onRelease que enva una accin trace() al panel Salida:
my_mc.onRelease = function() { trace ("onRelease called"); }

onReleaseOutside (controlador MovieClip.onReleaseOutside)


onReleaseOutside = function() {}

Se invoca cuando se presiona el botn del ratn dentro del rea del clip de pelcula y haberlos soltado despus fuera del rea. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca.

476

Clases de ActionScript

Nota: este controlador de eventos se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente define una funcin para el mtodo onReleaseOutside que enva una accin trace() al panel Salida:
my_mc.onReleaseOutside = function () { trace ("onReleaseOutside called"); }

onRollOut (controlador MovieClip.onRollOut)


onRollOut = function() {}

Se invoca cuando el puntero se desplaza fuera del rea de un clip de pelcula. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Ejemplo El ejemplo siguiente define una funcin para el mtodo onRollOut que enva una accin trace() al panel Salida:
my_mc.onRollOut = function () { trace ("onRollOut called"); }

onRollOver (controlador MovieClip.onRollOver)


onRollOver = function() {}

Se invoca cuando el puntero se desplaza sobre el rea de un clip de pelcula. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Ejemplo El ejemplo siguiente define una funcin para el mtodo onRollOver que enva una accin trace() al panel Salida:
my_mc.onRollOver = function () { trace ("onRollOver called"); }

MovieClip

477

onSetFocus (controlador MovieClip.onSetFocus)


onSetFocus = function(oldFocus:Object) {}

Se invoca cuando un clip de pelcula recibe la seleccin de entrada. El parmetro oldFocus es el objeto que deja de estar seleccionado. Por ejemplo, si el usuario presiona la tecla Tabulador para desplazar la seleccin del teclado de un clip de pelcula a un campo de texto, oldFocus contendr la instancia del clip de pelcula. Si anteriormente no haba ningn objeto seleccionado con el teclado, oldFocus contendr un valor null (nulo). Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Parmetros
oldFocus:Object

- El objeto que deja de estar seleccionado.

Ejemplo El ejemplo siguiente muestra informacin sobre el clip de pelcula que tiene la seleccin de entrada y la instancia que estaba seleccionada anteriormente. En el escenario hay dos clips de pelcula denominados my_mc y other_mc. Aada el siguiente cdigo ActionScript al documento FLA o AS:
my_mc.onRelease = Void; other_mc.onRelease = Void; my_mc.onSetFocus = function(oldFocus) { trace("onSetFocus called, previous focus was: "+oldFocus); }

Si presiona la tecla Tabulador entre las dos instancias, la informacin se mostrar en el panel Salida. Vase tambin
onKillFocus (controlador MovieClip.onKillFocus)

478

Clases de ActionScript

onUnload (controlador MovieClip.onUnload)


onUnload = function() {}

Se invoca en el primer fotograma despus de que el clip de pelcula se elimine de la lnea de tiempo. Flash procesa las acciones asociadas al controlador de eventos onUnload antes de asociar acciones al fotograma afectado. Debe definir la funcin que ha de ejecutarse cuando se invoca el controlador de eventos. Puede definir la funcin en la lnea de tiempo o en un archivo de clase que ample la clase MovieClip o est vinculado a un smbolo de la biblioteca. Ejemplo El ejemplo siguiente define una funcin para el mtodo MovieClip.onUnload que enva una accin trace() al panel Salida:
my_mc.onUnload = function () { trace ("onUnload called"); }

_parent (propiedad MovieClip._parent)


public _parent : MovieClip

Referencia al clip de pelcula u objeto que contiene el clip de pelcula u objeto actual. El parmetro _parent es la referencia del objeto actual. Utilice la propiedad _parent para especificar una ruta de acceso relativa a los clips de pelcula u objetos que se encuentran por encima del clip de pelcula u objeto actual. Puede utilizar _parent para subir mltiples niveles en la lista de visualizacin, como se muestra a continuacin:
this._parent._parent._alpha = 20;

Ejemplo El ejemplo siguiente obtiene la referencia a un clip de pelcula y su relacin con la lnea de tiempo principal. Cree un clip de pelcula con el nombre de instancia my_mc y adalo a la lnea de tiempo principal. Aada el siguiente cdigo ActionScript al archivo FLA o AS:
my_mc.onRelease = function() { trace("You clicked the movie clip: "+this); trace("The parent of "+this._name+" is: "+this._parent); }

Al hacer clic en el clip de pelcula, aparecer la siguiente informacin en el panel Salida:


You clicked the movie clip: _level0.my_mc The parent of my_mc is: _level0

MovieClip

479

Vase tambin
_parent (propiedad Button._parent), Propiedad _root, Funcin targetPath, _parent (propiedad TextField._parent)

play (mtodo MovieClip.play)


public play() : Void

Mueve la cabeza lectora por la lnea de tiempo del clip de pelcula. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Ejemplo Utilice el siguiente cdigo ActionScript para reproducir la lnea de tiempo principal de un archivo SWF. Este cdigo ActionScript es para un botn de clip de pelcula denominado my_mc de la lnea de tiempo principal:
stop(); my_mc.onRelease = function() { this._parent.play(); };

Utilice el siguiente cdigo ActionScript para reproducir la lnea de tiempo de un clip de pelcula en un archivo SWF. Este cdigo ActionScript es para un botn denominado my_btn de la lnea de tiempo principal que reproduce un clip de pelcula llamado animation_mc:
animation_mc.stop(); my_btn.onRelease = function () { animation_mc.play(); };

Vase tambin
Funcin play, gotoAndPlay (mtodo MovieClip.gotoAndPlay), Funcin gotoAndPlay

prevFrame (mtodo MovieClip.prevFrame)


public prevFrame() : Void

Traslada la cabeza lectora al fotograma anterior y la detiene en dicho punto. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase.

480

Clases de ActionScript

Ejemplo En el ejemplo siguiente, dos botones de clip de pelcula controlan la lnea de tiempo. El botn prev_mc desplaza la cabeza lectora al fotograma anterior, mientras que el botn next_mc la desplaza al fotograma siguiente. Aada contenido a una serie de fotogramas de la lnea de tiempo y aada el siguiente cdigo ActionScript al fotograma 1 de la lnea de tiempo:
stop(); prev_mc.onRelease = function() { var parent_mc:MovieClip = this._parent; if (parent_mc._currentframe>1) { parent_mc.prevFrame(); } else { parent_mc.gotoAndStop(parent_mc._totalframes); } }; next_mc.onRelease = function() { var parent_mc:MovieClip = this._parent; if (parent_mc._currentframe<parent_mc._totalframes) { parent_mc.nextFrame(); } else { parent_mc.gotoAndStop(1); } };

Vase tambin
Funcin prevFrame

_quality (propiedad MovieClip._quality)


public _quality : String

Establece o recupera la calidad de representacin que se utiliza para un archivo SWF. Las fuentes de dispositivo siempre se muestran dentadas y, por consiguiente, no se ven afectadas por la propiedad _quality. La propiedad _quality puede configurarse con los siguientes valores:
Valor
"LOW" "MEDIUM"

Descripcin
Calidad de representacin baja. Calidad de representacin media. Este ajuste resulta adecuado para pelculas que no contengan texto.

Suavizado de grficos
Los grficos no se suavizan. Los grficos se suavizan empleando una cuadrcula de 2 x 2 pxeles.

MovieClip

481

Valor
"HIGH"

Descripcin

Suavizado de grficos

Calidad de representacin alta. Los grficos se suavizan empleando una Esta es la calidad de representacin cuadrcula de 4 x 4 pxeles. predeterminada de Flash. Calidad de representacin muy alta. Los grficos se suavizan empleando una cuadrcula de 4 x 4 pxeles.

"BEST"

Nota:aunque puede especificar esta propiedad para un objeto MovieClip, se trata en realidad de una propiedad global, por lo que puede especificar su valor simplemente como _quality. Ejemplo Este ejemplo establece en LOW la calidad de representacin de un clip de pelcula denominado
my_mc: my_mc._quality = "LOW";

Vase tambin
Propiedad _quality

removeMovieClip (mtodo MovieClip.removeMovieClip)


public removeMovieClip() : Void

Elimina una instancia de clip de pelcula creada por duplicateMovieClip(), MovieClip.duplicateMovieClip(), MovieClip.createEmptyMovieClip() o MovieClip.attachMovie(). Este mtodo no elimina clips de pelcula asignados a valores de profundidad negativos. Los clips de pelcula creados en la herramienta del entorno de edicin tienen asignados valores de profundidad negativos de forma predeterminada. Para eliminar un clip de pelcula que tiene asignado un valor negativo de profundidad, en primer lugar utilice MovieClip.swapDepths() para desplazar el clip de pelcula a un valor de profundidad positivo.

482

Clases de ActionScript

Nota: si utiliza componentes de la versin 2 y emplea MovieClip.getNextHighestDepth() en lugar de la clase DepthManager para asignar valores de profundidad, quiz removeMovieClip() falle sin ninguna indicacin. Cuando se utilizan componentes de la versin 2, la clase DepthManager reserva automticamente las profundidades mxima (1048575) y mnima (-16383) disponibles para cursores y sugerencias. Las siguientes llamadas a getNextHighestDepth() devuelven 1048576, que queda fuera del rango vlido. El mtodo removeMovieClip() falla si encuentra un valor de profundidad fuera del rango vlido. Si necesita utilizar getNextHighestDepth() con componentes de la versin 2, puede utilizar swapDepths() para asignar un valor de profundidad vlido o utilizar MovieClip.unloadMovie() para eliminar el contenido del clip de pelcula. Tambin puede emplear la clase DepthManager para asignar valores de profundidad pertenecientes al rango vlido. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Ejemplo Cada vez que haga clic en un botn en el ejemplo siguiente, asociar una instancia de clip de pelcula al escenario en una posicin aleatoria. Al hacer clic en una instancia de clip de pelcula, eliminar esa instancia del archivo SWF.
function randRange(min:Number, max:Number):Number { var randNum:Number = Math.round(Math.random()*(max-min))+min; return randNum; } var bugNum:Number = 0; addBug_btn.onRelease = addBug; function addBug() { var thisBug:MovieClip = this._parent.attachMovie("bug_id", "bug"+bugNum+"_mc", bugNum, {_x:randRange(50, 500), _y:randRange(50, 350)}); thisBug.onRelease = function() { this.removeMovieClip(); }; bugNum++; }

Vase tambin
Funcin duplicateMovieClip, createEmptyMovieClip (mtodo MovieClip.createEmptyMovieClip), duplicateMovieClip (mtodo MovieClip.duplicateMovieClip), attachMovie (mtodo MovieClip.attachMovie), swapDepths (mtodo MovieClip.swapDepths)

MovieClip

483

_rotation (propiedad MovieClip._rotation)


public _rotation : Number

Especifica el giro del clip de pelcula, expresado en grados, con respecto a su orientacin original. Los valores comprendidos entre 0 y 180 representan un giro en el sentido de las agujas del reloj, mientras que los comprendidos entre 0 y -180 representan un giro en sentido contrario al de las agujas del reloj. Los valores situados fuera de este rango se suman o restan de 360 para obtener un valor que s est comprendido en el rango. Por ejemplo, la sentencia my_mc._rotation = 450 es igual que my_mc._rotation = 90. Ejemplo El ejemplo siguiente crea dinmicamente un clip de pelcula denominado triangle. Cuando ejecute el archivo SWF, haga clic en el clip de pelcula para girarlo:
this.createEmptyMovieClip("triangle", this.getNextHighestDepth()); triangle.beginFill(0x0000FF, 100); triangle.moveTo(100, 100); triangle.lineTo(100, 150); triangle.lineTo(150, 100); triangle.lineTo(100, 100); triangle.onMouseUp= function() { this._rotation += 15; };

Vase tambin
_rotation (propiedad Button._rotation), _rotation (propiedad TextField._rotation)

setMask (mtodo MovieClip.setMask)


public setMask(mc:Object) : Void

Convierte el clip de pelcula del parmetro mc en una mscara que revela el clip de pelcula especificado por el clip de pelcula. El mtodo setMask() permite a los clips de pelcula de mltiples fotogramas con contenido complejo en mltiples capas actuar como mscaras (lo cual es posible utilizando capas de mscara). Si hay fuentes de dispositivo en un clip de pelcula con mscara, stas se dibujarn pero no se enmascararn. No es posible configurar un clip de pelcula de forma que sea su propia mscara (por ejemplo, my_mc.setMask(my_mc)).

484

Clases de ActionScript

Si crea una capa de mscara que contiene un clip de pelcula y luego le aplica el mtodo setMask(), la llamada a setMask() tiene prioridad y es irreversible. Por ejemplo, puede tener un clip de pelcula en una capa de mscara denominada UIMask que enmascare otra capa que contiene otro clip de pelcula denominado UIMaskee. Si, durante la reproduccin del archivo SWF, efecta una llamada a UIMask.setMask(UIMaskee), UIMask quedar enmascarada por UIMaskee a partir de ese punto. Para cancelar una mscara creada con ActionScript, pase el valor null al mtodo setMask(). El siguiente cdigo cancela la mscara sin que ello afecte a la capa de mscara en la lnea de tiempo.
UIMask.setMask(null);

Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Parmetros
mc:Object - Nombre de instancia de un clip de pelcula que se va a enmascarar. Puede ser una

cadena o un objeto MovieClip. Ejemplo En este ejemplo se utiliza un clip de pelcula circleMask_mc para enmascarar al clip de pelcula theMaskee_mc.
theMaskee_mc.setMask(circleMask_mc);

_soundbuftime (propiedad MovieClip._soundbuftime)


public _soundbuftime : Number

Especifica el nmero de segundos que un sonido debe acumularse previamente en el bfer antes de que comience a reproducirse sin interrupcin. Nota:aunque puede especificar esta propiedad para un objeto MovieClip, se trata en realidad de una propiedad global que se aplica a todos los sonidos cargados, por lo que puede especificar su valor simplemente como _soundbuftime. Al establecer esta propiedad para un objeto MovieClip, en realidad se define la propiedad global. Vase tambin
Propiedad _soundbuftime

MovieClip

485

startDrag (mtodo MovieClip.startDrag)


public startDrag([lockCenter:Boolean], [left:Number], [top:Number], [right:Number], [bottom:Number]) : Void

Permite al usuario arrastrar el clip de pelcula especificado. Es posible continuar arrastrando el clip de pelcula hasta que se detenga explcitamente mediante una llamada a MovieClip.stopDrag() o hasta que otro clip de pelcula pueda arrastrarse. Slo es posible arrastrar clips de pelcula de uno en uno. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Parmetros [opcional] - Valor booleano que especifica si el clip de pelcula arrastrable est bloqueado en el centro de la posicin del ratn (true) o en el punto donde el usuario hizo clic por primera vez en el clip de pelcula (false).
lockCenter:Boolean left:Number

[opcional] - Valor relativo a las coordenadas del elemento principal del clip de pelcula, que especifican un rectngulo limitado para el clip de pelcula. [opcional] - Valor relativo a las coordenadas del elemento principal del clip de pelcula, que especifican un rectngulo limitado para el clip de pelcula.

top:Number

right:Number

[opcional] - Valor relativo a las coordenadas del elemento principal del clip de pelcula, que especifican un rectngulo limitado para el clip de pelcula.

bottom:Number

[opcional] - Valor relativo a las coordenadas del elemento principal del clip de pelcula, que especifican un rectngulo limitado para el clip de pelcula. Ejemplo El ejemplo siguiente crea una instancia de clip de pelcula que puede arrastrarse denominada

mc_1. this.createEmptyMovieClip("mc_1", 1); with (mc_1) { lineStyle(1, 0xCCCCCC); beginFill(0x4827CF); moveTo(0, 0); lineTo(80, 0); lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill();

486

Clases de ActionScript

} mc_1.onPress = function() { this.startDrag(); }; mc_1.onRelease = function() { this.stopDrag(); };

Vase tambin
_droptarget (propiedad MovieClip._droptarget), Funcin startDrag, stopDrag (mtodo MovieClip.stopDrag)

stop (mtodo MovieClip.stop)


public stop() : Void

Detiene el clip de pelcula que se est reproduciendo actualmente. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Ejemplo El ejemplo siguiente muestra cmo detener un clip de pelcula denominado aMovieClip:
aMovieClip.stop();

Vase tambin
Funcin stop

stopDrag (mtodo MovieClip.stopDrag)


public stopDrag() : Void

Finaliza un mtodo MovieClip.startDrag(). Un clip de pelcula que puede arrastrarse mediante dicho mtodo podr arrastrarse hasta que se aada un mtodo stopDrag() o hasta que se pueda arrastrar otro clip de pelcula. Slo es posible arrastrar clips de pelcula de uno en uno. Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase.
System.capabilities.hasStylus

Nota: este evento se admite en Flash Lite slo si System.capabilities.hasMouse es true o es true.

MovieClip

487

Ejemplo El ejemplo siguiente crea una instancia de clip de pelcula que puede arrastrarse denominada mc_1.
this.createEmptyMovieClip("mc_1", 1); with (mc_1) { lineStyle(1, 0xCCCCCC); beginFill(0x4827CF); moveTo(0, 0); lineTo(80, 0); lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill(); } mc_1.onPress = function() { this.startDrag(); }; mc_1.onRelease = function() { this.stopDrag(); };

Vase tambin
_droptarget (propiedad MovieClip._droptarget), startDrag (mtodo MovieClip.startDrag), Funcin stopDrag

swapDepths (mtodo MovieClip.swapDepths)


public swapDepths(target:Object) : Void

Intercambia el apilamiento o nivel de profundidad (orden z), de este clip de pelcula con el clip de pelcula especificado por el parmetro target o con el clip de pelcula que ocupa actualmente el nivel de profundidad especificado en el parmetro target. Ambos clips de pelcula deben tener el mismo clip de pelcula principal. El intercambio del nivel de profundidad de los clips de pelcula provoca que un clip de pelcula se site delante o detrs del otro. Si se est interpolando un clip de pelcula cuando se llama a este mtodo, la interpolacin se detendr. . Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase.

488

Clases de ActionScript

Parmetros
target:Object

- Este parmetro puede tener una de las dos formas siguientes:

Un entero exclusivo que especifica la profundidad a la que debe colocarse el nuevo clip de pelcula. Una cadena que especifica la instancia de clip de pelcula cuya profundidad se intercambiar con el clip de pelcula al que se aplicar el mtodo. Ambos clips de pelcula deben tener el mismo clip de pelcula principal.

Ejemplo El ejemplo siguiente intercambia el orden de apilamiento de dos instancias de clip de pelcula. Superponga en el escenario dos instancias de clip de pelcula denominadas myMC1_mc y myMC2_mc y despus aada el siguiente cdigo ActionScript a la lnea de tiempo principal:
myMC1_mc.onRelease = function() { this.swapDepths(myMC2_mc); }; myMC2_mc.onRelease = function() { this.swapDepths(myMC1_mc); };

Vase tambin
Propiedad _level, getDepth (mtodo MovieClip.getDepth), getInstanceAtDepth (mtodo MovieClip.getInstanceAtDepth), getNextHighestDepth (mtodo MovieClip.getNextHighestDepth)

tabChildren (propiedad MovieClip.tabChildren)


public tabChildren : Boolean

Determina si los elementos secundarios de un clip de pelcula se incluyen en el orden de tabulacin automtico. Si la propiedad tabChildren tiene el valor undefined o true, los elementos secundarios de un clip de pelcula se incluirn en el orden de tabulacin automtico. Si el valor de tabChildren es false, los elementos secundarios de un clip de pelcula no se incluirn en el orden de tabulacin automtico. El valor predeterminado es undefined.

MovieClip

489

Ejemplo El widget cuadro de lista de la interfaz de usuario creado como un clip de pelcula contiene varios elementos. El usuario puede hacer clic en cada elemento para seleccionarlo, por lo que cada elemento aparece como un botn. Sin embargo, slo el cuadro de lista propiamente dicho debe ser una tabulacin. Los elementos del interior del cuadro de lista deben quedar excluidos del orden de tabulacin. Para ello, la propiedad tabChildren del cuadro de lista debe configurarse como false. La propiedad tabChildren no tiene ningn efecto si se utiliza la propiedad tabIndex; la propiedad tabChildren slo afecta al orden de tabulacin automtico. El ejemplo siguiente desactiva la tabulacin de todos los clips de pelcula secundarios del interior de un clip de pelcula principal denominado menu_mc:
menu_mc.onRelease = function(){}; menu_mc.menu1_mc.onRelease = function(){}; menu_mc.menu2_mc.onRelease = function(){}; menu_mc.menu3_mc.onRelease = function(){}; menu_mc.menu4_mc.onRelease = function(){}; menu_mc.tabChildren = false;

Cambie la ltima lnea de cdigo por lo siguiente para incluir las instancias de clip de pelcula secundarias de menu_mc en el orden de tabulacin automtico:
menu_mc.tabChildren = true;

Vase tambin
tabIndex (propiedad Button.tabIndex), tabEnabled (propiedad MovieClip.tabEnabled), tabIndex (propiedad MovieClip.tabIndex), tabIndex (propiedad TextField.tabIndex)

tabEnabled (propiedad MovieClip.tabEnabled)


public tabEnabled : Boolean

Especifica si el clip de pelcula se incluye en el orden de tabulacin automtico. De manera predeterminada, tiene el valor undefined. Si la propiedad tabEnabled es undefined, el objeto slo se incluir en el orden de tabulacin automtico si define al menos un controlador de clip de pelcula, como MovieClip.onRelease. Si tabEnabled se establece con el valor true, el objeto se incluir en el orden de tabulacin automtico. Si la propiedad tabIndex tambin est configurada con un valor, el objeto se incluir tambin en el orden de tabulacin personalizado.

490

Clases de ActionScript

Si tabEnabled tiene el valor false, el objeto no se incluir en el orden de tabulacin automtico ni en el personalizado aunque se establezca la propiedad tabIndex. No obstante, si MovieClip.tabChildren tiene el valor true, los elementos secundarios del clip de pelcula podrn incluirse en el orden de tabulacin automtico aunque tabEnabled tenga el valor false. Ejemplo El ejemplo siguiente no incluye myMC2_mc en el orden de tabulacin automtico:
myMC1_mc.onRelease = function() {}; myMC2_mc.onRelease = function() {}; myMC3_mc.onRelease = function() {}; myMC2_mc.tabEnabled = false;

Vase tambin
onRelease (controlador MovieClip.onRelease), tabEnabled (propiedad Button.tabEnabled), tabChildren (propiedad MovieClip.tabChildren), tabIndex (propiedad MovieClip.tabIndex), tabEnabled (propiedad TextField.tabEnabled)

tabIndex (propiedad MovieClip.tabIndex)


public tabIndex : Number

Permite personalizar el orden de tabulacin de los objetos de una pelcula. La propiedad tabIndex tiene el valor undefined de manera predeterminada. Puede establecer tabIndex en una instancia de botn, clip de pelcula o campo de texto. Si un objeto de un archivo SWF contiene una propiedad tabIndex, se desactivar el orden de tabulacin automtico y el orden de tabulacin se calcular a partir de las propiedades tabIndex de los objetos del archivo SWF. El orden de tabulacin personalizado slo incluye objetos que tienen propiedades tabIndex. La propiedad tabIndex debe ser un entero positivo. Los objetos se ordenan conforme a lo que indiquen las propiedades tabIndex y en orden ascendente. Un objeto que tenga un valor tabIndex de 1 preceder a otro objeto que tenga un valor tabIndex de 2. El orden de tabulacin personalizado no tiene en cuenta las relaciones jerrquicas de los objetos de un archivo SWF. Todos los objetos del archivo SWF que tengan propiedades tabIndex se incluirn en el orden de tabulacin. No utilice el mismo valor de tabIndex para varios objetos.

MovieClip

491

Ejemplo El siguiente cdigo ActionScript establece un orden de tabulacin personalizado para tres instancias de clip de pelcula.
myMC1_mc.onRelease = function() {}; myMC2_mc.onRelease = function() {}; myMC3_mc.onRelease = function() {}; myMC1_mc.tabIndex = 2; myMC2_mc.tabIndex = 1; myMC3_mc.tabIndex = 3;

Vase tambin
tabIndex (propiedad Button.tabIndex), tabIndex (propiedad TextField.tabIndex)

_target (propiedad MovieClip._target)


public _target : String [read-only]

Devuelve la ruta de destino de la instancia de clip de pelcula en notacin con barras. Utilice la funcin eval() para convertir la ruta de acceso de destino a notacin con punto. Ejemplo El ejemplo siguiente muestra las rutas de destino de instancias de clip de pelcula de un archivo SWF en notacin con barras y con punto.
for (var i in this) { if (typeof (this[i]) == "movieclip") { trace("name: " + this[i]._name + ",\t target: " + this[i]._target + ",\t target(2):" + eval(this[i]._target)); } }

492

Clases de ActionScript

_totalframes (propiedad MovieClip._totalframes)


public _totalframes : Number [read-only]

Devuelve el nmero total de fotogramas de la instancia de clip de pelcula especificada en el parmetro MovieClip. Ejemplo En el ejemplo siguiente, dos botones de clip de pelcula controlan la lnea de tiempo. El botn desplaza la cabeza lectora al fotograma anterior, mientras que el botn next_mc la desplaza al fotograma siguiente. Aada contenido a una serie de fotogramas de la lnea de tiempo y aada el siguiente cdigo ActionScript al fotograma 1 de la lnea de tiempo:
prev_mc stop(); prev_mc.onRelease = function() { var parent_mc:MovieClip = this._parent; if (parent_mc._currentframe>1) { parent_mc.prevFrame(); } else { parent_mc.gotoAndStop(parent_mc._totalframes); } }; next_mc.onRelease = function() { var parent_mc:MovieClip = this._parent; if (parent_mc._currentframe<parent_mc._totalframes) { parent_mc.nextFrame(); } else { parent_mc.gotoAndStop(1); } };

trackAsMenu (propiedad MovieClip.trackAsMenu)


public trackAsMenu : Boolean

Valor booleano que indica si otros botones o clips de pelcula pueden recibir un evento de liberacin del botn del ratn o del lpiz stylus. Si arrastra un ratn o un lpiz stylus encima de un clip de pelcula y lo suelta sobre un segundo clip de pelcula, el evento onRelease se registrar para el segundo clip de pelcula. De este modo, puede crear mens para el segundo clip de pelcula. Puede establecer la propiedad trackAsMenu en cualquier botn u objeto del clip de pelcula. Si no ha definido la propiedad trackAsMenu, el comportamiento predeterminado es false. Puede cambiar la propiedad trackAsMenu en cualquier momento; el clip de pelcula modificado adoptar de inmediato el nuevo comportamiento.

MovieClip

493

Nota: esta propiedad se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente define la propiedad trackAsMenu para tres clips de pelcula del escenario. Haga clic en un clip de pelcula y suelte el botn del ratn sobre un segundo clip de pelcula para ver qu instancia recibe el evento.
myMC1_mc.trackAsMenu = true; myMC2_mc.trackAsMenu = true; myMC3_mc.trackAsMenu = false; myMC1_mc.onRelease = clickMC; myMC2_mc.onRelease = clickMC; myMC3_mc.onRelease = clickMC; function clickMC() { trace("you clicked the "+this._name+" movie clip."); };

Vase tambin
trackAsMenu (propiedad Button.trackAsMenu)

unloadMovie (mtodo MovieClip.unloadMovie)


public unloadMovie() : Void

Elimina el contenido de una instancia de clip de pelcula. Se conservan las propiedades de instancia y los controladores de clip. Para eliminar la instancia, incluidas sus propiedades y controladores de clip, utilice MovieClip.removeMovieClip(). Puede ampliar los mtodos y los controladores de eventos de la clase MovieClip creando una subclase. Ejemplo El ejemplo siguiente descarga una instancia de clip de pelcula denominada box cuando un usuario hace clic en el clip de pelcula box.
this.createEmptyMovieClip("box", 1); with (box) { lineStyle(1, 0xCCCCCC); beginFill(0x4827CF); moveTo(0, 0); lineTo(80, 0);

494

Clases de ActionScript

lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill(); } box.onRelease = function() { box.unloadMovie(); };

Vase tambin
removeMovieClip (mtodo MovieClip.removeMovieClip), attachMovie (mtodo MovieClip.attachMovie), loadMovie (mtodo MovieClip.loadMovie), Funcin unloadMovie, Funcin unloadMovieNum

_url (propiedad MovieClip._url)


public _url : String [read-only]

Recupera la URL del archivo SWF, JPEG, GIF o PNG del que se descarg el clip de pelcula. Ejemplo El ejemplo siguiente muestra la URL de la imagen que se ha cargado en la instancia image_mc en el panel Salida.
this.createEmptyMovieClip("image_mc", 1); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { trace("_url: "+target_mc._url); }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

_visible (propiedad MovieClip._visible)


public _visible : Boolean

Valor booleano que indica si un clip de pelcula est visible. Los clips de pelcula no visibles (que tienen la propiedad _visible configurada como false) se desactivan. Por ejemplo, no es posible hacer clic en un botn de un clip de pelcula con _visible configurado con el valor false.

MovieClip

495

Ejemplo El ejemplo siguiente establece la propiedad _visible en dos clips de pelcula denominados myMC1_mc y myMC2_mc. La propiedad se configura como true para una instancia y como false para la otra. Observe que no es posible hacer clic en la instancia myMC1_mc tras definir la propiedad _visible en false.
myMC1_mc.onRelease = function() { trace(this._name+"._visible = false"); this._visible = false; }; myMC2_mc.onRelease = function() { trace(this._name+"._alpha = 0"); this._alpha = 0; };

Vase tambin
_visible (propiedad Button._visible), _visible (propiedad TextField._visible)

_width (propiedad MovieClip._width)


public _width : Number

Anchura del clip de pelcula, expresada en pxeles. Ejemplo El siguiente ejemplo de cdigo muestra la altura y anchura de un clip de pelcula en el panel Salida:
this.createEmptyMovieClip("triangle", this.getNextHighestDepth()); triangle.beginFill(0x0000FF, 100); triangle.moveTo(100, 100); triangle.lineTo(100, 150); triangle.lineTo(150, 100); triangle.lineTo(100, 100); trace(triangle._name + " = " + triangle._width + " X " + triangle._height + " pixels");

Vase tambin
_height (propiedad MovieClip._height)

496

Clases de ActionScript

_x (propiedad MovieClip._x)
public _x : Number

Entero que establece la coordenada x de un clip de pelcula con respecto a las coordenadas locales del clip de pelcula principal. Si un clip de pelcula se encuentra en la lnea de tiempo principal, su sistema de coordenadas har referencia a la esquina superior izquierda del escenario como (0, 0). Si el clip de pelcula est dentro de otro clip de pelcula que incluye transformaciones, el clip de pelcula estar en el sistema de coordenadas local del clip de pelcula en el que est contenido. Por consiguiente, en el caso de un clip de pelcula con un giro de 90 en sentido contrario al de las agujas del reloj, los clips de pelcula secundarios de este clip de pelcula heredarn un sistema de coordenadas con un giro de 90 en sentido contrario al de las agujas del reloj. Las coordenadas del clip de pelcula hacen referencia a la posicin del punto de registro. Vase tambin
_xscale (propiedad MovieClip._xscale), _y (propiedad MovieClip._y), _yscale (propiedad MovieClip._yscale)

_xmouse (propiedad MovieClip._xmouse)


public _xmouse : Number [read-only]

Devuelve la coordenada x de la posicin del ratn.


true

Nota: esta propiedad se admite en Flash Lite slo si System.capabilities.hasMouse es o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente devuelve las coordenadas x e y actuales del ratn en el escenario (_level0) y con respecto a un clip de pelcula del escenario llamado my_mc.

this.createTextField("mouse_txt", this.getNextHighestDepth(), 0, 0, 150, 66); mouse_txt.html = true; mouse_txt.multiline = true; var row1_str:String = "&nbsp;\t<b>_xmouse\t</b><b>_ymouse</b>"; my_mc.onMouseMove = function () { mouse_txt.htmlText = "<textformat tabStops='[50,100]'>"; mouse_txt.htmlText += row1_str; mouse_txt.htmlText += "<b>_level0</b>\t"+_xmouse+"\t"+_ymouse; mouse_txt.htmlText += "<b>my_mc</b>\t"+this._xmouse+"\t"+this._ymouse; mouse_txt.htmlText += "</textformat>"; };

MovieClip

497

Vase tambin
Mouse, _ymouse (propiedad MovieClip._ymouse)

_xscale (propiedad MovieClip._xscale)


public _xscale : Number

Establece la escala horizontal (percentage) del clip de pelcula aplicada desde el punto de registro del clip de pelcula. El punto de registro predeterminado es (0,0). La escala del sistema de coordenadas local afecta a la configuracin de las propiedades _x e _y, que se definen en pxeles completos. Por ejemplo, si se aplica una escala del 50% al clip de pelcula principal, la configuracin de la propiedad _y desplazar un objeto situado en el clip de pelcula la mitad de pxeles que si la pelcula tuviera una escala del 100%. Ejemplo El ejemplo siguiente crea un clip de pelcula denominado box_mc en tiempo de ejecucin. La API de dibujo se utiliza para dibujar un recuadro en esta instancia y, cuando el ratn se desplaza sobre el recuadro, se aplica un cambio de escala horizontal y vertical al clip de pelcula. Cuando el ratn se desplaza fuera de la instancia, sta recupera la escala anterior.
this.createEmptyMovieClip("box_mc", 1); box_mc._x = 100; box_mc._y = 100; with (box_mc) { lineStyle(1, 0xCCCCCC); beginFill(0xEEEEEE); moveTo(0, 0); lineTo(80, 0); lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill(); }; box_mc.onRollOver = function() { this._x -= this._width/2; this._y -= this._height/2; this._xscale = 200; this._yscale = 200; }; box_mc.onRollOut = function() { this._xscale = 100; this._yscale = 100; this._x += this._width/2; this._y += this._height/2; };

498

Clases de ActionScript

Vase tambin
_x (propiedad MovieClip._x), _y (propiedad MovieClip._y), _yscale (propiedad MovieClip._yscale), _width (propiedad MovieClip._width)

_y (propiedad MovieClip._y)
public _y : Number

Establece la coordenada y de un clip de pelcula con respecto a las coordenadas locales del clip de pelcula principal. Si un clip de pelcula se encuentra en la lnea de tiempo principal, su sistema de coordenadas har referencia a la esquina superior izquierda del escenario como (0,0). Si el clip de pelcula est dentro de otro clip de pelcula que incluye transformaciones, el clip de pelcula estar en el sistema de coordenadas local del clip de pelcula en el que est contenido. Por consiguiente, en el caso de un clip de pelcula con un giro de 90 en sentido contrario al de las agujas del reloj, los clips de pelcula secundarios de este clip de pelcula heredarn un sistema de coordenadas con un giro de 90 en sentido contrario al de las agujas del reloj. Las coordenadas del clip de pelcula hacen referencia a la posicin del punto de registro. Vase tambin
_x (propiedad MovieClip._x), _xscale (propiedad MovieClip._xscale), _yscale (propiedad MovieClip._yscale)

_ymouse (propiedad MovieClip._ymouse)


public _ymouse : Number [read-only]

Indica la coordenada y de la posicin del ratn. Nota: esta propiedad se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true. Ejemplo El ejemplo siguiente devuelve las coordenadas x e y actuales del ratn en el escenario (_level0) y con respecto a un clip de pelcula del escenario llamado my_mc.
this.createTextField("mouse_txt", this.getNextHighestDepth(), 0, 0, 150, 66); mouse_txt.html = true; mouse_txt.multiline = true; var row1_str:String = "&nbsp;\t<b>_xmouse\t</b><b>_ymouse</b>"; my_mc.onMouseMove = function () { mouse_txt.htmlText = "<textformat tabStops='[50,100]'>"; mouse_txt.htmlText += row1_str;

MovieClip

499

mouse_txt.htmlText += "<b>_level0</b>\t"+_xmouse+"\t"+_ymouse; mouse_txt.htmlText += "<b>my_mc</b>\t"+this._xmouse+"\t"+this._ymouse; mouse_txt.htmlText += "</textformat>"; };

Vase tambin
Mouse, _xmouse (propiedad MovieClip._xmouse)

_yscale (propiedad MovieClip._yscale)


public _yscale : Number

Establece la escala vertical (percentage) del clip de pelcula aplicada desde el punto de registro del clip de pelcula. El punto de registro predeterminado es (0,0). La escala del sistema de coordenadas local afecta a la configuracin de las propiedades _x e _y, que se definen en pxeles completos. Por ejemplo, si se aplica una escala del 50% al clip de pelcula principal, la configuracin de la propiedad _x desplazar un objeto situado en el clip de pelcula la mitad de pxeles que si la pelcula tuviera una escala del 100%. Ejemplo El ejemplo siguiente crea un clip de pelcula denominado box_mc en tiempo de ejecucin. La API de dibujo se utiliza para dibujar un recuadro en esta instancia y, cuando el ratn se desplaza sobre el recuadro, se aplica un cambio de escala horizontal y vertical al clip de pelcula. Cuando el ratn se desplaza fuera de la instancia, sta recupera la escala anterior.
this.createEmptyMovieClip("box_mc", 1); box_mc._x = 100; box_mc._y = 100; with (box_mc) { lineStyle(1, 0xCCCCCC); beginFill(0xEEEEEE); moveTo(0, 0); lineTo(80, 0); lineTo(80, 60); lineTo(0, 60); lineTo(0, 0); endFill(); }; box_mc.onRollOver = function() { this._x -= this._width/2; this._y -= this._height/2; this._xscale = 200; this._yscale = 200; };

500

Clases de ActionScript

box_mc.onRollOut = function() { this._xscale = 100; this._yscale = 100; this._x += this._width/2; this._y += this._height/2; };

Vase tambin
_x (propiedad MovieClip._x), _xscale (propiedad MovieClip._xscale), _y (propiedad MovieClip._y), _height (propiedad MovieClip._height)

MovieClipLoader
Object | +-MovieClipLoader public class MovieClipLoader extends Object

La clase MovieClipLoader le permite implementar funciones callback de detector que proporcionan informacin de estado mientras se estn cargando (descargando) archivos SWF, JPEG, GIF o PNG en clips de pelcula. Para utilizar las funciones MovieClipLoader, utilice MovieClipLoader.loadClip() en lugar de loadMovie() o MovieClip.loadMovie() para cargar archivos SWF. Una vez que enve el mtodo MovieClipLoader.loadClip(), tendrn lugar los siguientes eventos en el orden en que se enumeran:

Cuando se hayan grabado en el disco duro los primeros bytes del archivo descargado, se invocar el detector MovieClipLoader.onLoadStart. Si ha implementado el detector MovieClipLoader.onLoadProgress, ste se invocar durante el proceso de carga.Nota: puede efectuar una llamada a MovieClipLoader.getProgress() en cualquier momento durante el proceso de carga. Cuando se haya grabado en el disco duro el archivo descargado completo, se invocar el detector MovieClipLoader.onLoadComplete. Una vez que se hayan ejecutado las acciones del primer fotograma del archivo descargado, se invocar el detector MovieClipLoader.onLoadInit

Una vez que se haya invocado MovieClipLoader.onLoadInit, podr establecer propiedades, utilizar mtodos e interactuar con la pelcula descargada. Si el archivo no se carga completamente, se invocar el detector MovieClipLoader.onLoadError.

MovieClipLoader

501

Resumen de propiedades Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onLoadComplete = ject, [target_mc]) {} onLoadError = errorCode) {} onLoadInit = ]) {} onLoadProgress = ], loadedBytes, totalBytes) {} onLoadStart = ]) {}

Descripcin
Se invoca cuando un archivo cargado con

function(listenerOb MovieClipLoader.loadClip() se ha descargado completamente.

Se invoca cuando un archivo cargado con

function(target_mc, MovieClipLoader.loadClip() no se carga correctamente.

Se invoca cuando se ejecutan las acciones del primer fotograma del

function([target_mc clip cargado.

Se invoca cada vez que se graba en el disco duro el contenido durante y MovieClipLoader.onLoadComplete). Se invoca cuando una llamada a MovieClipLoader.loadClip() ha

function([target_mc el proceso de carga (es decir, entre MovieClipLoader.onLoadStart

function([target_mc iniciado correctamente la descarga de un archivo.

Resumen de constructores
Firma
MovieClipLoader()

Descripcin
Crea un objeto MovieClipLoader que puede utilizar para implementar una serie de detectores que respondan a eventos mientras se est descargando un archivo SWF, JPEG, GIF o PNG.

502

Clases de ActionScript

Resumen de mtodos
Modificadores Firma Descripcin

addListener(listene Registra un objeto para recibir notificacin de la r:Object) : Boolean invocacin de un controlador de eventos

MovieClipLoader.
getProgress(target: Devuelve el nmero de bytes cargados y el nmero Object) : Object

total de bytes de un archivo que se est cargando mediante MovieClipLoader.loadClip(); en el caso de pelculas comprimidas, el mtodo getProgress refleja el nmero de bytes comprimidos. pelcula en Flash Player mientras se reproduce el clip de pelcula original. notificacin de la invocacin del controlador de eventos MovieClipLoader. mediante MovieClipLoader.loadClip().

loadClip(url:String Carga un archivo SWF o JPEG en un clip de , target:Object) : Boolean

removeListener(list Elimina el detector que se ha utilizado para recibir ener:Object) : Boolean

unloadClip(target:O Elimina un clip de pelcula que se ha cargado bject) : Boolean

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

addListener (mtodo MovieClipLoader.addListener)


public addListener(listener:Object) : Boolean

Registra un objeto para recibir notificacin de la invocacin de un controlador de eventos MovieClipLoader. Parmetros - Un objeto que detecta una notificacin callback de los controladores de eventos MovieClipLoader.
listener:Object

MovieClipLoader

503

Valor devuelto
Boolean - Valor booleano. El valor devuelto es true si el detector se ha establecido correctamente; de lo contrario, el valor devuelto es false.

Ejemplo El ejemplo siguiente carga una imagen en un clip de pelcula llamado image_mc. La instancia de clip de pelcula se gira y se centra en el escenario, y tanto el escenario como el clip de pelcula tienen un trazo dibujado alrededor de sus parmetros.
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { target_mc._x = Stage.width/2-target_mc._width/2; target_mc._y = Stage.height/2-target_mc._width/2; var w:Number = target_mc._width; var h:Number = target_mc._height; target_mc.lineStyle(4, 0x000000); target_mc.moveTo(0, 0); target_mc.lineTo(w, 0); target_mc.lineTo(w, h); target_mc.lineTo(0, h); target_mc.lineTo(0, 0); target_mc._rotation = 3; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

Vase tambin
onLoadComplete (detector de eventos MovieClipLoader.onLoadComplete), onLoadError (detector de eventos MovieClipLoader.onLoadError), onLoadInit (detector de eventos MovieClipLoader.onLoadInit), onLoadProgress (detector de eventos MovieClipLoader.onLoadProgress), onLoadStart (detector de eventos MovieClipLoader.onLoadStart), removeListener (mtodo MovieClipLoader.removeListener)

504

Clases de ActionScript

getProgress (mtodo MovieClipLoader.getProgress)


public getProgress(target:Object) : Object

Devuelve el nmero de bytes cargados y el nmero total de bytes de un archivo que se est cargando mediante MovieClipLoader.loadClip(); en el caso de pelculas comprimidas, el mtodo getProgress refleja el nmero de bytes comprimidos. El mtodo getProgress permite solicitar explcitamente esta informacin en lugar de (o adems de) escribir una funcin de detector MovieClipLoader.onLoadProgress. Parmetros
target:Object

- Un archivo SWF, JPEG, GIF o PNG que se carga mediante

MovieClipLoader.loadClip().

Valor devuelto
Object

- Un objeto que dispone de dos propiedades de enteros: bytesLoaded y bytesTotal.

Ejemplo En el ejemplo siguiente muestra el uso del mtodo getProgress. En lugar de utilizar este mtodo, normalmente se crea un objeto detector para el evento onLoadProgress. Otra observacin importante sobre este mtodo es que la primera llamada sincronizada a getProgress puede devolver bytesLoaded y bytesTotal del contenedor y no los valores del objeto solicitado externamente.
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); var image:MovieClip = container.createEmptyMovieClip("image", container.getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void { trace(target + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal); } mcLoader.addListener(listener); mcLoader.loadClip("http://www.w3.org/Icons/w3c_main.png", image); var interval:Object = new Object(); interval.id = setInterval(checkProgress, 100, mcLoader, image, interval); function checkProgress(mcLoader:MovieClipLoader, image:MovieClip, interval:Object):Void { trace(">> checking progress now with : " + interval.id);

MovieClipLoader

505

var progress:Object = mcLoader.getProgress(image); trace("bytesLoaded: " + progress.bytesLoaded + " bytesTotal: " + progress.bytesTotal); if(progress.bytesLoaded == progress.bytesTotal) { clearInterval(interval.id); } }

Vase tambin
loadClip (mtodo MovieClipLoader.loadClip), onLoadProgress (detector de eventos MovieClipLoader.onLoadProgress)

loadClip (mtodo MovieClipLoader.loadClip)


public loadClip(url:String, target:Object) : Boolean

Carga un archivo SWF o JPEG en un clip de pelcula en Flash Player mientras se reproduce el clip de pelcula original. Mediante este mtodo es posible mostrar varios archivos SWF a la vez y cambiar entre archivos SWF sin cargar otro documento HTML. La utilizacin del mtodo loadClip() en lugar de loadMovie() o MovieClip.loadMovie() ofrece diversas ventajas. Los siguientes controladores se implementan mediante el uso de un objeto detector. Active el detector utilizando MovieClipLoader.addListener(listenerObject) para registrarlo con la clase MovieClipLoader.

El controlador MovieClipLoader.onLoadStart se invoca cuando comienza la carga. El controlador MovieClipLoader.onLoadError se invoca si no es posible cargar el clip. El controlador MovieClipLoader.onLoadProgress se invoca mientras progresa el proceso de carga. El controlador MovieClipLoader.onLoadComplete se invoca cuando finaliza la descarga de un archivo, pero antes de que estn disponibles los mtodos y propiedades del clip de pelcula cargado. Se llama a este controlador antes que al controlador onLoadInit. El controlador MovieClipLoader.onLoadInit se invoca despus de que se hayan ejecutado las acciones del primer fotograma del clip para que pueda manipular el clip cargado. Se llama a este controlador antes que al controlador onLoadComplete. En la mayora de los casos, utilice el controlador onLoadInit.

Un archivo SWF o imagen cargada en un clip de pelcula hereda las propiedades de posicin, giro y escala del clip de pelcula. Puede utilizar la ruta de destino del clip de pelcula para emplear como destino la pelcula cargada.

506

Clases de ActionScript

Puede utilizar el mtodo loadClip() para cargar uno o varios archivos en un solo clip de pelcula o nivel; los objetos detectores MovieClipLoader se pasan a la instancia de clip de pelcula de destino que se est cargando como parmetros. Como alternativa, puede crear un objeto MovieClipLoader diferente para cada archivo que cargue. Utilice MovieClipLoader.unloadClip() para eliminar pelculas o imgenes cargadas con este mtodo o cancelar una operacin de carga que se encuentra en curso.
MovieClipLoader.getProgress() y MovieClipLoaderListener.onLoadProgress no informan de los valores reales de bytesLoaded y bytesTotal en el reproductor de edicin si los archivos son locales. Si utiliza la funcin Visor de anchos de banda del entorno de edicin, MovieClipLoader.getProgress() y MovieClipLoaderListener.onLoadProgress informarn de la descarga con la velocidad de descarga real, no con la velocidad de ancho de banda reducido que ofrece el Visor de anchos de banda.

Parmetros
url:String

- URL absoluto o relativo del archivo SWF o JPEG que se va a cargar. Una ruta relativa debe ser relativa al archivo SWF en el nivel 0. Las URL absolutas deben incluir la referencia al protocolo, como http:// o file:///. Los nombres de archivo no pueden incluir especificaciones de unidad de disco.

target:Object - Ruta de destino de un clip de pelcula, o un entero que especifica el nivel en

Flash Player en el que se cargar la pelcula. El clip de pelcula de destino se sustituye por el archivo SWF o la imagen que se carga. Valor devuelto
Boolean - Valor booleano. El valor devuelto es true si la solicitud de URL se ha enviado correctamente; de lo contrario, el valor devuelto es false.

Ejemplo Los ejemplos siguientes muestran cmo utilizar el mtodo MovieClipLoader.loadClip creando un controlador para el evento onLoadInit y realizando a continuacin la peticin. El siguiente cdigo debe situarse directamente en una accin de fotograma en una lnea de tiempo o pegarse en una clase que ample MovieClip. Cree un mtodo detector para el evento onLoadInit.
public function onLoadInit(mc:MovieClip):Void { trace("onLoadInit: " + mc); }

MovieClipLoader

507

Cree un MovieClip vaco y utilice MovieClipLoader para cargar una imagen.


var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.addListener(this); mcLoader.loadClip("YourImage.jpg", container); function onLoadInit(mc:MovieClip) { trace("onLoadInit: " + mc); }

Vase tambin
onLoadInit (detector de eventos MovieClipLoader.onLoadInit)

Constructor MovieClipLoader
public MovieClipLoader()

Crea un objeto MovieClipLoader que puede utilizar para implementar una serie de detectores que respondan a eventos mientras se est descargando un archivo SWF, JPEG, GIF o PNG. Ejemplo Vase MovieClipLoader.loadClip(). Vase tambin
addListener (mtodo MovieClipLoader.addListener), loadClip (mtodo MovieClipLoader.loadClip)

onLoadComplete (detector de eventos MovieClipLoader.onLoadComplete)


onLoadComplete = function(listenerObject, [target_mc]) {}

Se invoca cuando un archivo cargado con MovieClipLoader.loadClip() se ha descargado completamente. El valor de target_mc identifica al clip de pelcula para el que se ha realizado esta llamada. Esto resulta til si se estn cargando varios archivos con el mismo conjunto de detectores. Flash pasa este parmetro al cdigo, aunque no tiene que implementar todos los parmetros de la funcin de detector.

508

Clases de ActionScript

Cuando utilice los eventos onLoadComplete y onLoadInit con la clase MovieClipLoader, es importante entender la diferencia que existe al funcionar con el archivo SWF. La llamada al evento onLoadComplete se produce despus de que se cargue el archivo SWF o JPEG, pero antes de que la aplicacin se haya inicializado. En este punto no puede acceder a las propiedades y mtodos del clip de pelcula cargado y, por ello, no puede llamar a una funcin, desplazarse a un fotograma especfico, etc. En la mayora de los casos, es preferible utilizar el evento onLoadInit, al que se llama despus de que el contenido se haya cargado y est totalmente inicializado. Parmetros
listenerObject: target_mc:

- Objeto detector aadido con MovieClipLoader.addListener().

[opcional] - Clip de pelcula cargado por un mtodo MovieClipLoader.loadClip(). Este parmetro es opcional. Ejemplo

image_mc.

El ejemplo siguiente carga una imagen en una instancia de clip de pelcula denominada Los eventos onLoadInit y onLoadComplete se utilizan para determinar el tiempo que tarda en cargarse la imagen. La informacin se muestra en un campo de texto creado dinmicamente llamado timer_txt.

this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadStart = function(target_mc:MovieClip) { target_mc.startTimer = getTimer(); }; mclListener.onLoadComplete = function(target_mc:MovieClip) { target_mc.completeTimer = getTimer(); }; mclListener.onLoadInit = function(target_mc:MovieClip) { var timerMS:Number = target_mc.completeTimer-target_mc.startTimer; target_mc.createTextField("timer_txt", target_mc.getNextHighestDepth(), 0, target_mc._height, target_mc._width, 22); target_mc.timer_txt.text = "loaded in "+timerMS+" ms."; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.macromedia.com/images/shared/product_boxes/ 112x112/box_studio_112x112.jpg", image_mc);

MovieClipLoader

509

Vase tambin
addListener (mtodo MovieClipLoader.addListener), loadClip (mtodo MovieClipLoader.loadClip), onLoadStart (detector de eventos MovieClipLoader.onLoadStart), onLoadError (detector de eventos MovieClipLoader.onLoadError), onLoadInit (detector de eventos MovieClipLoader.onLoadInit)

onLoadError (detector de eventos MovieClipLoader.onLoadError)


onLoadError = function(target_mc, errorCode) {}

Se invoca cuando un archivo cargado con MovieClipLoader.loadClip() no se carga correctamente. Este detector se puede invocar por varios motivos (tambin si el servidor no funciona) si no se puede localizar el archivo o se produce un problema de seguridad. Realice una llamada a este detector sobre un objeto agregado con
MovieClipLoader.addListener().

El valor de target_mc identifica al clip de pelcula para el que se ha realizado esta llamada. Este parmetro es til cuando se cargan varios archivos con el mismo conjunto de detectores. En el caso del parmetro errorCode, se devuelve la cadena "URLNotFound" si no se ha realizado ninguna llamada a los detectores MovieClipLoader.onLoadStart o MovieClipLoader.onLoadComplete; por ejemplo, si el servidor no funciona, no se puede localizar el archivo. Se devuelve la cadena "LoadNeverCompleted" si se llam a MovieClipLoader.onLoadStart sin realizar una llamada a MovieClipLoader.onLoadComplete; por ejemplo, si se interrumpi la descarga debido una sobrecarga o una cada del servidor, etc. Parmetros
target_mc: errorCode:

- Clip de pelcula cargado mediante el mtodo MovieClipLoader.loadClip(). - Una cadena que explica el motivo del fallo.

Ejemplo El ejemplo siguiente muestra informacin en el panel Salida cuando se produce un error al cargar la imagen.
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String) { trace("ERROR!"); switch (errorCode) {

510

Clases de ActionScript

case 'URLNotFound' : trace("\t Unable to connect to URL: "+target_mc._url); break; case 'LoadNeverCompleted' : trace("\t Unable to complete download: "+target_mc); break; } }; mclListener.onLoadInit = function(target_mc:MovieClip) { trace("success"); trace(image_mcl.getProgress(target_mc).bytesTotal+" bytes loaded"); }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.fakedomain.com/images/bad_hair_day.jpg", image_mc);

Vase tambin
addListener (mtodo MovieClipLoader.addListener), loadClip (mtodo MovieClipLoader.loadClip), onLoadStart (detector de eventos MovieClipLoader.onLoadStart), onLoadComplete (detector de eventos MovieClipLoader.onLoadComplete)

onLoadInit (detector de eventos MovieClipLoader.onLoadInit)


onLoadInit = function([target_mc]) {}

Se invoca cuando se ejecutan las acciones del primer fotograma del clip cargado. Una vez que se haya invocado este detector, podr establecer propiedades, utilizar mtodos e interactuar con la pelcula descargada. Realice una llamada a este detector sobre un objeto agregado con MovieClipLoader.addListener(). El valor de target_mc identifica al clip de pelcula para el que se ha realizado esta llamada. Este parmetro es til cuando se cargan varios archivos con el mismo conjunto de detectores. Parmetrostarget_mc: MovieClip [opcional] Clip de pelcula cargado mediante el mtodo MovieClipLoader.loadClip(). Parmetros
target_mc:

[opcional] - Clip de pelcula cargado mediante el mtodo

MovieClipLoader.loadClip().

MovieClipLoader

511

Ejemplo El ejemplo siguiente carga una imagen en una instancia de clip de pelcula denominada image_mc. Los eventos onLoadInit y onLoadComplete se utilizan para determinar el tiempo que tarda en cargarse la imagen. La informacin se muestra en un campo de texto llamado timer_txt.
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadStart = function(target_mc:MovieClip) { target_mc.startTimer = getTimer(); }; mclListener.onLoadComplete = function(target_mc:MovieClip) { target_mc.completeTimer = getTimer(); }; mclListener.onLoadInit = function(target_mc:MovieClip) { var timerMS:Number = target_mc.completeTimer-target_mc.startTimer; target_mc.createTextField("timer_txt", target_mc.getNextHighestDepth(), 0, target_mc._height, target_mc._width, 22); target_mc.timer_txt.text = "loaded in "+timerMS+" ms."; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

El ejemplo siguiente comprueba si se ha cargado una pelcula en un clip de pelcula creado en tiempo de ejecucin:
this.createEmptyMovieClip("tester_mc", 1); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { trace("movie loaded"); } var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.yourserver.com/your_movie.swf", tester_mc);

Vase tambin
addListener (mtodo MovieClipLoader.addListener), loadClip (mtodo MovieClipLoader.loadClip), onLoadStart (detector de eventos MovieClipLoader.onLoadStart)

512

Clases de ActionScript

onLoadProgress (detector de eventos MovieClipLoader.onLoadProgress)


onLoadProgress = function([target_mc], loadedBytes, totalBytes) {}

Se invoca cada vez que se graba en el disco duro el contenido durante el proceso de carga (es decir, entre MovieClipLoader.onLoadStart y MovieClipLoader.onLoadComplete). Realice una llamada a este detector sobre un objeto agregado con MovieClipLoader.addListener(). Puede utilizar este mtodo para mostrar informacin sobre el progreso de la descarga utilizando los parmetros loadedBytes y totalBytes. El valor de target_mc identifica al clip de pelcula para el que se ha realizado esta llamada. Esto resulta til si se estn cargando varios archivos con el mismo conjunto de detectores. Nota: si intenta utilizar onLoadProgress en modo de prueba de pelcula con un archivo local que reside en el disco duro, ste no funcionar correctamente porque, en dicho modo, Flash Player carga los archivos locales ntegramente. Parmetrostarget_mc: MovieClip [optional] Clip de pelcula cargado mediante el mtodo MovieClipLoader.loadClip().
loadedBytes: Number totalBytes: Number

El nmero de bytes que se haban cargado al invocar al detector.

El nmero total de bytes del archivo que se est cargando.

Parmetros
target_mc:

[opcional] - Clip de pelcula cargado mediante el mtodo - El nmero de bytes que se haban cargado al invocar al detector.

MovieClipLoader.loadClip(). loadedBytes: totalBytes:

- El nmero total de bytes del archivo que se est cargando.

Ejemplo El ejemplo siguiente crea un clip de pelcula, un nuevo MovieClipLoader y un detector de eventos annimo. De forma peridica, muestra el progreso de un proceso de carga y notifica cuando ha finalizado la carga y el recurso queda disponible para ActionScript.
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); var mcLoader:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void { trace(target + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal); }

MovieClipLoader

513

listener.onLoadInit = function(target:MovieClip):Void { trace(target + ".onLoadInit"); } mcLoader.addListener(listener); mcLoader.loadClip("http://www.w3.org/Icons/w3c_main.png", container);

Vase tambin
addListener (mtodo MovieClipLoader.addListener), loadClip (mtodo MovieClipLoader.loadClip), getProgress (mtodo MovieClipLoader.getProgress)

onLoadStart (detector de eventos MovieClipLoader.onLoadStart)


onLoadStart = function([target_mc]) {}

Se invoca cuando una llamada a MovieClipLoader.loadClip() ha iniciado correctamente la descarga de un archivo. Realice una llamada a este detector sobre un objeto agregado con MovieClipLoader.addListener(). El valor de target_mc identifica al clip de pelcula para el que se ha realizado esta llamada. Este parmetro es til cuando se cargan varios archivos con el mismo conjunto de detectores. Parmetrostarget_mc: MovieClip [optional] Clip de pelcula cargado mediante el mtodo MovieClipLoader.loadClip(). Parmetros
target_mc:

[opcional] - Clip de pelcula cargado mediante el mtodo

MovieClipLoader.loadClip().

Ejemplo El ejemplo siguiente carga una imagen en una instancia de clip de pelcula denominada Los eventos onLoadInit y onLoadComplete se utilizan para determinar el tiempo que tarda en cargarse la imagen. La informacin se muestra en un campo de texto llamado timer_txt.
image_mc. this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadStart = function(target_mc:MovieClip) { target_mc.startTimer = getTimer(); }; mclListener.onLoadComplete = function(target_mc:MovieClip) { target_mc.completeTimer = getTimer(); }; mclListener.onLoadInit = function(target_mc:MovieClip) { var timerMS:Number = target_mc.completeTimer-target_mc.startTimer;

514

Clases de ActionScript

target_mc.createTextField("timer_txt", target_mc.getNextHighestDepth(), 0, target_mc._height, target_mc._width, 22); target_mc.timer_txt.text = "loaded in "+timerMS+" ms."; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

Vase tambin
addListener (mtodo MovieClipLoader.addListener), loadClip (mtodo MovieClipLoader.loadClip), onLoadError (detector de eventos MovieClipLoader.onLoadError), onLoadInit (detector de eventos MovieClipLoader.onLoadInit), onLoadComplete (detector de eventos MovieClipLoader.onLoadComplete)

removeListener (mtodo MovieClipLoader.removeListener)


public removeListener(listener:Object) : Boolean

Elimina el detector que se ha utilizado para recibir notificacin de la invocacin del controlador de eventos MovieClipLoader. No se recibirn ms mensajes de carga. Parmetros
listener:Object

- Un objeto detector que se aadi utilizando

MovieClipLoader.addListener().

Valor devuelto
Boolean

Ejemplo El ejemplo siguiente carga una imagen en un clip de pelcula y permite al usuario iniciar y detener el proceso de carga mediante dos botones llamados start_button y stop_button. Cuando el usuario inicia o detiene el proceso, se muestra informacin en el panel Salida.
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadStart = function(target_mc:MovieClip) { trace("\t onLoadStart"); };

MovieClipLoader

515

mclListener.onLoadComplete = function(target_mc:MovieClip) { trace("\t onLoadComplete"); }; mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String) { trace("\t onLoadError: "+errorCode); }; mclListener.onLoadInit = function(target_mc:MovieClip) { trace("\t onLoadInit"); start_button.enabled = true; stop_button.enabled = false; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); // start_button.clickHandler = function() { trace("Starting..."); start_button.enabled = false; stop_button.enabled = true; // image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/ image1.jpg", image_mc); }; stop_button.clickHandler = function() { trace("Stopping..."); start_button.enabled = true; stop_button.enabled = false; // image_mcl.removeListener(mclListener); }; stop_button.enabled = false;

Vase tambin
addListener (mtodo MovieClipLoader.addListener)

unloadClip (mtodo MovieClipLoader.unloadClip)


public unloadClip(target:Object) : Boolean

Elimina un clip de pelcula que se ha cargado mediante MovieClipLoader.loadClip(). Si enva este mtodo mientras se est cargando una pelcula, se invocar MovieClipLoader.onLoadError. Parmetros - Cadena o entero que se pasa a la llamada correspondiente a my_mcl.loadClip().
target:Object

516

Clases de ActionScript

Valor devuelto
Boolean

Ejemplo El ejemplo siguiente carga una imagen en un clip de pelcula llamado image_mc. Si hace clic en el clip de pelcula, ste se elimina y se muestra informacin en el panel Salida.
this.createEmptyMovieClip("image_mc", this.getNextHighestDepth()); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { target_mc._x = 100; target_mc._y = 100; target_mc.onRelease = function() { trace("Unloading clip..."); trace("\t name: "+target_mc._name); trace("\t url: "+target_mc._url); image_mcl.unloadClip(target_mc); }; }; var image_mcl:MovieClipLoader = new MovieClipLoader(); image_mcl.addListener(mclListener); image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

Vase tambin
loadClip (mtodo MovieClipLoader.loadClip), onLoadError (detector de eventos MovieClipLoader.onLoadError)

Number
Object | +-Number public class Number extends Object

La clase Number es un objeto envolvente sencillo para el tipo de datos Number. Puede manipular valores numricos simples utilizando los mtodos y propiedades asociados a la clase Number. Esta clase es idntica a la clase Number de JavaScript. Las propiedades de la clase Number son estticas, lo que significa que no necesita un objeto para utilizarlas, por lo que no es preciso que utilice el constructor.

Number

517

En el siguiente ejemplo, se llama al mtodo toString() de la clase Number, que devuelve la cadena 1234:
var myNumber:Number = new Number(1234); myNumber.toString();

El siguiente ejemplo asigna el valor de la propiedad MIN_VALUE a una variable declarada sin utilizar el constructor:
var smallest:Number = Number.MIN_VALUE;

Resumen de propiedades
Modificadores Propiedad
static MAX_VALUE:Number

Descripcin
El nmero ms grande que puede representarse (doble precisin IEEE-754). El nmero ms pequeo que puede representarse (doble precisin IEEE-754). El valor IEEE-754 que representa a Not A Number (NaN, no es un nmero). infinito negativo. infinito positivo.

static

MIN_VALUE:Number

static

NaN:Number

static

NEGATIVE_INFINITY:Nu Especifica el valor IEEE-754 que representa el mber

static

POSITIVE_INFINITY:Nu Especifica el valor IEEE-754 que representa el mber

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de constructores
Firma
Number(num:Object)

Descripcin
Crea un nuevo objeto Number.

Resumen de mtodos
Modificadores Firma
er) : String valueOf() : Number

Descripcin
Number especificado (myNumber). Devuelve el tipo de valor simple del objeto Number especificado.

toString(radix:Numb Devuelve la representacin de cadena del objeto

518

Clases de ActionScript

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

MAX_VALUE (propiedad Number.MAX_VALUE)


public static MAX_VALUE : Number

El nmero ms grande que puede representarse (doble precisin IEEE-754). Este nmero es aproximadamente 1.79e+308. Ejemplo El siguiente cdigo ActionScript muestra el nmero ms grande y el ms pequeo que puede representarse en el panel Salida.
trace("Number.MIN_VALUE = "+Number.MIN_VALUE); trace("Number.MAX_VALUE = "+Number.MAX_VALUE);

Este cdigo muestra los siguientes valores:


Number.MIN_VALUE = 4.94065645841247e-324 Number.MAX_VALUE = 1.79769313486232e+308

MIN_VALUE (propiedad Number.MIN_VALUE)


public static MIN_VALUE : Number

El nmero ms pequeo que puede representarse (doble precisin IEEE-754). Este nmero es aproximadamente 5e-324. Ejemplo El siguiente cdigo ActionScript muestra el nmero ms grande y el ms pequeo que puede representarse en el panel Salida en el archivo de registro.
trace("Number.MIN_VALUE = "+Number.MIN_VALUE); trace("Number.MAX_VALUE = "+Number.MAX_VALUE);

Este cdigo muestra los siguientes valores:


Number.MIN_VALUE = 4.94065645841247e-324 Number.MAX_VALUE = 1.79769313486232e+308

Number

519

NaN (propiedad Number.NaN)


public static NaN : Number

El valor IEEE-754 que representa a Not A Number (NaN, no es un nmero). Vase tambin
Funcin isNaN

NEGATIVE_INFINITY (propiedad Number.NEGATIVE_INFINITY)


public static NEGATIVE_INFINITY : Number

Especifica el valor IEEE-754 que representa el infinito negativo. El valor de esta propiedad es el mismo que el de la constante -Infinity. Infinito negativo es un valor numrico especial que se devuelve cuando una operacin o funcin matemtica devuelve un valor negativo mayor de lo que es posible representar. Ejemplo Este ejemplo compara el resultado de dividir los siguientes valores.
var posResult:Number = 1/0; if (posResult == Number.POSITIVE_INFINITY) { trace("posResult = "+posResult); // salida: posResult = Infinity } var negResult:Number = -1/0; if (negResult == Number.NEGATIVE_INFINITY) { trace("negResult = "+negResult); // salida: negResult = -Infinity

Constructor Number
public Number(num:Object)

Crea un nuevo objeto Number. El nuevo constructor new Number se utiliza principalmente como marcador de posicin. Un objeto Number no es lo mismo que la funcin Number() que convierte un parmetro en un valor simple. Parmetros
num:Object - El valor numrico del objeto Number que se crea o un valor para convertir a un

nmero. Si no se especifica value, el valor predeterminado es 0.

520

Clases de ActionScript

Ejemplo El cdigo siguiente construye nuevos objetos Number:


var n1:Number = new Number(3.4); var n2:Number = new Number(-10);

Vase tambin
toString (mtodo Number.toString), valueOf (mtodo Number.valueOf)

POSITIVE_INFINITY (propiedad Number.POSITIVE_INFINITY)


public static POSITIVE_INFINITY : Number

Especifica el valor IEEE-754 que representa el infinito positivo. El valor de esta propiedad es el mismo que el de la constante Infinity. Infinito positivo es un valor numrico especial que se devuelve cuando una operacin o funcin matemtica devuelve un valor positivo mayor de lo que es posible representar. Ejemplo Este ejemplo compara el resultado de dividir los siguientes valores.
var posResult:Number = 1/0; if (posResult == Number.POSITIVE_INFINITY) { trace("posResult = "+posResult); // salida: posResult = Infinity } var negResult:Number = -1/0; if (negResult == Number.NEGATIVE_INFINITY) { trace("negResult = "+negResult); // salida: negResult = -Infinity

toString (mtodo Number.toString)


public toString(radix:Number) : String

Devuelve la representacin de cadena del objeto Number especificado (myNumber). Parmetros


radix:Number - Especifica la base numrica (de 2 a 36) para utilizar en la conversin nmero

a cadena. Si no especifica el parmetro radix, el valor predeterminado es 10. Valor devuelto


String

- Una cadena.

Number

521

Ejemplo El ejemplo siguiente utiliza 2 y 8 para el parmetro radix y devuelve una cadena que contiene la representacin correspondiente del nmero 9:
var myNumber:Number = new Number(9); trace(myNumber.toString(2)); // salida: 1001 trace(myNumber.toString(8)); // salida: 11

El ejemplo siguiente da como resultado un valor hexadecimal.


var r:Number = new Number(250); var g:Number = new Number(128); var b:Number = new Number(114); var rgb:String = "0x"+ r.toString(16)+g.toString(16)+b.toString(16); trace(rgb); // salida: rgb:0xFA8072 (equivalente hexadecimal del color 'salmn')

valueOf (mtodo Number.valueOf)


public valueOf() : Number

Devuelve el tipo de valor simple del objeto Number especificado. Valor devuelto
Number

- Una cadena.

Ejemplo El ejemplo siguiente da como resultado un valor simple del objeto numSocks.
var numSocks = new Number(2); trace(numSocks.valueOf()); // salida: 2

522

Clases de ActionScript

Object
Object public class Object

La clase Object se encuentra en la raz de la jerarqua de clases de ActionScript. Esta clase contiene un pequeo subconjunto de las funciones proporcionadas por la clase Object de JavaScript. Resumen de propiedades
Modificadores Propiedad
constructor:Object

Descripcin
Referencia a la funcin constructora para una instancia de objeto determinada. Hace referencia a la propiedad prototype de la clase (ActionScript 2.0) o funcin constructora (ActionScript 1.0) utilizada para crear el objeto. Una referencia a la superclase de una clase u objeto de funcin. Una referencia a una funcin definida por el usuario que se invoca si el cdigo ActionScript hace referencia a una propiedad o un mtodo no definido.

__proto__:Object

static

prototype:Object

__resolve:Object

Resumen de constructores
Firma
Object()

Descripcin
Crea un objeto Object y almacena una referencia al mtodo constructor del objeto en la propiedad constructor del objeto.

Resumen de mtodos
Modificadores Firma
ring, getter:Function, setter:Function) : Boolean hasOwnProperty(name Indica si un objeto tiene definida una propiedad :String) : Boolean

Descripcin

addProperty(name:St Crea una propiedad getter/setter.

especificada.

Object

523

Modificadores Firma
e(name:String) : Boolean

Descripcin
enumerable.

isPropertyEnumerabl Indica si existe la propiedad especificada y si es

isPrototypeOf(theCl Indica si hay una instancia de la clase Object en la ass:Object) : Boolean static

cadena de prototipo del objeto especificado como un argumento. Object de ActionScript.

registerClass(name: Asocia un smbolo de clip de pelcula a una clase String, theClass:Function) : Boolean toString() : String Convierte el objeto especificado en una cadena y

devuelve dicha cadena.


unwatch(name:String Elimina un punto de observacin creado por ) : Boolean valueOf() : Object watch(name:String, callback:Function, [userData:Object]) : Boolean

Object.watch(). Devuelve el valor simple del objeto especificado. Registra un controlador de eventos que debe invocarse cuando cambie una propiedad especificada de un objeto de ActionScript.

addProperty (mtodo Object.addProperty)


public addProperty(name:String, getter:Function, setter:Function) : Boolean

Crea una propiedad getter/setter. Cuando Flash lee una propiedad getter/setter (captador/ definidor), invoca la funcin get y el valor devuelto por la funcin se convierte en un valor de name. Cuando Flash escribe una propiedad getter/setter (captador/definidor), invoca la funcin set y le pasa el nuevo valor como parmetro. Si existe una propiedad con ese nombre concreto, la nueva propiedad lo sobrescribe. La funcin "get" es una funcin que carece de parmetros. El valor devuelto puede ser de cualquier tipo. El tipo de valor puede cambiar segn la invocacin. El valor devuelto se trata como el valor actual de la propiedad. La funcin "set" es una funcin que acepta un parmetro: el nuevo valor de la propiedad. Por ejemplo, si la propiedad x se asigna mediante la sentencia x = 1, la funcin set recibir el parmetro 1 del tipo Number (nmero). El valor devuelto por la funcin set no se tiene en cuenta.

524

Clases de ActionScript

Puede aadir propiedades de captador/definidor a los objetos prototipo. Si aade una propiedad de captador/definidor a un objeto prototipo, todas las instancias del objeto que heredan el objeto prototipo heredarn la propiedad de captador/definidor. Esto permite aadir una propiedad de captador/definidor a una ubicacin, el objeto prototipo, y aplicarla a todas las instancias de una clase (como si se agregaran mtodos a objetos prototipo). Si se invoca una funcin get/set para una propiedad de getter/setter de un objeto prototipo heredado, la referencia que se pasa a la funcin getter/setter ser el objeto referenciado originalmente, no el objeto prototipo. Si se invoca incorrectamente, puede que Object.addProperty() falle y muestre un error. En la siguiente tabla se describen los errores que pueden tener lugar:
Situacin de error
por ejemplo, una cadena vaca.
getter no es un objeto de funcin vlido. setter no es un objeto de funcin vlido.

Qu ocurre

name no es un nombre de propiedad vlido; Devuelve false y la propiedad no se aade.

Devuelve false y la propiedad no se aade. Devuelve false y la propiedad no se aade.

Parmetros
name:String

- Una cadena; el nombre de la propiedad del objeto que se va a crear.

- La funcin que se invoca para recuperar el valor de la propiedad; este parmetro es un objeto Function.
getter:Function setter:Function - La funcin que se invoca para establecer el valor de la propiedad; este parmetro es un objeto Function. Si se pasa el valor null para este parmetro, la propiedad es de slo lectura.

Valor devuelto
Boolean

- Valor booleano: true si la propiedad se crea correctamente; false en caso contrario.

Object

525

Ejemplo En el ejemplo siguiente, un objeto tiene dos mtodos internos: setQuantity() y getQuantity(). Cuando se define o recupera, se puede utilizar una propiedad, bookcount, para invocar estos mtodos. Un tercer mtodo interno, getTitle(), devuelve un valor de slo lectura que est asociado con la propiedad bookname. Cuando un script recupera el valor de myBook.bookcount, el intrprete de ActionScript invoca automticamente myBook.getQuantity(). Si un script modifica el valor de myBook.bookcount, el intrprete invoca myObject.setQuantity(). Como la propiedad bookname no especifica una funcin set, los intentos de modificar la propiedad bookname no se tienen en cuenta.
function Book() { this.setQuantity = function(numBooks:Number):Void { this.books = numBooks; }; this.getQuantity = function():Number { return this.books; }; this.getTitle = function():String { return "Catcher in the Rye"; }; this.addProperty("bookcount", this.getQuantity, this.setQuantity); this.addProperty("bookname", this.getTitle, null); } var myBook = new Book(); myBook.bookcount = 5; trace("You ordered "+myBook.bookcount+" copies of "+myBook.bookname); // salida: You ordered 5 copies of Catcher in the Rye

Aunque el ejemplo anterior funciona, las propiedades bookcount y bookname se aaden a cada instancia del objeto Book, lo que exige disponer de dos propiedades para cada instancia del objeto. La inclusin de muchas propiedades, como bookcount y bookname,, en una clase puede conllevar un gran consumo de memoria. Como solucin puede agregar las propiedades a Book.prototype de modo que las propiedades bookcount y bookname slo existan en un lugar. Sin embargo, produce el mismo efecto que el cdigo del ejemplo, que aadi bookcount y bookname directamente a cada instancia. Si se intenta acceder a alguna de estas propiedades en una instancia Book, la ausencia de la propiedad har que se ascienda por la cadena de prototipo hasta que se encuentren las versiones definidas en Book.prototype. En el ejemplo siguiente se muestra la forma de aadir propiedades a Book.prototype:
function Book() {} Book.prototype.setQuantity = function(numBooks:Number):Void { this.books = numBooks; }; Book.prototype.getQuantity = function():Number { return this.books; };

526

Clases de ActionScript

Book.prototype.getTitle = function():String { return "Catcher in the Rye"; }; Book.prototype.addProperty("bookcount", Book.prototype.getQuantity, Book.prototype.setQuantity); Book.prototype.addProperty("bookname", Book.prototype.getTitle, null); var myBook = new Book(); myBook.bookcount = 5; trace("You ordered "+myBook.bookcount+" copies of "+myBook.bookname);

En el ejemplo siguiente se muestra cmo utilizar las funciones getter y setter implcitas que estn disponibles en ActionScript 2.0. En lugar de definir la funcin Book y editar Book.prototype, la clase Book se define en un archivo externo denominado Book.as. El cdigo siguiente debe encontrarse en un archivo externo separado, denominado Book.as, que contiene esta definicin de clase exclusivamente y reside en la ruta de clases de la aplicacin Flash:
class Book { var books:Number; function set bookcount(numBooks:Number):Void { this.books = numBooks; } function get bookcount():Number { return this.books; } function get bookname():String { return "Catcher in the Rye"; } }

Luego se puede incluir el cdigo siguiente en un archivo FLA y seguir funcionando de la misma manera que en los ejemplos anteriores:
var myBook:Book = new Book(); myBook.bookcount = 5; trace("You ordered "+myBook.bookcount+" copies of "+myBook.bookname);

Vase tambin
Sentencia get, Sentencia set

Object

527

constructor (propiedad Object.constructor)


public constructor : Object

Referencia a la funcin constructora para una instancia de objeto determinada. La propiedad constructor se asigna automticamente a todos los objetos cuando se crean utilizando el constructor de la clase Object. Ejemplo El ejemplo siguiente es una referencia a la funcin constructora del objeto myObject.
var my_str:String = new String("sven"); trace(my_str.constructor == String); //salida: true

Si utiliza el operador instanceof, tambin puede determinar si un objeto pertenece a una clase especificada:
var my_str:String = new String("sven"); trace(my_str instanceof String); //salida: true

Sin embargo, en el ejemplo siguiente la propiedad Object.constructor convierte los tipos de datos simples (como el literal de cadena que aparece aqu) en objetos envolventes. El operador instanceof no realiza ninguna conversin, como se aprecia en el ejemplo siguiente:
var my_str:String = "sven"; trace(my_str.constructor == String); //salida: true trace(my_str instanceof String); //salida: false

Vase tambin
Operador instanceof

hasOwnProperty (mtodo Object.hasOwnProperty)


public hasOwnProperty(name:String) : Boolean

Indica si un objeto tiene definida una propiedad especificada. Este mtodo devuelve true si el objeto de destino tiene una propiedad que coincide con la cadena especificada por el parmetro name, y false en caso contrario. Este mtodo no comprueba la cadena de prototipo del objeto y devuelve true solamente cuando la propiedad existe en el propio objeto. Parmetros
name:String

528

Clases de ActionScript

Valor devuelto
Boolean - Valor booleano: true si el objeto de destino tiene la propiedad especificada por el parmetro name, y false en caso contrario.

isPropertyEnumerable (mtodo Object.isPropertyEnumerable)


public isPropertyEnumerable(name:String) : Boolean

Indica si existe la propiedad especificada y si es enumerable. Si su valor es true, la propiedad existe y puede enumerarse en un bucle for..in. La propiedad debe existir en el objeto de destino porque este mtodo no comprueba la cadena de prototipo del objeto de destino. Aunque las propiedades que se crean son enumerables, las propiedades incorporadas no suelen ser enumerables. Parmetros
name:String

Valor devuelto
Boolean

- Valor booleano: true si la propiedad especificada por el parmetro name es enumerable. Ejemplo En el ejemplo siguiente se crea un objeto genrico, se le aade una propiedad y luego se comprueba si el objeto es enumerable. A modo de comparacin, en el ejemplo tambin se muestra que una propiedad incorporada, Array.length, no es enumerable.

var myObj:Object = new Object(); myObj.prop1 = "hello"; trace(myObj.isPropertyEnumerable("prop1")); // Salida: true var myArray = new Array(); trace(myArray.isPropertyEnumerable("length")); // Salida: false

Vase tambin
Sentencia for..in

Object

529

isPrototypeOf (mtodo Object.isPrototypeOf)


public isPrototypeOf(theClass:Object) : Boolean

Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como un argumento. Este mtodo devuelve true si el objeto est presente en la cadena de prototipo del objeto especificado por el parmetro theClass. Devuelve false no slo cuando el objeto de destino no est presente en la cadena de prototipo del objeto theClass, sino tambin cuando el argumento theClass no es un objeto. Parmetros
theClass:Object

Valor devuelto
Boolean - Valor booleano: true si el objeto est presente en la cadena de prototipo del objeto especificado por el parmetro theClass, y false en caso contrario.

Constructor Object
public Object()

Crea un objeto Object y almacena una referencia al mtodo constructor del objeto en la propiedad constructor del objeto. Ejemplo En el ejemplo siguiente se crea un objeto genrico denominado myObject:
var myObject:Object = new Object();

__proto__ (propiedad Object.__proto__)


public __proto__ : Object

Hace referencia a la propiedad prototype de la clase (ActionScript 2.0) o funcin constructora (ActionScript 1.0) utilizada para crear el objeto. La propiedad __proto__ se asigna automticamente a todos los objetos cuando se crean. El intrprete de ActionScript utiliza la propiedad __proto__ para acceder a la propiedad prototype de la clase o funcin constructor del objeto con el fin de averiguar las propiedades y mtodos que hereda el objeto de su superclase.

530

Clases de ActionScript

Ejemplo En el ejemplo siguiente se crea una clase denominada Shape y una subclase de Shape con el nombre Circle.
// Forma Shape definida en el archivo externo Shape.as class Shape { function Shape() {} } // Clase Circle definida en el archivo externo Circle.as class Circle extends Shape{ function Circle() {} }

La clase Circle se puede utilizar para crear dos instancias de Circle:


var oneCircle:Circle = new Circle(); var twoCircle:Circle = new Circle();

En las siguientes sentencias trace se muestra que la propiedad __proto_ de ambas instancias hace referencia a la propiedad prototype de la clase Circle.
trace(Circle.prototype == oneCircle.__proto__); // Salida: true trace(Circle.prototype == twoCircle.__proto__); // Salida: true

Vase tambin
prototype (propiedad Object.prototype)

prototype (propiedad Object.prototype)


public static prototype : Object

Una referencia a la superclase de una clase u objeto de funcin. La propiedad prototype se crea y asocia automticamente a cualquier clase u objeto de funcin creado. Esta propiedad se considera esttica porque es especfica de la clase o funcin que ha creado. Por ejemplo, si crea una clase personalizada, todas las instancias de la clase compartirn el valor de la propiedad prototype y slo ser accesible como propiedad de clase. Aunque las instancias de la clase personalizada no tienen acceso directo a la propiedad prototype, pueden acceder a ella a travs de la propiedad __proto__. Ejemplo En el ejemplo siguiente se crea una clase denominada Shape y una subclase de Shape con el nombre Circle.
// Forma Shape definida en el archivo externo Shape.as class Shape { function Shape() {} }

Object

531

// Clase Circle definida en el archivo externo Circle.as class Circle extends Shape{ function Circle() {} }

La clase Circle se puede utilizar para crear dos instancias de Circle:


var oneCircle:Circle = new Circle(); var twoCircle:Circle = new Circle();

En la siguiente sentencia trace se muestra que la propiedad prototype de la clase Circle seala a su superclase Shape. El identificador Shape hace referencia a la funcin constructora de la clase Shape.
trace(Circle.prototype.constructor == Shape); // Salida: true

La siguiente sentencia trace muestra cmo utilizar juntas las propiedades prototype y para subir dos niveles en la jerarqua de herencia (o cadena de prototipo). La propiedad Circle.prototype.__proto__ contiene una referencia a la superclase de la clase Shape.
__proto__ trace(Circle.prototype.__proto__ == Shape.prototype); // Salida: true

Vase tambin
__proto__ (propiedad Object.__proto__)

registerClass (mtodo Object.registerClass)


public static registerClass(name:String, theClass:Function) : Boolean

Asocia un smbolo de clip de pelcula a una clase Object de ActionScript. Si un smbolo no existe, Flash crea una asociacin entre un identificador de cadena y una clase de objeto. Cuando se coloca una instancia del smbolo de clip de pelcula especificado en la lnea de tiempo, sta se registra en la clase especificada por el parmetro theClass, no en la clase MovieClip. Cuando se crea una instancia del smbolo de clip de pelcula especificado mediante MovieClip.attachMovie() o MovieClip.duplicateMovieClip(), sta se registra en la clase especificada por theClass, no en la clase MovieClip. Si theClass tiene el valor null, este mtodo elimina cualquier definicin de clase de ActionScript asociada al smbolo de clip de pelcula o identificador de clase especificado. En el caso de smbolos de clip de pelcula, las instancias existentes del clip de pelcula permanecern sin cambios, aunque las nuevas instancias del smbolo se asociarn a la clase predeterminada MovieClip. Si ya hay un smbolo registrado en una clase, este mtodo lo reemplazar por el nuevo registro.

532

Clases de ActionScript

Si la lnea de tiempo coloca una instancia de clip de pelcula o sta se crea utilizando attachMovie() o duplicateMovieClip(), ActionScript invocar el constructor de la clase correspondiente con la palabra clave this apuntando al objeto. La funcin constructora se invoca sin parmetros. Si utiliza este mtodo para registrar un clip de pelcula en una clase de ActionScript distinta de MovieClip, el smbolo de clip de pelcula no heredar los mtodos, propiedades y eventos de la clase MovieClip incorporada, a no ser que incluya la clase MovieClip en una cadena de prototipo de la nueva clase. El siguiente cdigo crea una nueva clase de ActionScript denominada theClass que hereda las propiedades de la clase MovieClip:
theClass.prototype = new MovieClip();

Parmetros
name:String

- Cadena; el identificador de vinculacin del smbolo del clip de pelcula o el identificador de cadena de la clase ActionScript.

- Una referencia a la funcin constructora de la clase ActionScript o null para anular el registro del smbolo.
theClass:Function

Valor devuelto
Boolean - Valor booleano: si el registro de la clase se realiza correctamente, se devuelve el valor true; false

en caso contrario.

Vase tambin
attachMovie (mtodo MovieClip.attachMovie), duplicateMovieClip (mtodo MovieClip.duplicateMovieClip)

__resolve (propiedad Object.__resolve)


public __resolve : Object

Una referencia a una funcin definida por el usuario que se invoca si el cdigo ActionScript hace referencia a una propiedad o un mtodo no definido. Si el cdigo ActionScript hace referencia a una propiedad o mtodo no definido de un objeto, Flash Player determinar si se ha definido la propiedad __resolve del objeto. Si se ha definido __resolve, se ejecutar la funcin a la que hace referencia y se pasar a ella el nombre de la propiedad o mtodo no definido. Esto permite proporcionar de manera programtica valores para propiedades no definidas y sentencias para mtodos no definidos y hacer que parezca como si las propiedades o los mtodos estuvieran realmente definidos. Esta propiedad resulta til para permitir una comunicacin altamente transparente entre el cliente y el servidor y es la forma recomendada de invocar mtodos de servidor.

Object

533

Ejemplo Los ejemplos siguientes forman una secuencia basada en el primer ejemplo e ilustran cinco usos distintos de la propiedad __resolve. Para facilitar la comprensin, las sentencias clave que difieren del uso anterior aparecen en negrita. Sintaxis 1: en el ejemplo siguiente, __resolve se utiliza para crear un objeto en el que cada propiedad no definida devuelve el valor "Hello, world!".
// crea la instancia de un nuevo objeto var myObject:Object = new Object(); // define la funcin __resolve myObject.__resolve = function (name) { return "Hello, world!"; }; trace (myObject.property1); // salida: Hello, world! trace (myObject.property2); // salida: Hello, world!

Sintaxis 2: en el ejemplo siguiente se utiliza __resolve como functor; es decir, como funcin que genera funciones. Mediante __resolve, las llamadas de mtodo no definido se redirigen a una funcin genrica denominada myFunction.
// crea la instancia de un nuevo objeto var myObject:Object = new Object(); // define una funcin para que llame a __resolve myObject.myFunction = function (name) { trace("Method " + name + " was called"); }; // define la funcin __resolve myObject.__resolve = function (name) { return function () { this.myFunction(name); }; }; // prueba __resolve con nombres de mtodos undefined myObject.someMethod(); // salida: Method someMethod was called myObject.someOtherMethod(); //salida: Method someOtherMethod was called

Sintaxis 3: el ejemplo siguiente se basa en el anterior, pero ofrece la posibilidad de guardar en el cach los mtodos resueltos. Cuando los mtodos se guardan en el cach, slo se llama a __resolve una vez por cada mtodo de inters. Esto permite la construccin diferida de mtodos de objeto. La construccin diferida es una tcnica de optimizacin que aplaza la creacin, o construccin, de mtodos hasta el momento en que se utiliza un mtodo por primera vez.
// crea la instancia de un nuevo objeto var myObject:Object = new Object(); // define una funcin para que llame a __resolve

534

Clases de ActionScript

myObject.myFunction = function (name) { trace("Method " + name + " was called"); }; // define la funcin __resolve myObject.__resolve = function (name) { trace("Resolve called for "+name); // para comprobar cundo se llama a __resolve // No slo se llama a la funcin: tambin se guarda una referencia a ella var f:Function = function () { this.myFunction(name); }; // crea un nuevo mtodo de objeto y asignarle la referencia this[name] = f; // devuelve la referencia return f; }; // prueba __resolve con nombres de mtodos undefined // slo se llamar a __resolve una vez para cada nombre del mtodo myObject.someMethod(); // llama a __resolve myObject.someMethod(); // no llama a __resolve porque ahora es defined myObject.someOtherMethod(); // llama a __resolve myObject.someOtherMethod(); // no llama a __resolve; ya no es undefined

Sintaxis 4: en el ejemplo siguiente, basado en el anterior, se reserva un nombre de mtodo, onStatus(), para uso local con el fin de evitar que se resuelva de la misma forma que otras propiedades no definidas. El cdigo que se aade aparece en negrita.
// crea la instancia de un nuevo objeto var myObject:Object = new Object(); // define una funcin para que llame a __resolve myObject.myFunction = function (name) { trace("Method " + name + " was called"); }; // define la funcin __resolve myObject.__resolve = function (name) { // reserva el nombre "onStatus" para uso local if (name == "onStatus") { return undefined; } trace("Resolve called for "+name); // para comprobar cundo se llama a __resolve // No slo se llama a la funcin: tambin se guarda una referencia a ella var f:Function = function () { this.myFunction(name); }; // crea un nuevo mtodo de objeto y asignarle la referencia this[name] = f; // devuelve la referencia return f; };

Object

535

// prueba __resolve con el nombre de mtodo "onStatus" trace(myObject.onStatus("hello")); // salida: undefined

Sintaxis 5: el ejemplo siguiente est basado en el anterior, pero en este caso se crea un functor que acepta parmetros. Adems de hacer uso extensivo del objeto arguments, en este ejemplo se utilizan varios mtodos de la clase Array.
// crea la instancia de un nuevo objeto var myObject:Object = new Object(); // define una funcin genrica para que llame a __resolve myObject.myFunction = function (name) { arguments.shift(); trace("Method " + name + " was called with arguments: " + arguments.join(',')); }; // define la funcin __resolve myObject.__resolve = function (name) { // reserva el nombre "onStatus" para uso local if (name == "onStatus") { return undefined; } var f:Function = function () { arguments.unshift(name); this.myFunction.apply(this, arguments); }; // crea un nuevo mtodo de objeto y asignarle la referencia this[name] = f; // devuelve la referencia a la funcin return f; }; // prueba __resolve con nombres de mtodos undefined con parmetros myObject.someMethod("hello"); // salida: Method someMethod was called with arguments: hello myObject.someOtherMethod("hello","world"); // salida: Method someOtherMethod was called with arguments: hello,world

Vase tambin
arguments, Array

536

Clases de ActionScript

toString (mtodo Object.toString)


public toString() : String

Convierte el objeto especificado en una cadena y devuelve dicha cadena. Valor devuelto
String

- Una cadena.

Ejemplo En este ejemplo se muestra el valor que se devuelve para toString() en un objeto genrico:
var myObject:Object = new Object(); trace(myObject.toString()); // salida: [object Object]

Este mtodo se puede sustituir para que se devuelva un valor ms significativo. En los ejemplos siguientes se muestra que este mtodo se ha sustituido para las clases incorporadas Date, Array y Number:
// Date.toString() devuelve la fecha y hora actual var myDate:Date = new Date(); trace(myDate.toString()); // salida: [hora y fecha actual] // Array.toString() devuelve el contenido de la matriz como una cadena delimitada por comas var myArray:Array = new Array("one", "two"); trace(myArray.toString()); // salida: one,two // Number.toString() devuelve el valor numrico como una cadena // Como trace() no dir si el valor es una cadena o un nmero // tambin utilizaremos typeof() para probar si funciona toString(). var myNumber:Number = 5; trace(typeof (myNumber)); // salida: nmero trace(myNumber.toString()); // salida: 5 trace(typeof (myNumber.toString())); // salida: cadena

En el ejemplo siguiente se muestra cmo sustituir toString() en una clase personalizada. Primero cree un archivo de texto denominado Vehicle.as que slo contenga la definicin de la clase Vehicle y luego colquelo en la carpeta Classes dentro de la carpeta Configuration.
// contenido de Vehicle.as class Vehicle { var numDoors:Number; var color:String; function Vehicle(param_numDoors:Number, param_color:String) { this.numDoors = param_numDoors; this.color = param_color; } function toString():String { var doors:String = "door";

Object

537

if (this.numDoors > 1) { doors += "s"; } return ("A vehicle that is " + this.color + " and has " + this.numDoors + " " + doors); } } // cdigo para insertar en un archivo FLA var myVehicle:Vehicle = new Vehicle(2, "red"); trace(myVehicle.toString()); // salida: A vehicle that is red and has 2 doors // por motivos de comparacin, esto es una llamada a valueOf() // no hay valores primitivos de myVehicle, por lo que se devuelve el objeto // con la misma salida que toString(). trace(myVehicle.valueOf()); // salida: A vehicle that is red and has 2 doors

unwatch (mtodo Object.unwatch)


public unwatch(name:String) : Boolean

Elimina un punto de observacin creado por Object.watch(). Este mtodo devuelve el valor true si el punto de observacin se elimina correctamente, y false en caso contrario. Parmetros
name:String

- Una cadena; el nombre de la propiedad del objeto que debera dejar de

observarse. Valor devuelto


Boolean

- Valor booleano: true si el punto de observacin se elimina correctamente; false en caso contrario. Ejemplo Consulte el ejemplo de Object.watch().

Vase tambin
watch (mtodo Object.watch), addProperty (mtodo Object.addProperty)

538

Clases de ActionScript

valueOf (mtodo Object.valueOf)


public valueOf() : Object

Devuelve el valor simple del objeto especificado. Si el objeto no tiene un valor simple, se devuelve el objeto. Valor devuelto
Object

- El valor simple del objeto especificado o el propio objeto.

Ejemplo En el ejemplo siguiente se muestra el valor devuelto de valueOf() para un objeto genrico (que no tiene un valor simple) y se compara con el valor devuelto de toString(). En primer lugar, cree un objeto genrico: Despus, cree un nuevo objeto Date establecido en February 1, 2004, 8:15 AM. El mtodo toString() devuelve la hora actual con un formato legible. El mtodo valueOf() devuelve el valor simple en milisegundos. Finalmente, cree un nuevo objeto Array que contenga dos elementos sencillos. Tanto toString() como valueOf() devuelven el mismo valor: one,two:
// Crea un objeto genrico var myObject:Object = new Object(); trace(myObject.valueOf()); // salida: [object Object] trace(myObject.toString()); // salida: [object Object]

En los ejemplos siguientes se muestran los valores devueltos para las clases incorporadas Date y Array, y se comparan con los valores devueltos de Object.toString():
// Crea un nuevo objeto Date establecido en 1 de febrero de 2004, 8:15 AM // El mtodo toString() devuelve la hora actual en formato legible para el usuario // El mtodo valueOf() devuelve el valor simple en milisegundos var myDate:Date = new Date(2004,01,01,8,15); trace(myDate.toString()); // salida: Sun Feb 1 08:15:00 GMT-0800 2004 trace(myDate.valueOf()); // salida: 1075652100000 // Crea un nuevo objeto Array que contenga dos elementos sencillos // En este caso, tanto toString() como valueOf() devuelven el mismo valor: one,two var myArray:Array = new Array("one", "two"); trace(myArray.toString()); // salida: one,two trace(myArray.valueOf()); // salida: one,two

En el ejemplo de Object.toString() puede encontrar un ejemplo del valor devuelto de Object.valueOf() para una clase personalizada que sustituye a toString(). Vase tambin
toString (mtodo Object.toString)

Object

539

watch (mtodo Object.watch)


public watch(name:String, callback:Function, [userData:Object]) : Boolean

Registra un controlador de eventos que debe invocarse cuando cambie una propiedad especificada de un objeto de ActionScript. Cuando cambia la propiedad, se invoca el controlador de eventos con myObject como objeto contenedor. Puede utilizar la sentencia return de la definicin del mtodo callback para modificar el valor de la propiedad que est observando. El valor devuelto por el mtodo callback se asigna a la propiedad del objeto observado. El valor de devolucin que elija depender de si desea controlar, modificar o evitar cambios en la propiedad:

Si simplemente est controlando la propiedad, devuelva el parmetro newVal. Si est modificando el valor de la propiedad, devuelva su propio valor. Si desea evitar cambios en la propiedad, devuelva el parmetro oldVal.

Si el mtodo callback que usted define no tiene una sentencia return, se asignar el valor undefined. a la propiedad del objeto observado. Un punto de observacin puede filtrar (o convertir en nula) la asignacin de valor mediante la devolucin de un newval modificado (u oldval). Si elimina una propiedad para la que se ha establecido un punto de observacin, el punto de observacin no desaparecer. Si posteriormente vuelve a crear la propiedad, el punto de observacin seguir surtiendo efecto. Para eliminar un punto de observacin, utilice el mtodo Object.unwatch. Slo puede registrarse un punto de observacin en una propiedad. Las posteriores llamadas a Object.watch() en la misma propiedad reemplazan al punto de observacin original. El mtodo Object.watch() se comporta de manera similar a la funcin Object.watch() en JavaScript 1.2 y posterior. La diferencia principal es el parmetro userData que Flash aade a Object.watch() y que Netscape Navigator no admite. Puede pasar el parmetro userData al controlador de eventos y utilizarlo en el controlador de eventos. El mtodo Object.watch() no puede observar propiedades getter/setter. Las propiedades getter/setter operan mediante evaluacin diferida - el valor de la propiedad no se determina hasta que se consulta realmente la propiedad. La evaluacin diferida suele ser eficaz porque la propiedad no se actualiza constantemente; por contra, se evala cuando es necesaria. No obstante, Object.watch() necesita evaluar una propiedad para determinar si debe invocarse la funcin callback. Para trabajar con una propiedad getter/setter, Object.watch() necesita evaluar la propiedad constantemente, lo cual no resulta eficaz. Generalmente, las propiedades predefinidas de ActionScript, como _x, _y, _width y _height, son propiedades getter/setter que no pueden observarse con Object.watch().

540

Clases de ActionScript

Parmetros
name:String:

Una cadena; el nombre de la propiedad del objeto que se va a observar.

callback:Function: La funcin que se invoca cuando la propiedad observada cambia. Este parmetro es un objeto de funcin, en lugar de un nombre de funcin como una cadena. El formato de callback es callback(prop, oldVal, newVal, userData).

[opcional]: Una parte cualquiera de los datos ActionScript que se pasa al mtodo callback. Si se omite el parmetro userData, se pasa undefined al mtodo callback.
userData:Object

Valor devuelto
Boolean - Un valor booleano: true si el punto de observacin se crea correctamente, false en caso contrario.

Ejemplo En el ejemplo siguiente se emplea watch() para determinar si la propiedad speed supera el lmite de velocidad:
// Crea un objeto nuevo var myObject:Object = new Object(); // Aade una propiedad que detecte la velocidad myObject.speed = 0; // Crea una funcin callback para ejecutarse si cambia la propiedad speed var speedWatcher:Function = function(prop, oldVal, newVal, speedLimit) { // Comprueba si se supera el lmite de velocidad if (newVal > speedLimit) { trace ("You are speeding."); } else { trace ("You are not speeding."); } // Devuelve el valor de newVal. return newVal; } // Utiliza watch() para registrar el controlador de eventos, pasando como parmetros: // - el nombre de la propiedad supervisada: "speed" // - una referencia a la funcin callback speedWatcher // - speedLimit (55) como parmetro userData myObject.watch("speed", speedWatcher, 55); // establece la propiedad speed en 54 y, despus, en 57 myObject.speed = 54; // salida: You are not speeding myObject.speed = 57; // salida: You are speeding

Object

541

// deja de supervisar el objeto myObject.unwatch("speed"); myObject.speed = 54; // no debera haber ninguna salida

Vase tambin
addProperty (mtodo Object.addProperty), unwatch (mtodo Object.unwatch)

security (System.security)
Object | +-System.security public class security extends Object

La clase System.security contiene mtodos que especifican cmo pueden comunicarse entre s archivos SWF de diferentes dominios. Resumen de propiedades Propiedades heredadas de la clase Object
constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de mtodos
Modificadores Firma
static :String) : Void

Descripcin
dominios identificados puedan acceder a objetos y variables del archivo SWF llamado o de cualquier otro archivo SWF del mismo dominio que el archivo SWF llamado. dominios identificados acceder a los objetos y variables del archivo SWF, que se aloja mediante el protocolo HTTPS. dominios de una ubicacin especificada por el parmetro url.

allowDomain(domain1 Permite que los archivos SWF y HTML de los

static

allowInsecureDomain Permite a los archivos SWF y HTML de los (domain:String) : Void

static

loadPolicyFile(url: Carga un archivo de poltica para distintos String) : Void

542

Clases de ActionScript

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

allowDomain (mtodo security.allowDomain)


public static allowDomain(domain1:String) : Void

Permite que los archivos SWF y HTML de los dominios identificados puedan acceder a objetos y variables del archivo SWF llamado o de cualquier otro archivo SWF del mismo dominio que el archivo SWF llamado. En archivos que se reproducen en Flash Player 7 o posterior, los parmetros transferidos deben seguir las reglas de nomenclatura de dominio exacto. Por ejemplo, para permitir el acceso a los archivos SWF alojados en www.domain.com o en store.domain.com, se deben transferir ambos nombres de dominio:
// Para Flash Player 6 System.security.allowDomain("domain.com"); // Comandos correspondientes para permitir el acceso de los archivos SWF // que se ejecutan en Flash Player 7 o versiones posteriores System.security.allowDomain("www.domain.com", "store.domain.com");

Asimismo, en el caso de archivos que se ejecutan en Flash Player 7 o en versiones posteriores, no podr utilizar este mtodo para permitir que los archivos SWF alojados mediante un protocolo seguro (HTTPS) permitan el acceso desde archivos SWF alojados en protocolos no seguros; en este caso deber utilizar System.security.allowInsecureDomain(). Es posible que, en ocasiones, se encuentre con la siguiente situacin: El usuario carga un archivo SWF secundario de un dominio diferente y desea que el archivo SWF secundario pueda crear un script en el archivo SWF principal, pero no conoce el dominio final del que proceder el archivo SWF secundario. Esto puede ocurrir, por ejemplo, cuando se utilizan redirecciones de reparto de carga o servidores de terceros. En esta situacin, puede utilizar la propiedad MovieClip._url como argumento de este mtodo. Por ejemplo, si carga un archivo SWF en my_mc, podr llamar a System.security.allowDomain(my_mc._url).

security (System.security)

543

Si lo hace, asegrese de que espera a que se cargue el archivo SWF de my_mc, ya que la propiedad _url no dispondr de su valor final correcto hasta que el archivo est completamente cargado. El mejor modo de determinar si un archivo SWF secundario ha finalizado la carga es utilizar MovieClipLoader.onLoadComplete. Tambin puede darse la situacin contraria, es decir, podra crear un archivo SWF secundario en el que quiera que su archivo principal use scripts, pero no conoce cul ser el dominio de su archivo principal. En este caso, llame a System.security.allowDomain(_parent._url) desde el archivo SWF secundario. En este caso, no tendr que esperar a que se cargue el archivo SWF principal; el archivo principal ya estar cargado en el momento en que se cargue el archivo secundario. Parmetros
domain1:String - Una o varias cadenas que especifican dominios que tienen acceso a objetos y variables del archivo SWF que contiene la llamada a System.Security.allowDomain(). Los dominios pueden presentar formatos diferentes:

"domain.com" "http://domain.com" "http://IPaddress"

Ejemplo El archivo SWF ubicado en www.macromedia.com/MovieA.swf contiene las lneas siguientes:


System.security.allowDomain("www.shockwave.com"); loadMovie("http://www.shockwave.com/MovieB.swf", my_mc);

Como MovieA contiene la llamada allowDomain(), MovieB puede acceder a los objetos y variables de MovieA. Si MovieA no contuviera esta llamada, la funcin de seguridad de Flash Player impedira que MovieB accediese a los objetos y variables de MovieA. Vase tambin
onLoadComplete (detector de eventos MovieClipLoader.onLoadComplete), _parent (propiedad MovieClip._parent), _url (propiedad MovieClip._url), allowInsecureDomain (mtodo security.allowInsecureDomain)

544

Clases de ActionScript

allowInsecureDomain (mtodo security.allowInsecureDomain)


public static allowInsecureDomain(domain:String) : Void

Permite a los archivos SWF y HTML de los dominios identificados acceder a los objetos y variables del archivo SWF, que se aloja mediante el protocolo HTTPS. Tambin permite que los archivos SWF de los dominios identificados puedan acceder a otros archivos SWF del mismo dominio que el archivo SWF llamado. De manera predeterminada, slo los archivos SWF alojados mediante un protocolo HTTPS pueden acceder a otros archivos SWF alojados mediante el protocolo HTTPS. Esta implementacin mantiene la integridad que ofrece el protocolo HTTPS. Macromedia desaconseja utilizar este mtodo para sustituir el comportamiento predeterminado, ya que pone en riesgo la seguridad HTTPS. Sin embargo, es posible que tenga que hacerlo, por ejemplo, si necesita permitir el acceso a archivos HTTPS publicados para Flash Player 7 o posterior desde archivos HTTP publicados para Flash Player 6. Un archivo SWF publicado para Flash Player 6 puede utilizar System.security.allowDomain() para permitir acceso HTTP a HTTPS. Sin embargo, dado que la seguridad se implementa de forma distinta en Flash Player 7, se debe utilizar System.Security.allowInsecureDomain() para permitir dicho acceso en archivos SWF publicados para Flash Player 7 o versiones posteriores. Nota: a veces resulta necesario llamar a System.security.allowInsecureDomain() con un argumento que coincida exactamente con el dominio del archivo SWF en el que aparece la llamada. No es lo mismo que el mtodo System.security.allowDomain(), al que no es necesario llamar nunca con el dominio propio de un archivo SWF como argumento. El motivo por el que a veces s es necesario hacerlo con System.security.allowInsecureDomain() es que, de forma predeterminada, un archivo SWF en http://foo.com no podr crear un script de un archivo SWF en https://foo.com, incluso si los dominios son idnticos. Parmetros
domain:String

- Nombre de dominio exacto, por ejemplo www.myDomainName.com o store.myDomainName.com.

security (System.security)

545

Ejemplo En el ejemplo siguiente va a alojar un examen de matemticas en un dominio seguro, de forma que slo puedan acceder a l los estudiantes registrados. Tambin va a incluir en un dominio seguro la serie de archivos SWF que ha creado, en los que se ilustran determinados conceptos. Quiere que los estudiantes accedan al examen desde el archivo SWF que contiene la informacin relacionada con un concepto.
// Este archivo SWF se encuentra en https://myEducationSite.somewhere.com/ mathTest.swf // Los archivos de concepto se encuentran en http:// myEducationSite.somewhere.com System.security.allowInsecureDomain("myEducationSite.somewhere.com");

Vase tambin
allowDomain (mtodo security.allowDomain)

loadPolicyFile (mtodo security.loadPolicyFile)


public static loadPolicyFile(url:String) : Void

Carga un archivo de poltica para distintos dominios de una ubicacin especificada por el parmetro url. Flash Player utiliza archivos de poltica como mecanismo de permiso para permitir que las pelculas Flash carguen datos desde servidores que no sean el suyo propio. Flash Player 7.0.14.0 buscaba archivos de poltica slo en una ubicacin: /crossdomain.xml en el servidor al que se haba solicitado una peticin de carga de datos. Para un intento de conexin XMLSocket, Flash Player 7.0.14.0 buscaba /crossdomain.xml en un servidor HTTP (puerto 80) del subdominio en el que se intentaba realizar la conexin XMLSocket. Flash Player 7.0.14.0 (y todos los reproductores anteriores) tambin limitaban las conexiones XMLSocket a los puertos 1024 y posteriores. Con la incorporacin de System.security.loadPolicyFile(), Flash Player 7.0.19.0 puede cargar archivos de poltica de ubicaciones arbitrarias, como se muestra en el siguiente ejemplo:
System.security.loadPolicyFile("http://foo.com/sub/dir/pf.xml");

De este modo, Flash Player recupera un archivo de poltica de la URL especificada. Los permisos otorgados por el archivo de poltica de dicha ubicacin se aplicarn a todo el contenido del mismo nivel o de un nivel inferior de la jerarqua de directorios virtual del servidor. El siguiente cdigo es continuacin del ejemplo anterior:
loadVariables("http://foo.com/sub/dir/vars.txt") // permitido loadVariables("http://foo.com/sub/dir/deep/vars2.txt") // permitido loadVariables("http://foo.com/elsewhere/vars3.txt") // no permitido

546

Clases de ActionScript

Puede utilizar loadPolicyFile() para cargar los archivos de poltica que desee. Al considerar una peticin que requiere un archivo de poltica, Flash Player siempre espera a que termine la descarga de archivos de poltica antes de denegar una peticin. Como opcin final, si no hay ningn archivo de poltica especificado con loadPolicyFile() que autorice una peticin, Flash Player consulta la ubicacin predeterminada original: /crossdomain.xml. La utilizacin del protocolo xmlsocket con un nmero de puerto especfico le permite recuperar archivos de poltica directamente de un servidor XMLSocket, como se muestra en el siguiente ejemplo:
System.security.loadPolicyFile("xmlsocket://foo.com:414");

De este modo, Flash Player intenta recuperar un archivo de poltica desde el host y el puerto especificados. Puede utilizarse cualquier puerto, no slo los puertos 1024 y superiores. Tras establecer una conexin con el puerto especificado, Flash Player transmite <policy-filerequest />, terminada por un byte null. Puede configurarse un servidor XMLSocket para que responda a peticiones de archivos de poltica y a conexiones XMLSocket normales en el mismo puerto; en este caso, el servidor deber esperar <policy-file-request /> antes de transmitir un archivo de poltica. Tambin puede configurarse un servidor para que responda a peticiones de archivos de poltica en un puerto distinto de las conexiones estndar; en este caso, el servidor puede enviar un archivo de poltica en cuanto se establece una conexin en el puerto del archivo de poltica dedicado. El servidor debe enviar un byte nulo para terminar un archivo de poltica y ms tarde puede cerrar la conexin; si el servidor no cierra la conexin, Flash Player la cerrar despus de recibir el byte null de terminacin. Un archivo de poltica proporcionado por un servidor XMLSocket tiene la misma sintaxis que cualquier otro archivo de poltica, pero debe especificar tambin los puertos a los que se concede el acceso. Cuando un archivo de poltica procede de un puerto inferior a 1024, dicho archivo puede conceder acceso a cualquier puerto; cuando un archivo de poltica procede del puerto 1024 o superior, slo puede conceder acceso a otros puertos 1024 y superiores. Los puertos permitidos se especifican en el atributo "to-ports" de la etiqueta <allow-accessfrom>. Los nmeros de puerto nicos, los intervalos de puertos y los comodines estn permitidos. El siguiente ejemplo muestra un archivo de poltica XMLSocket:
<cross-domain-policy> <allow-access-from domain="*" to-ports="507" /> <allow-access-from domain="*.foo.com" to-ports="507,516" /> <allow-access-from domain="*.bar.com" to-ports="516-523" /> <allow-access-from domain="www.foo.com" to-ports="507,516-523" /> <allow-access-from domain="www.bar.com" to-ports="*" /> </cross-domain-policy>

security (System.security)

547

Un archivo de poltica procedente de la ubicacin predeterminada original (/crossdomain.xml en un servidor HTTP del puerto 80) autoriza implcitamente el acceso a todos los puertos 1024 y superiores. No hay ninguna manera de recuperar un archivo de poltica que autorice operaciones de XMLSocket desde cualquier otra ubicacin de un servidor HTTP; las ubicaciones personalizadas para los archivos de poltica XMLSocket deben encontrarse en un servidor XMLSocket. Dado que la capacidad de conectar con puertos inferiores a 1024 es una novedad, para autorizar esta conexin siempre es necesario un archivo de poltica cargado con loadPolicyFile(), incluso cuando un clip de pelcula se conecta a su propio subdominio. Parmetros
url:String

- Una cadena: la URL en la que se encuentra el archivo de poltica de varios dominios que se va a cargar.

Selection
Object | +-Selection public class Selection extends Object

La clase Selection le permite establecer y controlar el campo de texto en el que se encuentra el punto de insercin (es decir, el campo seleccionado). Los ndices de espacio de seleccin estn basados en cero (por ejemplo, la primera posicin es 0, la segunda posicin es 1, etc.). No existe funcin constructora para la clase Selection, ya que slo puede haber un campo seleccionado en todo momento. El objeto Selection es vlido slo si el dispositivo admite introduccin de texto en lnea. Si un dispositivo no admite la introduccin de texto en lnea y necesita un procesador principal (FEP) para introducir texto, se ignorarn todas las llamadas al objeto Selection. Resumen de propiedades Propiedades heredadas de la clase Object
constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

548

Clases de ActionScript

Resumen de eventos
Evento
onSetFocus = function([oldfocus] , [newfocus]) {}

Descripcin
Recibe una notificacin cuando cambia la seleccin de entrada.

Resumen de mtodos
Modificadores Firma
static r:Object) : Void static

Descripcin
cambio de seleccin con el teclado. destino del objeto que est seleccionado con el teclado.

addListener(listene Registra un objeto para recibir notificaciones de

getFocus() : String Devuelve una cadena que especifica la ruta de

static

removeListener(list Elimina un objeto registrado previamente con el ener:Object) : Boolean

mtodo Selection.addListener().

static

setFocus(newFocus:O Selecciona con el teclado el campo de texto, botn bject) : Boolean

o clip de pelcula seleccionable (editable) especificado por el parmetro newFocus. texto seleccionado con el teclado actualmente.

static

setSelection(beginI Establece el espacio de seleccin del campo de ndex:Number, endIndex:Number) : Void

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

Selection

549

addListener (mtodo Selection.addListener)


public static addListener(listener:Object) : Void

Registra un objeto para recibir notificaciones de cambio de seleccin con el teclado. Cuando se selecciona con el teclado otro elemento (por ejemplo, cuando se invoca el mtodo Selection.setFocus()), se invocar el mtodo onSetFocus() de cada objeto detector registrado en addListener(). El cambio de seleccin del teclado pueden detectarlo mltiples objetos. Si el detector especificado ya se ha registrado, no se producir ningn cambio. Parmetros
listener:Object

- Un nuevo objeto con un mtodo onSetFocus.

Ejemplo El ejemplo siguiente crea dos campos de introduccin de texto en tiempo de ejecucin y define los bordes de cada campo de texto como true. Este cdigo crea un objeto de ActionScript nuevo (genrico) denominado focusListener. Este objeto define para s mismo una propiedad onSetFocus, a la cual asigna una funcin. La funcin est formada por dos parmetros: una referencia al campo de texto que ha dejado de estar seleccionado y una referencia al campo de texto que pasa a estar seleccionado. La funcin define la propiedad border del campo de texto que ha dejado de estar seleccionado con el valor false y define la propiedad border del campo que pasa a estar seleccionado con el valor true:
this.createTextField("one_txt", 99, 10, 10, 200, 20); this.createTextField("two_txt", 100, 10, 50, 200, 20); one_txt.border = true; one_txt.type = "input"; two_txt.border = true; two_txt.type = "input"; var focusListener:Object = new Object(); focusListener.onSetFocus = function(oldFocus_txt, newFocus_txt) { oldFocus_txt.border = false; newFocus_txt.border = true; }; Selection.addListener(focusListener);

Vase tambin
setFocus (mtodo Selection.setFocus)

550

Clases de ActionScript

getFocus (mtodo Selection.getFocus)


public static getFocus() : String

Devuelve una cadena que especifica la ruta de destino del objeto que est seleccionado con el teclado.

Si un objeto TextField est seleccionado con el teclado y tiene un nombre de instancia, el mtodo getFocus() devuelve la ruta de destino del objeto TextField. En caso contrario, devuelve el nombre de la variable de TextField. Si un objeto Button o un clip de pelcula de botn est seleccionado con el teclado, el mtodo getFocus() devuelve la ruta de destino del objeto Button o el clip de pelcula de botn. Si no hay seleccionado con el teclado un objeto TextField, un objeto Button, una instancia de componente ni un clip de pelcula de botn, el mtodo null devuelve el valor getFocus().

Valor devuelto
String

- Una cadena o null.

Ejemplo El siguiente ejemplo crea un campo de texto para mostrar la ruta del objeto seleccionado actualmente. A continuacin, utiliza una funcin interval para actualizar peridicamente el campo. Para probarlo, aade varias instancias de botones en el escenario con distintos nombres de instancia y, a continuacin, aade el siguiente cdigo ActionScript al archivo AS o FLA.
this.createTextField("status_txt", this.getNextHighestDepth(), 0, 0, 150, 25); function FocusUpdate() { s = Selection.getFocus(); if (s) { status_txt.text = s; } } setInterval(FocusUpdate, 100);

Vase tambin
onSetFocus (detector de eventos Selection.onSetFocus), setFocus (mtodo Selection.setFocus)

Selection

551

onSetFocus (detector de eventos Selection.onSetFocus)


onSetFocus = function([oldfocus], [newfocus]) {}

Recibe una notificacin cuando cambia la seleccin de entrada. Para utilizar este detector, debe crear un objeto detector. A continuacin puede definir una funcin para este detector y utilizar el mtodo Selection.addListener() para registrar el detector con el objeto Selection, como en el cdigo siguiente:
var someListener:Object = new Object(); someListener.onSetFocus = function () { // sentencias } Selection.addListener(someListener);

Los detectores permiten que diversas partes del cdigo cooperen, ya que varios detectores pueden recibir notificacin de un solo evento. Parmetros
oldfocus: newfocus:

[opcional] - El objeto que deja de estar seleccionado. [opcional] - El objeto que se selecciona.

Ejemplo El ejemplo siguiente indica cmo determinar cundo cambia la seleccin de entrada en un archivo SWF entre varios campos de texto creados de forma dinmica. Introduzca el siguiente cdigo ActionScript en un archivo FLA o AS y pruebe el documento:
this.createTextField("one_txt", 1, 0, 0, 100, 22); this.createTextField("two_txt", 2, 0, 25, 100, 22); this.createTextField("three_txt", 3, 0, 50, 100, 22); this.createTextField("four_txt", 4, 0, 75, 100, 22); for (var i in this) { if (this[i] instanceof TextField) { this[i].border = true; this[i].type = "input"; } } this.createTextField("status_txt", this.getNextHighestDepth(), 200, 10, 300, 100); status_txt.html = true; status_txt.multiline = true;

552

Clases de ActionScript

var someListener:Object = new Object(); someListener.onSetFocus = function(oldFocus, newFocus) { status_txt.htmlText = "<b>setFocus triggered</b>"; status_txt.htmlText += "<textformat tabStops='[20,80]'>"; status_txt.htmlText += "&nbsp;\toldFocus:\t"+oldFocus; status_txt.htmlText += "&nbsp;\tnewFocus:\t"+newFocus; status_txt.htmlText += "&nbsp;\tgetFocus:\t"+Selection.getFocus(); status_txt.htmlText += "</textformat>"; }; Selection.addListener(someListener);

Vase tambin
addListener (mtodo Selection.addListener), setFocus (mtodo Selection.setFocus)

removeListener (mtodo Selection.removeListener)


public static removeListener(listener:Object) : Boolean

Elimina un objeto registrado previamente con el mtodo Selection.addListener(). Parmetros


listener:Object

- El objeto que ya no recibe notificaciones de seleccin.

Valor devuelto - Si se ha eliminado correctamente el objeto listener, el mtodo devolver el valor Si el objeto listener no se ha eliminado correctamente (por ejemplo, porque listener no se encontraba en la lista de detectores del objeto Selection), el mtodo devolver el valor false.
Boolean true.

Ejemplo El cdigo ActionScript siguiente crea varias instancias de campo de texto de forma dinmica. Al seleccionar un campo de texto, aparece la informacin en el panel Salida. Cuando haga clic en la instancia remove_btn, se eliminar el detector y dejar de mostrarse la informacin en el panel Salida.
this.createTextField("one_txt", 1, 0, 0, 100, 22); this.createTextField("two_txt", 2, 0, 25, 100, 22); this.createTextField("three_txt", 3, 0, 50, 100, 22); this.createTextField("four_txt", 4, 0, 75, 100, 22); for (var i in this) { if (this[i] instanceof TextField) { this[i].border = true;

Selection

553

this[i].type = "input"; } } var selectionListener:Object = new Object(); selectionListener.onSetFocus = function(oldFocus, newFocus) { trace("Focus shifted from "+oldFocus+" to "+newFocus); }; Selection.addListener(selectionListener); remove_btn.onRelease = function() { trace("removeListener invoked"); Selection.removeListener(selectionListener); };

Vase tambin
addListener (mtodo Selection.addListener)

setFocus (mtodo Selection.setFocus)


public static setFocus(newFocus:Object) : Boolean

Selecciona con el teclado el campo de texto, botn o clip de pelcula seleccionable (editable) especificado por el parmetro newFocus. Puede utilizar notacin con barras o notacin con puntos. Puede utilizar tambin una ruta relativa o absoluta. Si est utilizando ActionScript 2.0, deber utilizar notacin con puntos. Si se pasa el valor null, se eliminar la seleccin actual de teclado. Parmetros
newFocus:Object - Un objeto, como una instancia de botn, clip de pelcula o campo de texto, o una cadena que especifica la ruta a una instancia de botn, clip de pelcula o campo de texto.

Valor devuelto
Boolean - Un valor booleano; true si el intento de seleccin con el teclado es correcto; false si dicho intento fracasa.

554

Clases de ActionScript

Ejemplo En el ejemplo siguiente, se resalta el campo de texto username_txt cuando se ejecuta en una ventana del navegador. Si el usuario no rellena uno de los campos de texto obligatorios (username_txt y password_txt), el cursor se sita automticamente en el campo de texto al que le faltan datos. Por ejemplo, si el usuario no escribe nada en el campo de texto username_txt y hace clic en el botn de envo, aparece un mensaje de error y el cursor se sita en el campo de texto username_txt.
this.createTextField("status_txt", this.getNextHighestDepth(), 100, 70, 100, 22); this.createTextField("username_txt", this.getNextHighestDepth(), 100, 100, 100, 22); this.createTextField("password_txt", this.getNextHighestDepth(), 100, 130, 100, 22); this.createEmptyMovieClip("submit_mc", this.getNextHighestDepth()); submit_mc.createTextField("submit_txt", this.getNextHighestDepth(), 100, 160, 100, 22); submit_mc.submit_txt.autoSize = "center"; submit_mc.submit_txt.text = "Submit"; submit_mc.submit_txt.border = true; submit_mc.onRelease = checkForm; username_txt.border = true; password_txt.border = true; username_txt.type = "input"; password_txt.type = "input"; password_txt.password = true; Selection.setFocus("username_txt"); fscommand("activateTextField"); // function checkForm():Boolean { if (username_txt.text.length == 0) { status_txt.text = "fill in username"; Selection.setFocus("username_txt"); fscommand("activateTextField"); return false; } if (password_txt.text.length == 0) { status_txt.text = "fill in password"; Selection.setFocus("password_txt"); fscommand("activateTextField"); return false; } status_txt.text = "success!"; Selection.setFocus(null); return true; }

Selection

555

Vase tambin
getFocus (mtodo Selection.getFocus)

setSelection (mtodo Selection.setSelection)


public static setSelection(beginIndex:Number, endIndex:Number) : Void

Establece el espacio de seleccin del campo de texto seleccionado con el teclado actualmente. El nuevo espacio de seleccin comienza por el ndice especificado en el parmetro beginIndex y termina en el ndice especificado en el parmetro endIndex. Los ndices de espacio de seleccin estn basados en cero (por ejemplo, la primera posicin es 0, la segunda posicin es 1, etc.). Este mtodo no surte efecto si no hay ningn campo de texto seleccionado en ese momento. Si se llama al mtodo setSelection() y el control de texto est seleccionado, el resaltado se mostrar nicamente si el campo de texto se est editando de forma activa. El mtodo setSelection() se puede invocar despus de Selection.setFocus() o desde un detector de eventos onSetFocus(), pero la seleccin slo estar visible despus de una llamada al comando fscommand activateTextField. Parmetros
beginIndex:Number endIndex:Number

- El primer ndice del espacio de seleccin.

- El ltimo ndice del espacio de seleccin.

Ejemplo El siguiente cdigo ActionScript crea un campo de texto en tiempo de ejecucin y le aade una cadena. Seguidamente, asigna un controlador de eventos para el evento onSetFocus que selecciona todo el texto del campo de texto y activa la edicin. Nota: si se llama al mtodo Selection.setSelection(), el texto no se mostrar en pantalla hasta que no se active el campo de texto (despus de llamar al comando fscommand activateTextField).
this.createTextField("myText_txt", 99, 10, 10, 200, 30); myText_txt.type = "input"; myText_txt.text = "this is my text"; myText_txt.onSetFocus = function(){ Selection.setSelection(0,myText_txt.text.length); fscommand("activateTextField"); }

556

Clases de ActionScript

El siguiente ejemplo ilustra cmo el parmetro endIndex no es inclusivo. Para seleccionar el primer carcter, debe utilizar un parmetro endIndex 1, no 0. Si cambia el parmetro endIndex a 0, no se selecciona nada.
this.createTextField("myText_txt", 99, 10, 10, 200, 30); myText_txt.text = "this is my text"; this.onEnterFrame = function () { Selection.setFocus("myText_txt"); Selection.setSelection(0, 1); delete this.onEnterFrame; }

SharedObject
Object | +-SharedObject public dynamic class SharedObject extends Object

La versin de Flash Lite de la clase SharedObject permite que los archivos SWF de Flash guarden datos en el dispositivo cuando ste se cierra y que carguen datos desde el dispositivo cuando se vuelva a reproducir. Los objetos compartidos Flash Lite almacenan un conjunto de pares nombre/valor en el dispositivo. Nota:el nombre "SharedObject" proviene de la clase SharedObject de Flash. La versin de Flash de esta clase permite que varios archivos SWF de Flash puedan compartir los datos guardados. Sin embargo, la versin de Flash Lite de la clase SharedObject no admite comparticin de datos entre distintos archivos SWF de Flash. En Flash Lite, se considera que un archivo SWF es de una versin diferente si se ha modificado desde su versin original, aunque an conserve el mismo nombre. No ocurre lo mismo en Flash Player, donde se considera que un archivo SWF es igual si su URL y su nombre no cambian, aunque el archivo SWF s se haya modificado. En Flash Lite, dos versiones distintas de un archivo SWF no pueden acceder a los objetos compartidos de cada una. Para mantener la coherencia con la plataforma Flash, en el reproductor Flash Lite se utilizan las mismas convenciones de llamada y creacin de ActionScript.

SharedObject

557

Los siguientes ejemplos describe el potencial de la utilizacin de objetos compartidos:

Una aplicacin Flash puede utilizarse como interfaz de usuario para un servicio que permita al usuario realizar bsquedas en listados de coches usados. La aplicacin se conecta a un servidor que proporciona listados de coches basndose en condiciones de bsqueda y preferencias introducidas por el usuario. La aplicacin Flash puede guardar la ltima bsqueda realizada por el usuario y precumplimentar los formularios la prxima vez que se reproduzca el archivo SWF. Para ello, se crea una instancia SharedObject que almacena los parmetros de bsqueda cada vez que el usuario lanza una nueva. Cuando se cierra el archivo SWF, el reproductor guarda los datos en el objeto compartido del dispositivo. La prxima vez que se reproduzca el archivo SWF, el reproductor Flash Lite cargar el objeto compartido y precumplimentar el formulario de bsqueda con los mismos datos que introdujo el usuario. Una aplicacin Flash puede utilizarse como interfaz de usuario para un servicio que permita al usuario buscar crticas musicales. La aplicacin permite que el usuario almacene informacin sobre sus discos favoritos. Esta informacin se puede almacenar en el servidor remoto, pero suele causar problemas si la aplicacin no puede conectarse al servicio. Asimismo, recuperar datos desde un servicio remoto suele ser un proceso lento y empobrece la experiencia del usuario. Los objetos compartidos permiten que la aplicacin almacenen la informacin de los discos en el dispositivo para cargarla rpidamente cuando sea necesario.

Nota:dado que los dispositivos mviles tienen espacio limitado, los datos no son completamente persistentes; en determinadas situaciones, la plataforma podra eliminar los datos ms antiguos. Para crear un objeto local compartido, utilice la siguiente sintaxis:
var so:shared object = shared object.getLocal("mySharedObject");

La lectura y escritura de los datos en un telfono puede ser un proceso lento. Para garantizar la disponibilidad inmediata de los datos cuando la aplicacin los solicite al dispositivo, Flash Lite 2.0 necesita configurar un detector. El reproductor invoca al detector cuando el dispositivo ha cargado los datos del objeto compartido. Los mtodos que acceden a la instancia SharedObject devuelta por la llamada a getLocal() tendrn que esperar hasta que se invoque al detector antes de intentar realizar ninguna operacin.

558

Clases de ActionScript

Ejemplo En el siguiente ejemplo, un archivo SWF crea una funcin de detector llamada Prefs y, despus, crea un objeto compartido. El reproductor llama a la funcin loadCompletePrefs cuando los datos estn disponibles.
function loadCompletePrefs (mySO:SharedObject) { if (0 == mySO.getSize()) { // Si el tamao es 0, necesitaremos inicializar los datos: mySO.data.name = "Sigismund"; mySO.data.email = "siggy@macromedia.com"; } else { // Traza todos los datos de mySO: trace("Prefs:"); for (var idx in mySO.data) { trace(" " + idx +": " + mySO.data[idx]); } } } SharedObject.addListener("Prefs", loadCompletePrefs); // Ahora podemos crear el objeto compartido: var Prefs:SharedObject = SharedObject.getLocal("Prefs");

Cuando el reproductor ha notificado al detector sobre la disponibilidad de los datos, la aplicacin puede utilizar el objeto compartido devuelto por la llamada al mtodo getLocal() del mismo modo que se utiliza un objeto compartido en Flash. La aplicacin puede aadir, modificar o eliminar propiedades mientras se reproduce el contenido. Cuando el contenido est descargado, es posible que el objeto compartido quede registrado en el dispositivo; sin embargo, para garantizar que el objeto compartido quede registrado, la aplicacin debe forzar una operacin de escritura llamando al mtodo flush(). Los objetos compartidos de Flash Lite slo estn disponibles en archivos SWF almacenados localmente. Los archivos SWF que se reproducen desde la red no pueden utilizar objetos compartidos de Flash Lite. La cantidad total de almacenamiento para objetos compartidos de Flash Lite por cada archivo SWF est limitada por el dispositivo en un tamao predeterminado. El tamao se puede determinar utilizando el mtodo SharedObject.getMaxSize(). Nota:los objetos compartidos remotos no se admiten en Flash Lite 2.0.

SharedObject

559

Vase tambin
flush (mtodo SharedObject.flush), onStatus (controlador SharedObject.onStatus)

Resumen de propiedades
Modificadores Propiedad
data:Object

Descripcin
Coleccin de atributos asignados a la propiedad data del objeto.

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onStatus = :Object) {}

Descripcin
Se invoca cada vez que se publica un error, una advertencia o una nota

function(infoObject informativa para un objeto compartido.

Resumen de mtodos
Modificadores Firma
static ame:String, tion) : Void clear() : Void

Descripcin
reproductor Flash Lite cuando se han cargado los

addListener(objectN Crea un detector de eventos al que invoca el notifyFunction:Func datos del objeto compartido desde el dispositivo.

Elimina todos los datos del objeto compartido y elimina el objeto compartido del disco. persistente. persistente localmente que slo est disponible para el cliente actual. Devuelve el nmero total de bytes que puede utilizar el archivo SWF para almacenar objetos compartidos mviles en el dispositivo.

flush(minDiskSpace: Escribe el objeto compartido en un archivo local y Number) : Object static

getLocal(name:Strin Devuelve una referencia a un objeto compartido g) : SharedObject

static

getMaxSize() : Number

560

Clases de ActionScript

Modificadores Firma
getSize() : Number

Descripcin
Obtiene el tamao actual en bytes del objeto compartido. mtodo addListener().

static

removeListener(obje Elimina todos los detectores aadidos con el ctName:String)

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

addListener (mtodo SharedObject.addListener)


public static addListener(objectName:String, notifyFunction:Function) : Void

Crea un detector de eventos al que invoca el reproductor Flash Lite cuando se han cargado los datos del objeto compartido desde el dispositivo. Los mtodos que acceden a la instancia SharedObject devuelta por la llamada al mtodo getLocal() tendrn que esperar hasta que se invoque al detector antes de intentar realizar ninguna operacin. Parmetros
objectName:String

- Una cadena que representa el nombre del objeto.

- Nombre de la funcin a la que llama el reproductor para notificar a la aplicacin sobre la ejecucin del mtodo getLocal() y sobre la finalizacin de la carga de datos.
notifyFunction:Function

clear (mtodo SharedObject.clear)


public clear() : Void

Elimina todos los datos del objeto compartido y elimina el objeto compartido del disco. La referencia a my_so contina activa y my_so est ahora vaco.

SharedObject

561

Ejemplo El ejemplo siguiente guarda datos en el objeto compartido y, a continuacin, vaca todos los datos del objeto compartido:
var my_so:SharedObject = SharedObject.getLocal("superfoo"); my_so.data.name = "Hector"; trace("before my_so.clear():"); for (var prop in my_so.data) { trace("\t"+prop); } trace(""); my_so.clear(); trace("after my_so.clear():"); for (var prop in my_so.data) { trace("\t"+prop); }

Este cdigo ActionScript muestra el siguiente mensaje en el panel Salida:


before my_so.clear(): name after my_so.clear():

data (propiedad SharedObject.data)


public data : Object

Coleccin de atributos asignados a la propiedad data del objeto. Cada atributo puede ser un objeto de cualquier tipo bsico de ActionScript o JavaScript (Array, Number, Boolean, etc.). Por ejemplo, las siguientes lneas asignan valores a diversos aspectos de un objeto compartido. Nota:en Flash Lite, si no se invoca al detector de objetos compartidos, la propiedad data podra contener valores no definidos. Consulte la descripcin del mtodo addListener() para obtener ms informacin.
var items_array:Array = new Array(101, 346, 483); var currentUserIsAdmin:Boolean = true; var currentUserName:String = "Ramona"; var my_so:SharedObject = SharedObject.getLocal("superfoo"); my_so.data.itemNumbers = items_array; my_so.data.adminPrivileges = currentUserIsAdmin; my_so.data.userName = currentUserName; for (var prop in my_so.data) { trace(prop+": "+my_so.data[prop]); }

562

Clases de ActionScript

soResult = ""; for (var prop in my_so.data) { soResult += prop+": "+my_so.data[prop] +"\n"; } result.text = soResult;

Todos los atributos de la propiedad data de un objeto compartido se guardan si el objeto es persistente, y el objeto compartido contiene la siguiente informacin:
userName: Ramona adminPrivileges: true itemNumbers: 101,346,483

Nota:no asigne valores directamente a la propiedad data de un objeto compartido (por ejemplo, so.data = someValue). Flash omitir estas asignaciones. Para eliminar atributos de objetos locales compartidos, utilice cdigo como, por ejemplo, delete so.data.attributeName; la configuracin de un atributo con el valor null o undefined para un objeto local compartido no elimina el atributo en cuestin. Para crear valores private para un objeto compartido (los valores que slo estn disponibles para la instancia de cliente mientras el objeto se est utilizando no se almacenan con el objeto cuando se cierra), cree propiedades que no sean data con nombre para almacenarlos, como se muestra en el siguiente ejemplo:
var my_so:SharedObject = SharedObject.getLocal("superfoo"); my_so.favoriteColor = "blue"; my_so.favoriteNightClub = "The Bluenote Tavern"; my_so.favoriteSong = "My World is Blue"; for (var prop in my_so) { trace(prop+": "+my_so[prop]); }

El objeto compartido contiene los siguientes datos:


favoriteSong: My World is Blue favoriteNightClub: The Bluenote Tavern favoriteColor: blue data: [object Object]

Ejemplo El ejemplo siguiente guarda texto en un objeto compartido con el nombre my_so (para ver el ejemplo completo, consulte SharedObject.getLocal():
var my_so:SharedObject = SharedObject.getLocal("savedText"); // myText es un campo de introduccin de texto e inputText es un campo de texto dinmico. myText.text = my_so.data.myTextSaved; // Asigna una cadena vaca a myText_ti si el objeto compartido es undefined

SharedObject

563

// para impedir cuando // el script se if (myText.text myText.text = }

que el cuadro de introduccin de texto muestre "undefined" ejecuta por primera vez. == "undefined") { "";

changedListener = new Object(); changedListener.onChanged = function (changedField) { my_so.data.myTextSaved = changedField.text; inputText.text = ""; inputText.text = my_so.data.myTextSaved; } myText.addListener(changedListener);

flush (mtodo SharedObject.flush)


public flush(minDiskSpace:Number) : Object

Escribe el objeto compartido en un archivo local y persistente. Para garantizar que el objeto compartido quede registrado, la aplicacin debe forzar una operacin de escritura llamando al mtodo flush(). Al contrario de lo que ocurre en Flash Player, la operacin de escritura es asncrona y el resultado no se obtiene inmediatamente. Parmetros
minDiskSpace:Number - Un entero que especifica el nmero de bytes que debe asignarse a este objeto. El valor predeterminado es 0.

Valor devuelto
Object flush()

- Un valor booleano, true o false; o un valor "pending" de cadena. El mtodo devuelve pending en la mayora de las solicitudes, con las excepciones siguientes:

Si no se necesita escribir datos (es decir, si los datos ya estn escritos), flush() devuelve true. Si el parmetro minimumDiskSpace supera el mximo espacio disponible para un archivo SWF (o el espacio disponible restante para un archivo SWF) o si se ha producido un error al procesar la solicitud, flush() devuelve false.

564

Clases de ActionScript

Si el mtodo flush() devuelve pending, el reproductor Flash Lite puede mostrar un cuadro de dilogo para pedir al usuario que libere espacio para poder aumentar el espacio disponible en disco para los objetos compartidos. Para permitir que crezca el espacio asignado al objeto compartido cuando vuelva a guardarse, lo que evita que se devuelva el valor pending, pase un valor para minimumDiskSpace. Cuando el reproductor Flash Lite intenta grabar el archivo, busca el nmero de bytes pasados a minimumDiskSpace, en lugar de buscar el espacio suficiente para guardar el objeto compartido con su tamao actual. Ejemplo El siguiente ejemplo gestiona los posibles valores devueltos para el mtodo flush():
so_big = SharedObject.getLocal("large"); so_big.data.name = "This is a long string of text."; so_big.flush(); var flushResult = so_big.flush(); switch (flushResult) { case 'pending' : result.text += "pending"; break; case true : result.text += "Data was flushed."; break; case false : result.text += "Test failed. Data was not flushed."; break; }

Vase tambin
clear (mtodo SharedObject.clear), onStatus (controlador SharedObject.onStatus)

getLocal (mtodo SharedObject.getLocal)


public static getLocal(name:String) : SharedObject

Devuelve una referencia a un objeto compartido persistente localmente que slo est disponible para el cliente actual. Si el objeto compartido no existe ya, getLocal() crea uno. Se trata de un mtodo esttico de la clase SharedObject. Nota:en Flash Lite, un objeto compartido no se puede compartir entre dos archivos SWF. Para asignar el objeto a una variable, utilice una sintaxis como la siguiente
var so:SharedObject = SharedObject.getLocal("savedData")

SharedObject

565

Dado que los datos no estn disponibles para su lectura en el dispositivo de forma inmediata, la aplicacin debe crear y registrar un detector para el objeto compartido identificado por name. Consulte la descripcin del mtodo addListener() para obtener ms informacin. Parmetros
name:String

- Una cadena que representa el nombre del objeto. El nombre puede incluir barras diagonales (/); por ejemplo, work/addresses es un nombre vlido. No se admiten espacios en los nombres de objetos compartidos, ni tampoco los siguientes caracteres:
~ % & \ ; : " ' , < > ? #

Valor devuelto - Una referencia a un objeto compartido persistente localmente que slo est disponible para el cliente actual. Si Flash no puede crear ni encontrar un objeto compartido, getLocal() devuelve null.
SharedObject

Este mtodo falla y devuelve null si se ha prohibido a contenido de Flash de terceros la creacin y el almacenamiento de objetos compartidos persistentes. Ejemplo El ejemplo siguiente guarda el ltimo fotograma introducido por un usuario en un objeto compartido local llamado kookie:
// Obtiene el objeto kookie var my_so:SharedObject = SharedObject.getLocal("kookie"); // Obtiene el usuario del objeto kookie y va al nmero de fotograma guardado para el usuario. if (my_so.data.user != undefined) { this.user = my_so.data.user; this.gotoAndStop(my_so.data.frame); }

El siguiente bloque de cdigo se coloca en cada fotograma del archivo SWF:


// En cada fotograma, llama a la funcin rememberme para guardar el nmero de fotograma. function rememberme() { my_so.data.frame=this._currentframe; my_so.data.user="John"; }

566

Clases de ActionScript

getMaxSize (mtodo SharedObject.getMaxSize)


public static getMaxSize() : Number

Devuelve el nmero total de bytes que puede utilizar el archivo SWF para almacenar objetos compartidos mviles en el dispositivo. Por ejemplo, si el mtodo devuelve 1K, la pelcula puede guardar un objeto compartido de 1 K (o varios objetos compartidos ms pequeos) siempre que el tamao combinado no supere 1 K. Se trata de un mtodo esttico de la clase SharedObject. Valor devuelto - Valor numrico que especifica el nmero total de bytes que la pelcula puede almacenar en el dispositivo. Tambin es el tamao disponible para todo el contenido cargado dinmicamente mediante loadMovie().
Number

Ejemplo El siguiente ejemplo comprueba si hay ms de 1 KB de espacio de almacenamiento reservado antes de crear un objeto compartido Flash Lite.
if (SharedObject.getMaxSize() > 1024) { var my_so:SharedObject = SharedObject.getLocal("sharedObject1"); } else { trace("SharedObject's maximum size is less than 1 KB."); }

getSize (mtodo SharedObject.getSize)


public getSize() : Number

Obtiene el tamao actual en bytes del objeto compartido. Flash calcula el tamao de un objeto compartido comprobando todas sus propiedades de datos; cuantas ms propiedades de datos tenga el objeto, mayor ser el tiempo necesario para estimar su tamao. La estimacin del tamao de un objeto puede consumir bastante tiempo de proceso, por lo que es posible que prefiera evitar este mtodo si no lo necesita por un motivo concreto. Si an no se ha llamado al detector del objeto compartido, getSize() devuelve 0. Consulte el mtodo addListener() para obtener informacin sobre la utilizacin del detector. Valor devuelto
Number

- Un valor numrico que especifica el tamao en bytes del objeto compartido.

SharedObject

567

Ejemplo El ejemplo siguiente obtiene el tamao del objeto compartido my_so:


var items_array:Array = new Array(101, 346, 483); var currentUserIsAdmin:Boolean = true; var currentUserName:String = "Ramona"; var my_so:SharedObject = SharedObject.getLocal("superfoo"); my_so.data.itemNumbers = items_array; my_so.data.adminPrivileges = currentUserIsAdmin; my_so.data.userName = currentUserName; var soSize:Number = my_so.getSize(); trace(soSize);

onStatus (controlador SharedObject.onStatus)


onStatus = function(infoObject:Object) {}

Se invoca cada vez que se publica un error, una advertencia o una nota informativa para un objeto compartido. Para responder a este controlador de eventos, deber crear una funcin que procese el objeto de informacin generado por el objeto compartido. El objeto de informacin tiene una propiedad code que contiene una cadena que describe el resultado del controlador onStatus, as como una propiedad level que contiene una cadena que puede indicar "Status" o "Error". Adems de este controlador, Flash Lite tambin proporciona una superfuncin denominada System.onStatus. Si se llama a onStatus para un objeto concreto y no hay ninguna funcin asignada para responder, Flash Lite procesa una funcin asignada a System.onStatus, si existe.

568

Clases de ActionScript

Los siguientes eventos le notifican cundo tienen lugar determinadas actividades SharedObject:
Propiedad code
SharedObject.Flush.Failed

Propiedad level
Error

Significado
El mtodo SharedObject.flush() que ha devuelto "pending" ha fallado (el usuario no ha asignado espacio adicional del disco para el objeto compartido cuando Flash Player mostr el cuadro de dilogo Configuracin global de almacenamiento). El mtodo SharedObject.flush() que devolvi "pending" ha finalizado correctamente (el usuario ha asignado espacio adicional del disco para el objeto compartido).

SharedObject.Flush.Success

Status

Parmetros
infoObject:Object

- Un parmetro definido de acuerdo con el mensaje de estado.

Ejemplo El ejemplo siguiente muestra distintos mensajes que dependen de si el usuario ha elegido permitir o denegar que la instancia de objeto SharedObject escriba en el disco.
this.createTextField("message_txt", this.getNextHighestDepth(), 0, 30, 120, 50); this.message_txt.wordWrap = true; this.createTextField("status_txt", this.getNextHighestDepth(), 0, 90, 120, 100); this.status_txt.wordWrap = true; var items_array:Array = new Array(101, 346, 483); var currentUserIsAdmin:Boolean = true; var currentUserName:String = "Ramona"; var my_so:SharedObject = SharedObject.getLocal("superfoo"); my_so.data.itemNumbers = items_array; my_so.data.adminPrivileges = currentUserIsAdmin; my_so.data.userName = currentUserName; my_so.onStatus = function(infoObject:Object) { for (var i in infoObject) { status_txt.text += i+"-"+infoObject[i] +"\n"; }

SharedObject

569

}; var flushResult = my_so.flush(1000001); switch (flushResult) { case 'pending' : message_txt.text = "flush is pending, waiting on user interaction."; break; case true : message_txt.text = "flush was successful. Requested storage space approved."; break; case false : message_txt.text = "flush failed. User denied request for additional storage."; break; }

Vase tambin
onStatus (controlador System.onStatus)

removeListener (mtodo SharedObject.removeListener)


public static removeListener(objectName:String)

Elimina todos los detectores aadidos con el mtodo addListener(). Parmetros


objectName:String

- Una cadena que representa el nombre del objeto.

Valor devuelto

570

Clases de ActionScript

Sound
Object | +-Sound public class Sound extends Object

La clase Sound le permite controlar el sonido de una pelcula. Puede aadir sonidos de la biblioteca a un clip de pelcula mientras se reproduce la pelcula, as como controlar dichos sonidos. Si no especifica un destino cuando al crear un nuevo objeto Sound, podr utilizar los mtodos para controlar el sonido de toda la pelcula. Deber utilizar el constructor new Sound para crear un objeto Sound antes de llamar a los mtodos de la clase Sound. Resumen de propiedades
Modificadores Propiedad
duration:Number

Descripcin
La duracin de un sonido, en milisegundos. Proporciona acceso a los metadatos que forman parte de un archivo MP3. El nmero de milisegundos que se ha estado reproduciendo un sonido.

[read-only]
id3:Object [read-

only]
position:Number

[read-only]

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onID3 = function() {}

Descripcin
Se invoca cada vez que hay nuevos datos ID3 disponibles para un archivo MP3 cargado mediante Sound.attachSound() o Sound.loadSound().

Sound

571

Evento
onLoad = function(success:Bo olean) {} onSoundComplete = function() {}

Descripcin
Se invoca automticamente cuando se carga un sonido.

Se invoca automticamente cuando se deja de reproducir un sonido.

Resumen de constructores
Firma
Sound([target:Object])

Descripcin
Crea un nuevo objeto Sound para un clip de pelcula especificado.

Resumen de mtodos
Modificadores Firma
: Void getBytesLoaded() : Number

Descripcin
id al objeto Sound indicado. Devuelve el nmero de bytes cargados (sin interrupcin) para el objeto Sound especificado. Devuelve el tamao en bytes del objeto Sound especificado. Devuelve el nivel de desplazamiento horizontal establecido en la ltima llamada a setPan() como un entero entre -100 (izquierda) y +100 (derecha). Devuelve la informacin de transformacin de sonido para el objeto Sound especificado configurado con la ltima llamada a Sound.setTransform(). Devuelve el nivel de volumen del sonido como un entero entre 0 y 100, siendo 0 desactivado y 100 volumen total. Carga un archivo MP3 en un objeto Sound.

attachSound(id:String) Asocia el sonido especificado en el parmetro

getBytesTotal() : Number getPan() : Number

getTransform() : Object

getVolume() : Number

loadSound(url:String, isStreaming:Boolean) : Void setPan(value:Number) : Void

Determina cmo se reproduce el sonido en los canales (altavoces) izquierdo y derecho.

572

Clases de ActionScript

Modificadores Firma
Object:Object) : Void

Descripcin
balance) de sonido para un objeto Sound.

setTransform(transform Establece la informacin de transformacin (o

setVolume(value:Number Establece el volumen para el objeto Sound. ) : Void start([secondOffset:Nu Comienza la reproduccin del ltimo sonido mber], [loops:Number]) : Void

asociado desde el principio, si no hay ningn parmetro especificado, o a partir del punto del sonido especificado por el parmetro secondOffset. reproduciendo actualmente, si no se ha especificado ningn parmetro, o slo el sonido especificado por el parmetro idName.

stop([linkageID:String Detiene todos los sonidos que se estn ]) : Void

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

attachSound (mtodo Sound.attachSound)


public attachSound(id:String) : Void

Asocia el sonido especificado en el parmetro id al objeto Sound indicado. El sonido debe encontrarse en la biblioteca del archivo SWF actual y su exportacin debe haberse especificado en el cuadro de dilogo Propiedades de vinculacin. Debe llamar a Sound.start() para comenzar a reproducir el sonido. Para asegurarse de que el sonido puede controlarse desde cualquier escena del archivo SWF, coloque el sonido en la lnea de tiempo principal del archivo SWF. Parmetros
id:String

- El identificador de un sonido exportado en la biblioteca. El identificador se encuentra en el cuadro de dilogo Propiedades de vinculacin.

Sound

573

Ejemplo El ejemplo siguiente asocia el logoff_id del sonido a my_sound. Un sonido en la biblioteca tiene el identificador de vinculacin logoff_id.
var my_sound:Sound = new Sound(); my_sound.attachSound("logoff_id"); my_sound.start();

duration (propiedad Sound.duration)


public duration : Number [read-only]

La duracin de un sonido, en milisegundos. Nota: Flash Lite 2.0 slo admite esta propiedad para sonido nativo de Flash. No se admiten formatos de sonido especficos para un dispositivo host. Ejemplo El ejemplo siguiente carga un sonido y muestra la duracin del archivo de sonido en el panel Salida. Aada el siguiente cdigo ActionScript al archivo AS o FLA.
var my_sound:Sound = new Sound(); my_sound.onLoad = function(success:Boolean) { var totalSeconds:Number = this.duration/1000; trace(this.duration+" ms ("+Math.round(totalSeconds)+" seconds)"); var minutes:Number = Math.floor(totalSeconds/60); var seconds = Math.floor(totalSeconds)%60; if (seconds<10) { seconds = "0"+seconds; } trace(minutes+":"+seconds); }; my_sound.loadSound("song1.mp3", true);

El siguiente ejemplo carga varias canciones en un archivo SWF. Una barra de progreso, creada en la interfaz API de dibujo, muestra cmo avanza la carga. Cuando comienza y finaliza la carga de la msica, aparece la informacin correspondiente en el panel Salida. Cuando comienza y finaliza la carga de la msica, aparece la informacin correspondiente se escribe en el archivo de registro. Aada el siguiente cdigo ActionScript al archivo AS o FLA.
var pb_height:Number = 10; var pb_width:Number = 100; var pb:MovieClip = this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth()); pb.createEmptyMovieClip("bar_mc", pb.getNextHighestDepth()); pb.createEmptyMovieClip("vBar_mc", pb.getNextHighestDepth()); pb.createEmptyMovieClip("stroke_mc", pb.getNextHighestDepth()); pb.createTextField("pos_txt", pb.getNextHighestDepth(), 0, pb_height, pb_width, 22);

574

Clases de ActionScript

pb._x = 100; pb._y = 100; with (pb.bar_mc) { beginFill(0x00FF00); moveTo(0, 0); lineTo(pb_width, 0); lineTo(pb_width, pb_height); lineTo(0, pb_height); lineTo(0, 0); endFill(); _xscale = 0; } with (pb.vBar_mc) { lineStyle(1, 0x000000); moveTo(0, 0); lineTo(0, pb_height); } with (pb.stroke_mc) { lineStyle(3, 0x000000); moveTo(0, 0); lineTo(pb_width, 0); lineTo(pb_width, pb_height); lineTo(0, pb_height); lineTo(0, 0); } var my_interval:Number; var my_sound:Sound = new Sound(); my_sound.onLoad = function(success:Boolean) { if (success) { trace("sound loaded"); } }; my_sound.onSoundComplete = function() { clearInterval(my_interval); trace("Cleared interval"); } my_sound.loadSound("song3.mp3", true); my_interval = setInterval(updateProgressBar, 100, my_sound); function updateProgressBar(the_sound:Sound):Void { var pos:Number = Math.round(the_sound.position/the_sound.duration 100); pb.bar_mc._xscale = pos; pb.vBar_mc._x = pb.bar_mc._width; pb.pos_txt.text = pos+"%"; }

Vase tambin
position (propiedad Sound.position)

Sound

575

getBytesLoaded (mtodo Sound.getBytesLoaded)


public getBytesLoaded() : Number

Devuelve el nmero de bytes cargados (sin interrupcin) para el objeto Sound especificado. Puede comparar el valor de getBytesLoaded() con el valor de getBytesTotal() para determinar el porcentaje de un sonido que se ha cargado. Valor devuelto
Number

- Un entero que indica el nmero de bytes cargados.

Ejemplo El ejemplo siguiente crea de forma dinmica dos campos de texto que muestran los bytes cargados y el total de bytes de un archivo de sonido que se carga en el archivo SWF. Un campo de texto muestra tambin un mensaje cuando termina la carga del archivo. Aada el siguiente cdigo ActionScript al archivo FLA o AS:
this.createTextField("message_txt", this.getNextHighestDepth(), 10,10,300,22) this.createTextField("status_txt", this.getNextHighestDepth(), 10, 50, 300, 40); status_txt.autoSize = true; status_txt.multiline = true; status_txt.border = false; var my_sound:Sound = new Sound(); my_sound.onLoad = function(success:Boolean) { if (success) { this.start(); message_txt.text = "Finished loading"; } }; my_sound.onSoundComplete = function() { message_txt.text = "Clearing interval"; clearInterval(my_interval); }; my_sound.loadSound("song2.mp3", true); var my_interval:Number; my_interval = setInterval(checkProgress, 100, my_sound); function checkProgress(the_sound:Sound):Void { var pct:Number = Math.round(the_sound.getBytesLoaded()/ the_sound.getBytesTotal() 100); var pos:Number = Math.round(the_sound.position/the_sound.duration 100); status_txt.text = the_sound.getBytesLoaded()+" of "+the_sound.getBytesTotal()+" bytes ("+pct+"%)"+newline; status_txt.text += the_sound.position+" of "+the_sound.duration+" milliseconds ("+pos+"%)"+newline; }

576

Clases de ActionScript

Vase tambin
getBytesTotal (mtodo Sound.getBytesTotal)

getBytesTotal (mtodo Sound.getBytesTotal)


public getBytesTotal() : Number

Devuelve el tamao en bytes del objeto Sound especificado. Valor devuelto


Number

- Un entero que indica el tamao total en bytes del objeto Sound especificado.

Ejemplo Para obtener una muestra de cmo se utiliza este mtodo, consulte Sound.getBytesLoaded(). Vase tambin
getBytesLoaded (mtodo Sound.getBytesLoaded)

getPan (mtodo Sound.getPan)


public getPan() : Number

Devuelve el nivel de desplazamiento horizontal establecido en la ltima llamada a setPan() como un entero entre -100 (izquierda) y +100 (derecha). (0 establece de la misma forma los canales izquierdo y derecho.) La configuracin de desplazamiento horizontal controla el balance izquierda-derecha del sonido actual y otros sonidos futuros del archivo SWF. Este mtodo es acumulativo con setVolume() o setTransform(). Nota: Flash Lite 2.0 slo admite este mtodo para sonido nativo de Flash. No se admiten formatos de sonido especficos para un dispositivo host. Valor devuelto
Number

- Un entero.

Ejemplo El siguiente ejemplo crea un campo de texto para mostrar el valor del nivel de desplazamiento para sonido nativo de Flash. El identificador de vinculacin para el sonido es "combo". Aada el siguiente cdigo ActionScript al archivo FLA o AS:
this.createTextField("pan_txt", 1, 0, 100, 100, 100); mix=new Sound();

Sound

577

mix.attachSound("combo"); mix.start(); mix.setPan(-100); pan_txt.text = mix.getPan(this);

Puede utilizar el ejemplo siguiente para iniciar el sonido de dispositivo. Dado que Flash Lite no admite flujo de sonido, se recomienda cargar el sonido antes de reproducirlo.
var my_sound:Sound = new Sound(); my_sound.onLoad = function(success) { if (success) { my_sound.start(); } else { output.text = "loading failure"; } }; my_sound.loadSound("song1.mp3",false);

Vase tambin
setPan (mtodo Sound.setPan)

getTransform (mtodo Sound.getTransform)


public getTransform() : Object

Devuelve la informacin de transformacin de sonido para el objeto Sound especificado configurado con la ltima llamada a Sound.setTransform(). Nota: Flash Lite 2.0 slo admite este mtodo para sonido nativo de Flash. No se admiten formatos de sonido especficos para un dispositivo host. Valor devuelto
Object - Un objeto con propiedades que contienen los valores de porcentaje de los canales del objeto Sound especificado.

Ejemplo El ejemplo siguiente asocia cuatro clips de pelcula desde un smbolo de la biblioteca (identificador de vinculacin: knob_id) utilizados como controles deslizantes (o botones) para controlar el archivo de sonido que se carga en el archivo SWF. Estos controles deslizantes controlan el objeto de transformacin, o balance, de un archivo de sonido. Para ms informacin, consulte la entrada para Sound.setTransform(). Aada el siguiente cdigo ActionScript al archivo FLA o AS:
var my_sound:Sound = new Sound(); my_sound.loadSound("song1.mp3", true); var transform_obj:Object = my_sound.getTransform();

578

Clases de ActionScript

this.createEmptyMovieClip("transform_mc", this.getNextHighestDepth()); transform_mc.createTextField("transform_txt", transform_mc.getNextHighestDepth, 0, 8, 120, 22); transform_mc.transform_txt.html = true; var knob_ll:MovieClip = transform_mc.attachMovie("knob_id", transform_mc.getNextHighestDepth(), {_x:0, _y:30}); var knob_lr:MovieClip = transform_mc.attachMovie("knob_id", transform_mc.getNextHighestDepth(), {_x:30, _y:30}); var knob_rl:MovieClip = transform_mc.attachMovie("knob_id", transform_mc.getNextHighestDepth(), {_x:60, _y:30}); var knob_rr:MovieClip = transform_mc.attachMovie("knob_id", transform_mc.getNextHighestDepth(), {_x:90, _y:30}); knob_ll.top = knob_ll._y; knob_ll.bottom = knob_ll._y+100; knob_ll.left = knob_ll._x; knob_ll.right = knob_ll._x; knob_ll._y = knob_ll._y+(100-transform_obj['ll']); knob_ll.onPress = pressKnob; knob_ll.onRelease = releaseKnob; knob_ll.onReleaseOutside = releaseKnob; knob_lr.top = knob_lr._y; knob_lr.bottom = knob_lr._y+100; knob_lr.left = knob_lr._x; knob_lr.right = knob_lr._x; knob_lr._y = knob_lr._y+(100-transform_obj['lr']); knob_lr.onPress = pressKnob; knob_lr.onRelease = releaseKnob; knob_lr.onReleaseOutside = releaseKnob; knob_rl.top = knob_rl._y; knob_rl.bottom = knob_rl._y+100; knob_rl.left = knob_rl._x; knob_rl.right = knob_rl._x; knob_rl._y = knob_rl._y+(100-transform_obj['rl']); knob_rl.onPress = pressKnob; knob_rl.onRelease = releaseKnob; knob_rl.onReleaseOutside = releaseKnob; knob_rr.top = knob_rr._y; knob_rr.bottom = knob_rr._y+100; knob_rr.left = knob_rr._x; knob_rr.right = knob_rr._x; knob_rr._y = knob_rr._y+(100-transform_obj['rr']); knob_rr.onPress = pressKnob; knob_rr.onRelease = releaseKnob; "ll_mc", "lr_mc", "rl_mc", "rr_mc",

Sound

579

knob_rr.onReleaseOutside = releaseKnob; updateTransformTxt(); function pressKnob() { this.startDrag(false, this.left, this.top, this.right, this.bottom); } function releaseKnob() { this.stopDrag(); updateTransformTxt(); } function updateTransformTxt() { var ll_num:Number = 30+100-knob_ll._y; var lr_num:Number = 30+100-knob_lr._y; var rl_num:Number = 30+100-knob_rl._y; var rr_num:Number = 30+100-knob_rr._y; my_sound.setTransform({ll:ll_num, lr:lr_num, rl:rl_num, rr:rr_num}); transform_mc.transform_txt.htmlText = "<textformat tabStops='[0,30,60,90]'>"; transform_mc.transform_txt.htmlText += ll_num+"\t"+lr_num+"\t"+rl_num+"\t"+rr_num; transform_mc.transform_txt.htmlText += "</textformat>"; }

Vase tambin
setTransform (mtodo Sound.setTransform)

getVolume (mtodo Sound.getVolume)


public getVolume() : Number

Devuelve el nivel de volumen del sonido como un entero entre 0 y 100, siendo 0 desactivado y 100 volumen total. El valor predeterminado es 100. Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente crea un control deslizante que utiliza la interfaz API de dibujo y un clip de pelcula creado en tiempo de ejecucin. Un campo de texto creado de forma dinmica muestra el nivel de volumen actual del sonido que se reproduce en el archivo SWF. Aada el siguiente cdigo ActionScript al archivo ActionScript o FLA:
var my_sound:Sound = new Sound(); my_sound.loadSound("song3.mp3", true);

580

Clases de ActionScript

this.createEmptyMovieClip("knob_mc", this.getNextHighestDepth()); knob_mc.left = knob_mc._x; knob_mc.right = knob_mc.left+100; knob_mc.top = knob_mc._y; knob_mc.bottom = knob_mc._y; knob_mc._x = my_sound.getVolume(); with (knob_mc) { lineStyle(0, 0x000000); beginFill(0xCCCCCC); moveTo(0, 0); lineTo(4, 0); lineTo(4, 18); lineTo(0, 18); lineTo(0, 0); endFill(); } knob_mc.createTextField("volume_txt", knob_mc.getNextHighestDepth(), knob_mc._width+4, 0, 30, 22); knob_mc.volume_txt.text = my_sound.getVolume(); knob_mc.onPress = function() { this.startDrag(false, this.left, this.top, this.right, this.bottom); this.isDragging = true; }; knob_mc.onMouseMove = function() { if (this.isDragging) { this.volume_txt.text = this._x; } } knob_mc.onRelease = function() { this.stopDrag(); this.isDragging = false; my_sound.setVolume(this._x); };

Vase tambin
setVolume (mtodo Sound.setVolume)

Sound

581

id3 (propiedad Sound.id3)


public id3 : Object [read-only]

Proporciona acceso a los metadatos que forman parte de un archivo MP3. Los archivos de sonido MP3 pueden contener etiquetas ID3 que proporcionan metadatos sobre el archivo. Si un sonido MP3 que usted carga utilizando Sound.attachSound() o Sound.loadSound() contiene etiquetas ID3, puede consultar estas propiedades. Slo se admiten las etiquetas ID3 que utilizan el conjunto de caracteres UTF-8. Flash Player 6 (6.0.40.0) y versiones posteriores utilizan la propiedad Sound.id3 para lograr la compatibilidad con las etiquetas ID3 1.0 e ID3 1.1. Flash Player 7 aade compatibilidad con las etiquetas ID3 2.0, especficamente con las de las versiones 2.3 y 2.4. En la siguiente tabla se enumeran las etiquetas ID3 2.0 estndar y el tipo de contenido que representan las etiquetas; las consultas de estas etiquetas se realizan con el formato my_sound.id3.COMM, my_sound.id3.TIME, etc. Los archivos MP3 pueden contener etiquetas distintas de las indicadas en esta tabla; Sound.id3 proporciona el acceso tambin a dichas etiquetas.
Propiedad
TFLT TIME TIT1 TIT2 TIT3 TKEY TLAN TLEN TMED TOAL TOFN TOLY TOPE TORY TOWN TPE1 TPE2

Descripcin
Tipo de archivo Tiempo Descripcin de grupo de contenido Ttulo/nombre de cancin/descripcin del contenido Subttulo/descripcin adicional Clave inicial Idiomas Longitud Tipo de medio lbum/pelcula/ttulo de espectculo original Nombre de archivo original Letrista/escritor original Artistas/intrpretes originales Ao de publicacin original Propietario/licenciatario del archivo Intrpretes/solistas principales Grupo/orquesta/acompaamiento

582

Clases de ActionScript

Propiedad
TPE3 TPE4 TPOS TPUB TRCK TRDA TRSN TRSO TSIZ TSRC TSSE TYER WXXX

Descripcin
Director/intrprete adicional Interpretado, remezclado o editado por Parte de un conjunto Editor Nmero de pista/posicin en el conjunto Fechas de grabacin Nombre de emisora de Internet Propietario de emisora de Internet Tamao ISRC (cdigo de grabacin estndar internacional) Software/hardware y configuracin empleados para la codificacin Ao Fotograma de vnculo de URL

Flash Player 6 admita diversas etiquetas ID3 1.0. Si dichas etiquetas no estn en el archivo MP3 pero s lo estn las correspondientes etiquetas ID3 2.0, las etiquetas ID3 2.0 se copiarn en las propiedades de ID3 1.0, como se muestra en la siguiente tabla. Este proceso ofrece compatibilidad con scripts de versiones anteriores que pueda haber escrito con anterioridad y que lean propiedades ID3 1.0.
Etiqueta ID3 2.0
COMM TALB TCON TIT2 TPE1 TRCK TYER

Etiqueta ID3 1.0 correspondiente


Sound.id3.comment Sound.id3.album Sound.id3.genre Sound.id3.songname Sound.id3.artist Sound.id3.track Sound.id3.year

Sound

583

Ejemplo El ejemplo siguiente sigue la evolucin de las propiedades ID3 de song.mp3 en el panel Salida:
var my_sound:Sound = new Sound(); my_sound.onID3 = function(){ for(var prop in my_sound.id3){ trace(prop+": "+ my_sound.id3[prop]); } } my_sound.loadSound("song.mp3", false);

Vase tambin
attachSound (mtodo Sound.attachSound), loadSound (mtodo Sound.loadSound)

loadSound (mtodo Sound.loadSound)


public loadSound(url:String, isStreaming:Boolean) : Void

Carga un archivo MP3 en un objeto Sound. Puede utilizar el parmetro isStreaming para indicar si el sonido es un evento o un sonido de flujo. Los sonidos de eventos se cargan completamente antes de reproducirse. Se administran mediante la clase Sound de ActionScript y responden a todos los mtodos y propiedades de esta clase. Los sonidos de flujo se reproducen mientras se estn descargando. La reproduccin comienza cuando se han recibido suficientes datos para iniciar el descompresor. Todos los MP3 (sonidos de eventos y de flujo) cargados con este mtodo se guardan en el cach de archivo del navegador del sistema del usuario. Nota: en Flash Lite 2.0, puede omitir el parmetro isStreaming, ya que Flash Lite 2.0 trata cada sonido como un evento de sonido. Parmetros
url:String

- La ubicacin de un archivo de sonido MP3 en un servidor.

isStreaming:Boolean - Un valor booleano que indica si el sonido es un flujo de sonido (true) o un sonido de evento (false).

Ejemplo El ejemplo siguiente carga un sonido de evento, que no puede reproducirse hasta que se ha cargado completamente:
var my_sound:Sound = new Sound(); my_sound.loadSound("song1.mp3", false);

584

Clases de ActionScript

El siguiente ejemplo carga un flujo de sonido:


var my_sound:Sound = new Sound(); my_sound.loadSound("song1.mp3", true);

Vase tambin
onLoad (controlador Sound.onLoad)

onID3 (controlador Sound.onID3)


onID3 = function() {}

Se invoca cada vez que hay nuevos datos ID3 disponibles para un archivo MP3 cargado mediante Sound.attachSound() o Sound.loadSound(). Este controlador proporciona acceso a datos ID3 sin realizar ningn sondeo. Si hay etiquetas ID3 1.0 y ID3 2.0 en el archivo, se llamar a este controlador dos veces. Ejemplo El ejemplo siguiente muestra las propiedades ID3 de song1.mp3 en una instancia del componente DataGrid. Aada un DataGrid con el nombre de instancia id3_dg a su documento y el siguiente cdigo ActionScript a su archivo FLA o AS:
import mx.controls.gridclasses.DataGridColumn; var id3_dg:mx.controls.DataGrid; id3_dg.move(0, 0); id3_dg.setSize(Stage.width, Stage.height); var property_dgc:DataGridColumn = id3_dg.addColumn(new DataGridColumn("property")); property_dgc.width = 100; property_dgc.headerText = "ID3 Property"; var value_dgc:DataGridColumn = id3_dg.addColumn(new DataGridColumn("value")); value_dgc.width = id3_dg._width-property_dgc.width; value_dgc.headerText = "ID3 Value"; var my_sound:Sound = new Sound(); my_sound.onID3 = function(){ trace("onID3 called at "+getTimer()+" ms."); for (var prop in this.id3) { id3_dg.addItem({property:prop, value:this.id3[prop]}); } }; my_sound.loadSound("song1.mp3", true);

Sound

585

Vase tambin
attachSound (mtodo Sound.attachSound), id3 (propiedad Sound.id3), loadSound (mtodo Sound.loadSound)

onLoad (controlador Sound.onLoad)


onLoad = function(success:Boolean) {}

Se invoca automticamente cuando se carga un sonido. Debe crear la funcin que debe ejecutarse cuando se invoque el controlador this. Puede utilizar una funcin annima o una funcin con nombre (para ver un ejemplo de cada una, consulte Sound.onSoundComplete). Debe definir este controlador antes de llamar a mySound.loadSound(). Parmetros
success:Boolean - Un valor booleano true si my_sound se ha cargado correctamente, false

en caso contrario. Ejemplo El ejemplo siguiente crea un nuevo objeto Sound y carga un sonido. El controlador onLoad gestiona la carga del sonido, por lo que puede iniciar la cancin una vez que se ha cargado sin errores. Cree un nuevo archivo FLA y aada el siguiente cdigo ActionScript al archivo FLA o AS. Para que este ejemplo funcione, debe tener un MP3 con el nombre song1.mp3 en el mismo directorio que el archivo FLA o AS.
this.createTextField("status_txt", this.getNextHighestDepth(), 0,0,100,22); // crea un objeto Sound nuevo var my_sound:Sound = new Sound(); // Si se carga el sonido, reproducirlo; si no, rastrear la carga del fallo my_sound.onLoad = function(success:Boolean) { if (success) { my_sound.start(); status_txt.text = "Sound loaded"; } else { status_txt.text = "Sound failed"; } }; // Cargar el sonido. my_sound.loadSound("song1.mp3", true);

Vase tambin
loadSound (mtodo Sound.loadSound)

586

Clases de ActionScript

onSoundComplete (controlador Sound.onSoundComplete)


onSoundComplete = function() {}

Se invoca automticamente cuando se deja de reproducir un sonido. Puede utilizar este controlador para activar eventos de un archivo SWF cuando un sonido termine de reproducirse. Debe crear la funcin que debe ejecutarse cuando se invoque este controlador. Puede utilizar una funcin annima o una funcin con nombre. Ejemplo Sintaxis 1: El ejemplo siguiente utiliza una funcin annima:
var my_sound:Sound = new Sound(); my_sound.attachSound("mySoundID"); my_sound.onSoundComplete = function() { trace("mySoundID completed"); }; my_sound.start();

Sintaxis 2: El ejemplo siguiente utiliza una funcin con nombre:


function callback1() { trace("mySoundID completed"); } var my_sound:Sound = new Sound(); my_sound.attachSound("mySoundID"); my_sound.onSoundComplete = callback1; my_sound.start();

Vase tambin
onLoad (controlador Sound.onLoad)

position (propiedad Sound.position)


public position : Number [read-only]

El nmero de milisegundos que se ha estado reproduciendo un sonido. Si el sonido se reproduce de manera indefinida, la posicin se restablece en 0 al comienzo de cada nueva reproduccin. Nota: Flash Lite 2.0 slo admite esta propiedad para sonido nativo de Flash. No se admiten formatos de sonido especficos para un dispositivo host.

Sound

587

Ejemplo Para obtener una muestra de cmo se utiliza esta propiedad, consulte Sound.duration. Vase tambin
duration (propiedad Sound.duration)

setPan (mtodo Sound.setPan)


public setPan(value:Number) : Void

Determina cmo se reproduce el sonido en los canales (altavoces) izquierdo y derecho. En el caso de sonidos mono, pan determina a travs de qu altavoz (izquierdo o derecho) se reproduce el sonido. Nota: Flash Lite 2.0 slo admite este mtodo para sonido nativo de Flash. No se admiten formatos de sonido especficos para un dispositivo host. Parmetros
value:Number

- Un entero que especifica el balance izquierda-derecha de un sonido. El intervalo de valores vlidos es de -100 a 100, donde -100 utiliza slo el canal izquierdo, 100 utiliza slo el canal derecho y 0 reparte el sonido de forma uniforme entre los dos canales. Ejemplo Para obtener una muestra de cmo se utiliza este mtodo, consulte Sound.getPan().

Vase tambin
attachSound (mtodo Sound.attachSound), getPan (mtodo Sound.getPan), setTransform (mtodo Sound.setTransform), setVolume (mtodo Sound.setVolume), start (mtodo Sound.start)

setTransform (mtodo Sound.setTransform)


public setTransform(transformObject:Object) : Void

Establece la informacin de transformacin (o balance) de sonido para un objeto Sound. El parmetro soundTransformObject es un objeto que se crea utilizando el mtodo constructor de la clase Object genrica con parmetros que especifican cmo se distribuye el sonido entre los canales (altavoces) izquierdo y derecho.

588

Clases de ActionScript

Los sonidos necesitan una cantidad considerable de espacio en disco y de memoria. Dado que los sonidos estreo utilizan el doble de informacin que los sonidos mono, normalmente es preferible utilizar sonidos mono de 22-KHz de 6 bits. Puede utilizar setTransform() para reproducir sonidos mono como si fueran estreo, reproducir sonidos estreo en mono y agregar a los sonidos efectos muy atractivos. Nota: Flash Lite 2.0 slo admite este mtodo para sonido nativo de Flash. No se admiten formatos de sonido especficos para un dispositivo host. Las propiedades de soundTransformObject son stas: un valor porcentual que especifica la cantidad de entrada izquierda que debe reproducirse en el altavoz izquierdo (0-100).
1r: un valor porcentual que especifica la cantidad de entrada derecha que debe reproducirse en el altavoz izquierdo (0-100). rr: un valor porcentual que especifica la cantidad de entrada derecha que debe reproducirse en el altavoz derecho (0-100). rl: un valor porcentual que especifica la cantidad de entrada izquierda que debe reproducirse en el altavoz derecho (0-100). 11:

El resultado neto de estos parmetros se representa mediante la siguiente frmula:


leftOutput = left_input ~ ll + right_input ~ lr rightOutput = right_input ~ rr + left_input ~ rl

Los valores de left_input o right_input se determinan mediante el tipo (estreo o mono) de sonido del archivo SWF. Los sonidos estreo dividen la entrada de sonido de manera homognea entre los altavoces izquierdo y derecho y tienen la siguiente configuracin de transformacin predeterminada:
ll lr rr rl = = = = 100 0 100 0

Los sonidos mono reproducen toda la entrada de sonido en el altavoz izquierdo y tienen la siguiente configuracin de transformacin predeterminada:
ll lr rr rl = = = = 100 100 0 0

Parmetros
transformObject:Object

- Un objeto creado con el constructor de la clase Object genrica.

Sound

589

Ejemplo El ejemplo siguiente muestra una configuracin que puede conseguirse mediante el uso de setTransform(), pero que no se obtiene si se utilizan setVolume() o setPan(), aunque se hayan combinado. El cdigo siguiente crea un nuevo objeto soundTransformObject y establece sus propiedades de forma que el sonido de los dos canales se reproduzca solamente por el canal izquierdo.
var mySoundTransformObject:Object = new Object(); mySoundTransformObject.ll = 100; mySoundTransformObject.lr = 100; mySoundTransformObject.rr = 0; mySoundTransformObject.rl = 0;

Para aplicar el objeto soundTransformObject a un objeto Sound, debe pasarlo al objeto Sound mediante setTransform() de la forma siguiente:
my_sound.setTransform(mySoundTransformObject);

El ejemplo siguiente reproduce un sonido estreo como mono; el objeto soundTransformObjectMono tiene los siguientes parmetros:
var mySoundTransformObjectMono:Object = new Object(); mySoundTransformObjectMono.ll = 50; mySoundTransformObjectMono.lr = 50; mySoundTransformObjectMono.rr = 50; mySoundTransformObjectMono.rl = 50; my_sound.setTransform(mySoundTransformObjectMono);

Este ejemplo reproduce en el canal izquierdo a media capacidad y aade el resto al canal derecho; el objeto soundTransformObjectHalf tiene los siguientes parmetros:
var mySoundTransformObjectHalf:Object = new Object(); mySoundTransformObjectHalf.ll = 50; mySoundTransformObjectHalf.lr = 0; mySoundTransformObjectHalf.rr = 100; mySoundTransformObjectHalf.rl = 50; my_sound.setTransform(mySoundTransformObjectHalf); var mySoundTransformObjectHalf:Object = {ll:50, lr:0, rr:100, rl:50};

Vase tambin
Object, getTransform (mtodo Sound.getTransform)

590

Clases de ActionScript

setVolume (mtodo Sound.setVolume)


public setVolume(value:Number) : Void

Establece el volumen para el objeto Sound. Parmetros


value:Number - Un nmero del 0 al 100 que representa un nivel de volumen. 100 es mximo

volumen y 0 sin volumen. El valor predeterminado es 100. Ejemplo Para obtener una muestra de cmo se utiliza este mtodo, consulte Sound.getVolume(). Vase tambin
setPan (mtodo Sound.setPan), setTransform (mtodo Sound.setTransform)

Constructor Sound
public Sound([target:Object])

Crea un nuevo objeto Sound para un clip de pelcula especificado. Si no especifica una instancia de destino, el objeto Sound controlar todos los sonidos de la pelcula. Parmetros
target:Object

[opcional] - La instancia de clip de pelcula en la que se utiliza el objeto

Sound. Ejemplo El siguiente ejemplo crea un nuevo objeto Sound con el nombre global_sound. La segunda lnea llama a setVolume() y ajusta el volumen de todos los sonidos de la pelcula al 50%.
var global_sound:Sound = new Sound(); global_sound.setVolume(50);

El siguiente ejemplo crea un objeto Sound, lo pasa al clip de pelcula de destino my_mc y llama al mtodo start, que reproduce todos los sonidos de my_mc.
var movie_sound:Sound = new Sound(my_mc); movie_sound.start();

Sound

591

start (mtodo Sound.start)


public start([secondOffset:Number], [loops:Number]) : Void

Comienza la reproduccin del ltimo sonido asociado desde el principio, si no hay ningn parmetro especificado, o a partir del punto del sonido especificado por el parmetro secondOffset. Parmetros [opcional] - Un parmetro que permite iniciar la reproduccin del sonido en un punto especfico. Por ejemplo, si tiene un sonido de 30 segundos y desea que comience a reproducirse a la mitad, especifique 15 para el parmetro secondOffset. El sonido no se retrasa 15 segundos sino que empieza a reproducirse en la marca de 15 segundos.
secondOffset:Number loops:Number

[opcional] - Un parmetro que permite especificar el nmero de veces consecutivas que debe reproducirse el sonido. Este parmetro no est disponible en el caso de flujos de sonido. Ejemplo

El ejemplo siguiente crea un nuevo objeto Sound y carga un sonido. El controlador onLoad carga el sonido, por lo que puede iniciar la cancin una vez que se ha cargado sin errores. Posteriormente, el sonido utiliza el mtodo start() para iniciar la reproduccin. Cree un nuevo archivo FLA y aada el siguiente cdigo ActionScript al archivo FLA o ActionScript. Para que este ejemplo funcione, debe tener un MP3 con el nombre song1.mp3 en el mismo directorio que el archivo FLA o AS.
this.createTextField("status_txt", this.getNextHighestDepth(), 0,0,100,22); // crea un objeto Sound nuevo var my_sound:Sound = new Sound(); // Si se carga el sonido, reproducirlo; si no, rastrear la carga del fallo my_sound.onLoad = function(success:Boolean) { if (success) { my_sound.start(); status_txt.text = "Sound loaded"; } else { status_txt.text = "Sound failed"; } }; // Cargar el sonido. my_sound.loadSound("song1.mp3", true);

Vase tambin
stop (mtodo Sound.stop)

592

Clases de ActionScript

stop (mtodo Sound.stop)


public stop([linkageID:String]) : Void

Detiene todos los sonidos que se estn reproduciendo actualmente, si no se ha especificado ningn parmetro, o slo el sonido especificado por el parmetro idName. Parmetros
linkageID:String [opcional] - Un parmetro que especifica que deje de reproducirse un sonido determinado. El parmetro idName debe ir entre comillas (" ").

Ejemplo El ejemplo siguiente emplea dos botones, stop_btn y play_btn, para controlar la reproduccin de un sonido que se carga en un archivo SWF. Aada dos botones a su documento y el siguiente cdigo ActionScript a su archivo FLA o AS:
var my_sound:Sound = new Sound(); my_sound.loadSound("song1.mp3", true); stop_btn.onRelease = function() { trace("sound stopped"); my_sound.stop(); }; play_btn.onRelease = function() { trace("sound started"); my_sound.start(); };

Vase tambin
start (mtodo Sound.start)

Stage
Object | +-Stage public class Stage extends Object

La clase Stage es una clase de nivel superior a cuyos mtodos, propiedades y controladores puede acceder sin emplear un constructor. Utilice los mtodos y propiedades de esta clase para acceder a la informacin de lmites de un archivo SWF y manipularla.

Stage

593

Resumen de propiedades
Modificadores Propiedad
static align:String

Descripcin
Indica la alineacin actual del archivo SWF en el reproductor o navegador. Propiedad (slo lectura); indica la altura actual en pxeles del escenario. Indica la escala actual del archivo SWF dentro de Flash Player. Propiedad (slo lectura); indica la anchura actual en pxeles del escenario.

static

height:Number

static

scaleMode:String

static

width:Number

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onResize = function() {}

Descripcin
Se invoca cuando Stage.scaleMode se establece como noScale y se redimensiona el archivo SWF.

Resumen de mtodos
Modificadores Firma
static r:Object) : Void static

Descripcin
(pero slo si Stage.scaleMode = "noScale"). addListener().

addListener(listene Detecta cundo se redimensiona un archivo SWF

removeListener(list Elimina un objeto detector creado con ener:Object) : Boolean

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

594

Clases de ActionScript

addListener (mtodo Stage.addListener)


public static addListener(listener:Object) : Void

Detecta cundo se redimensiona un archivo SWF (pero slo si Stage.scaleMode = "noScale"). El mtodo addListener() no funciona con la configuracin predeterminada de escala de clip de pelcula (showAll) ni con otras configuraciones de escala (exactFit y noBorderr). Para utilizar addListener(), deber crear primero un objeto detector. Los objetos detectores del escenario reciben notificacin de Stage.onResize. Parmetros
listener:Object - Un objeto que detecta una notificacin callback de los controladores de eventos Stage.onResize.

Ejemplo Este ejemplo crea un nuevo objeto detector con el nombre stageListener. A continuacin, utiliza stageListener para llamar a onResize y definir una funcin que se llamar cuando se active onResize. Por ltimo, el cdigo aade el objeto stageListener a la lista de funciones callback del objeto Stage. Los objetos detectores permiten que varios objetos detecten las notificaciones de cambio de tamao.
this.createTextField("stageSize_txt", this.getNextHighestDepth(), 10, 10, 100, 22); var stageListener:Object = new Object(); stageListener.onResize = function() { stageSize_txt.text = "w:"+Stage.width+", h:"+Stage.height; }; Stage.scaleMode = "noScale"; Stage.addListener(stageListener);

Vase tambin
onResize (detector de eventos Stage.onResize), removeListener (mtodo Stage.removeListener)

Stage

595

align (propiedad Stage.align)


public static align : String

Indica la alineacin actual del archivo SWF en el reproductor o navegador. En la siguiente tabla se enumeran los valores de la propiedad align. Todos aquellos valores no incluidos aqu centran el archivo SWF en el rea de Flash Player o el navegador, que es la configuracin predeterminada.
Valor
"T" "B" "L" "R" "TL" "TR" "BL" "BR"

Vertical
arriba abajo centrado centrado arriba arriba abajo abajo

Horizontal
centrado centrado izquierda derecha izquierda derecha izquierda derecha

Ejemplo El ejemplo siguiente demuestra las distintas alineaciones del archivo SWF. Aada una instancia de ComboBox al documento con el nombre stageAlign_cb. Aada el siguiente cdigo ActionScript al archivo FLA o AS:
var stageAlign_cb:mx.controls.ComboBox; stageAlign_cb.dataProvider = ['T', 'B', 'L', 'R', 'TL', 'TR', 'BL', 'BR']; var cbListener:Object = new Object(); cbListener.change = function(evt:Object) { var align:String = evt.target.selectedItem; Stage.align = align; }; stageAlign_cb.addEventListener("change", cbListener); Stage.scaleMode = "noScale";

Seleccione distintas configuraciones de alineacin desde el ComboBox.

596

Clases de ActionScript

height (propiedad Stage.height)


public static height : Number

Propiedad (slo lectura); indica la altura actual en pxeles del escenario. Cuando el valor de Stage.scaleMode es noScale, la propiedad height representa la altura de Flash Player. Cuando el valor de Stage.scaleMode no es noScale, la propiedad height representa la altura del archivo SWF. Ejemplo Este ejemplo crea un nuevo objeto detector con el nombre stageListener. A continuacin, utiliza myListener para llamar a onResize y definir una funcin que se llamar cuando se active onResize. Por ltimo, el cdigo aade el objeto myListener a la lista de funciones callback del objeto Stage. Los objetos detectores permiten que varios objetos detecten las notificaciones de cambio de tamao.
this.createTextField("stageSize_txt", this.getNextHighestDepth(), 10, 10, 100, 22); var stageListener:Object = new Object(); stageListener.onResize = function() { stageSize_txt.text = "w:"+Stage.width+", h:"+Stage.height; }; Stage.scaleMode = "noScale"; Stage.addListener(stageListener);

Vase tambin
align (propiedad Stage.align), scaleMode (propiedad Stage.scaleMode), width (propiedad Stage.width)

onResize (detector de eventos Stage.onResize)


onResize = function() {}

Se invoca cuando Stage.scaleMode se establece como noScale y se redimensiona el archivo SWF. Puede utilizar este controlador de eventos para escribir una funcin que disponga los objetos en el escenario cuando se redimensione el archivo SWF. Ejemplo El siguiente ejemplo muestra un mensaje en el panel Salida cuando se cambia el tamao del escenario:
Stage.scaleMode = "noScale" var myListener:Object = new Object(); myListener.onResize = function () { trace("Stage size is now " + Stage.width + " by " + Stage.height);

Stage

597

} Stage.addListener(myListener); // ms adelante llama a Stage.removeListener(myListener)

Vase tambin
scaleMode (propiedad Stage.scaleMode), addListener (mtodo Stage.addListener), removeListener (mtodo Stage.removeListener)

removeListener (mtodo Stage.removeListener)


public static removeListener(listener:Object) : Boolean

Elimina un objeto detector creado con addListener(). Parmetros


listener:Object addListener().

- Un objeto aadido a una lista de funciones de callback de un objeto con

Valor devuelto
Boolean

- Valor booleano.

Ejemplo El ejemplo siguiente muestra las dimensiones del escenario en un campo de texto creado de forma dinmica. Cuando se modifica el tamao del escenario, se actualizan los valores del campo de texto. Cree un botn con el nombre de instancia remove_btn. Aada el siguiente cdigo ActionScript al fotograma 1 de la lnea de tiempo.
this.createTextField("stageSize_txt", this.getNextHighestDepth(), 10, 10, 100, 22); stageSize_txt.autoSize = true; stageSize_txt.border = true; var stageListener:Object = new Object(); stageListener.onResize = function() { stageSize_txt.text = "w:"+Stage.width+", h:"+Stage.height; }; Stage.addListener(stageListener); remove_btn.onRelease = function() { stageSize_txt.text = "Removing Stage listener..."; Stage.removeListener(stageListener); }

Seleccione Control > Probar pelcula para probar este ejemplo. Los valores que ve en el campo de texto se actualizan cuando cambia el tamao del entorno de prueba. Al hacer clic en remove_btn, el detector desaparece y los valores dejan de actualizarse en el campo de texto.

598

Clases de ActionScript

Vase tambin
addListener (mtodo Stage.addListener)

scaleMode (propiedad Stage.scaleMode)


public static scaleMode : String

Indica la escala actual del archivo SWF dentro de Flash Player. La propiedad scaleMode fuerza al archivo SWF a adoptar un modo de escala especfico. De manera predeterminada, el archivo SWF utiliza los parmetros HTML establecidos en el cuadro de dilogo Configuracin de publicacin. La propiedad scaleMode puede utilizar los valores "exactFit", "showAll", "noBorder" y Cualquier otro valor establece la propiedad scaleMode con el valor predeterminado, "showAll".
"noScale".

showAll (Predeterminada) permite ver todo el contenido de Flash en el rea especificada sin distorsin, al mismo tiempo que mantiene la proporcin original del contenido. Es posible que aparezcan bordes a ambos lados de la aplicacin. noBorder

modifica la escala del contenido de Flash para que ocupe toda el rea especificada, sin distorsin pero quiz con algn recorte, mientras se mantiene la proporcin original de la aplicacin.

exactFit

hace que la totalidad del contenido de Flash sea visible en el rea especificada sin intentar mantener la proporcin original. Puede ocurrir una distorsin. hace que el tamao del contenido de Flash sea fijo, de manera que permanezca sin cambios aunque cambie el tamao de la ventana del reproductor. Puede producirse un recorte si la ventana del reproductor es ms pequea que el contenido de Flash.

noScale

Nota: la configuracin predeterminada es showAll, salvo en el modo de probar pelcula, en el que la configuracin predeterminada es noScale Ejemplo El ejemplo siguiente prueba varias configuraciones de escala para el archivo SWF. Aada una instancia de ComboBox al documento con el nombre scaleMode_cb. Aada el siguiente cdigo ActionScript al archivo FLA o AS:
var scaleMode_cb:mx.controls.ComboBox; scaleMode_cb.dataProvider = ["showAll", "exactFit", "noBorder", "noScale"]; var cbListener:Object = new Object(); cbListener.change = function(evt:Object) { var scaleMode_str:String = evt.target.selectedItem; Stage.scaleMode = scaleMode_str; }; scaleMode_cb.addEventListener("change", cbListener);

Stage

599

Para ver otro ejemplo, abra el archivo stagesize.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_flt_samples_and_tutorials_es. Descargue y descomprima el archivo Samples_and_Tutorials.zip para su versin de Flash Lite y acceda a la carpeta ActionScript para abrir el archivo de ejemplo.

width (propiedad Stage.width)


public static width : Number

Propiedad (slo lectura); indica la anchura actual en pxeles del escenario. Cuando el valor de Stage.scaleMode es "noScale", la propiedad width representa la anchura de Flash Player. Esto significa que Stage.width variar al redimensionar la ventana del reproductor. Cuando el valor de Stage.scaleMode no es "noScale", width representa la anchura del archivo SWF configurada durante la edicin del archivo en el cuadro de dilogo Propiedades del documento. Esto significa que el valor de width se mantiene constante al redimensionar la ventana del reproductor. Ejemplo Este ejemplo crea un nuevo objeto detector con el nombre stageListener. A continuacin, utiliza stageListener para llamar a onResize y definir una funcin que se llamar cuando se active onResize. Por ltimo, el cdigo aade el objeto stageListener a la lista de funciones callback del objeto Stage. Los objetos detectores permiten que varios objetos detecten las notificaciones de cambio de tamao.
this.createTextField("stageSize_txt", this.getNextHighestDepth(), 10, 10, 100, 22); var stageListener:Object = new Object(); stageListener.onResize = function() { stageSize_txt.text = "w:"+Stage.width+", h:"+Stage.height; }; Stage.scaleMode = "noScale"; Stage.addListener(stageListener);

Vase tambin
align (propiedad Stage.align), height (propiedad Stage.height), scaleMode (propiedad Stage.scaleMode)

600

Clases de ActionScript

String
Object | +-String public class String extends Object

La clase String es un envolvente para el tipo de datos primitivo de cadena y proporciona mtodos y propiedades que le permiten manipular tipos de valores de cadena primitivos. Puede convertir el valor de cualquier objeto en una cadena utilizando la funcin String(). Todos los mtodos de la clase String, salvo concat()), fromCharCode(), slice() y substr(), son genricos, lo que significa que los mtodos llaman a toString() antes de realizar sus operaciones y puede llamar a estos mtodos con otros objetos que no sean String. Dado que todos los ndices de cadenas estn basados en cero, el ndice del ltimo carcter de cualquier cadena x es x.length - 1. Puede llamar a cualquiera de los mtodos de la clase String utilizando el mtodo constructor new String o utilizando un nuevo valor de literal de cadena. Si especifica un literal de cadena, el intrprete de ActionScript lo convierte automticamente en un objeto String temporal, llama al mtodo y luego descarta el objeto String temporal. Tambin puede utilizar la propiedad String.length con un literal de cadena. No debe confundir un literal de cadena con un objeto String. En el siguiente ejemplo, la primera lnea de cdigo crea el literal de cadena first_string, mientras que la segunda lnea de cdigo crea el objeto String second_string:
var first_string:String = "foo" var second_string:String = new String("foo")

Utilice literales de cadena a no ser que necesite utilizar un objeto String especficamente. Resumen de propiedades
Modificadores Propiedad
length:Number

Descripcin
Un entero que especifica el nmero de caracteres del objeto String especificado.

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

String

601

Resumen de constructores
Firma Descripcin

String(value:String) Crea un nuevo objeto String.

Resumen de mtodos
Modificadores Firma
charAt(index:Number) : String

Descripcin
Devuelve el carcter situado en la posicin especificada por el parmetro index. entre 0 y 65535 que representa el carcter especificado por index. Combina el valor del objeto String con los parmetros y devuelve la nueva cadena formada; el valor original, my_str, permanece sin cambios. Devuelve una cadena formada por los caracteres representados por los valores Unicode de los parmetros. Busca la cadena y devuelve la posicin en la que aparece por primera vez value en la posicin de startIndex o despus de dicha posicin dentro de la cadena que origina la llamada. devuelve el ndice de la ltima posicin en que aparece value antes que startIndex dentro de la cadena que origina la llamada. Devuelve una cadena que incluye el carcter inicial (start) y todos los caracteres que aparecen hasta el carcter final (end), exclusive. fragmentndolo siempre que aparece el parmetro delimitador (delimiter) especificado y devuelve las subcadenas en una matriz. Devuelve los caracteres contenidos en una cadena desde el ndice especificado por el parmetro start hasta el nmero de caracteres especificado por el parmetro length.

charCodeAt(index:Numbe Devuelve un entero de 16 bits comprendido r) : Number

concat(value:Object) : String

static

fromCharCode() : String

indexOf(value:String, [startIndex:Number]) : Number

lastIndexOf(value:Stri Busca la cadena de derecha a izquierda y ng, [startIndex:Number]) : Number slice(start:Number, end:Number) : String

split(delimiter:String, Divide un objeto String en subcadenas [limit:Number]) : Array

substr(start:Number, length:Number) : String

602

Clases de ActionScript

Modificadores Firma
end:Number) : String

Descripcin
caracteres comprendidos entre los puntos especificados por los parmetros start y end. todos los caracteres en maysculas convertidos en minsculas.

substring(start:Number, Devuelve una cadena formada por los

toLowerCase() : String Devuelve una copia del objeto String con

toString() : String

Devuelve las propiedades de un objeto como cadenas aunque no lo sean. los caracteres en minsculas convertidos en maysculas.

toUpperCase() : String Devuelve una copia del objeto String con todos

valueOf() : String

Devuelve la cadena.

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

charAt (mtodo String.charAt)


public charAt(index:Number) : String

Devuelve el carcter situado en la posicin especificada por el parmetro index. Si index no es un nmero entre 0 y string.length - 1, se devolver una cadena vaca. Este mtodo es igual que String.charCodeAt(), con la diferencia de que el valor devuelto es un carcter, no un cdigo de carcter de entero de 16 bits. Parmetros
index:Number

- Un entero que especifica la posicin de un carcter en la cadena. El primer carcter se indica por 0 y el ltimo, por my_str.length-1. Valor devuelto

String - El carcter en el ndice especificado. O una String vaca si el ndice especificado est

fuera del rango de los ndices de esta String.

String

603

Ejemplo En el ejemplo siguiente, este mtodo se llama en la primera letra de la cadena Chris:
var my_str:String = "Chris"; var firstChar_str:String = my_str.charAt(0); trace(firstChar_str); // salida: C

Vase tambin
charCodeAt (mtodo String.charCodeAt)

charCodeAt (mtodo String.charCodeAt)


public charCodeAt(index:Number) : Number

Devuelve un entero de 16 bits comprendido entre 0 y 65535 que representa el carcter especificado por index. Si index no es un nmero entre 0 y string.length - 1, se devolver NaN. Este mtodo es igual que String.charAt(), con la diferencia de que el valor devuelto es un cdigo de carcter de entero de 16 bits, no un carcter. Parmetros
index:Number

- Un entero que especifica la posicin de un carcter en la cadena. El primer carcter se indica por 0, y el ltimo, por my_str.length - 1.

Valor devuelto
Number

- Un entero que representa el carcter especificado por index.

Ejemplo En el ejemplo siguiente, este mtodo se llama en la primera letra de la cadena "Chris":
var my_str:String = "Chris"; var firstChar_num:Number = my_str.charCodeAt(0); trace(firstChar_num); // salida: 67

Vase tambin
charAt (mtodo String.charAt)

604

Clases de ActionScript

concat (mtodo String.concat)


public concat(value:Object) : String

Combina el valor del objeto String con los parmetros y devuelve la nueva cadena formada; el valor original, my_str, permanece sin cambios. Parmetros
value:Object

- value1[,...valueN] Cero o ms valores para concatenar.

Valor devuelto
String

- Una cadena.

Ejemplo El ejemplo siguiente crea dos cadenas y las combina utilizado String.concat():
var stringA:String = "Hello"; var stringB:String = "World"; var combinedAB:String = stringA.concat(" ", stringB); trace(combinedAB); // salida: Hello World

fromCharCode (mtodo String.fromCharCode)


public static fromCharCode() : String

Devuelve una cadena formada por los caracteres representados por los valores Unicode de los parmetros. Valor devuelto
String

- Una cadena de los cdigos de caracteres Unicode especificados.

Ejemplo El ejemplo siguiente utiliza fromCharCode() para insertar un carcter @ en la direccin de correo electrnico:
var address_str:String = "dog"+String.fromCharCode(64)+"house.net"; trace(address_str); // salida: dog@house.net

String

605

indexOf (mtodo String.indexOf)


public indexOf(value:String, [startIndex:Number]) : Number

Busca la cadena y devuelve la posicin en la que aparece por primera vez value en la posicin de startIndex o despus de dicha posicin dentro de la cadena que origina la llamada. Este ndice est basado en cero, con lo cual se considera que el primer carcter est en el ndice 0, no en el ndice 1. Si no se encuentra value, el mtodo devuelve -1. Parmetros
value:String

- Una cadena que especifica que texto de la bsqueda. [opcional] - Un entero que especifica el ndice inicial de la bsqueda.

startIndex:Number

Valor devuelto
Number

- La posicin en que aparece por primera vez la subcadena especificada o -1.

Ejemplo Los siguientes ejemplos utilizan indexOf() para devolver el ndice de caracteres y subcadenas:
var searchString:String = "Lorem ipsum dolor sit amet."; var index:Number; index = searchString.indexOf("L"); trace(index); // salida: 0 index = searchString.indexOf("l"); trace(index); // salida: 14 index = searchString.indexOf("i"); trace(index); // salida: 6 index = searchString.indexOf("ipsum"); trace(index); // salida: 6 index = searchString.indexOf("i", 7); trace(index); // salida: 19 index = searchString.indexOf("z"); trace(index); // salida: -1

Vase tambin
lastIndexOf (mtodo String.lastIndexOf)

606

Clases de ActionScript

lastIndexOf (mtodo String.lastIndexOf)


public lastIndexOf(value:String, [startIndex:Number]) : Number

Busca la cadena de derecha a izquierda y devuelve el ndice de la ltima posicin en que aparece value antes que startIndex dentro de la cadena que origina la llamada. Este ndice est basado en cero, con lo cual se considera que el primer carcter est en el ndice 0, no en el ndice 1. Si no se encuentra value, el mtodo devuelve -1. Parmetros
value:String

- Una cadena; la cadena que se busca. [opcional] - Un entero que especifica dnde se inicia la bsqueda de

startIndex:Number value.

Valor devuelto
Number

- La posicin en que aparece por ltima vez la subcadena especificada o -1.

Ejemplo El ejemplo siguiente muestra cmo utilizar lastIndexOf() para devolver el ndice de un carcter determinado:
var searchString:String = "Lorem ipsum dolor sit amet."; var index:Number; index = searchString.lastIndexOf("L"); trace(index); // salida: 0 index = searchString.lastIndexOf("l"); trace(index); // salida: 14 index = searchString.lastIndexOf("i"); trace(index); // salida: 19 index = searchString.lastIndexOf("ipsum"); trace(index); // salida: 6 index = searchString.lastIndexOf("i", 18); trace(index); // salida: 6 index = searchString.lastIndexOf("z"); trace(index); // salida: -1

Vase tambin
indexOf (mtodo String.indexOf)

String

607

length (propiedad String.length)


public length : Number

Un entero que especifica el nmero de caracteres del objeto String especificado. Dado que todos los ndices de cadenas estn basados en cero, el ndice del ltimo carcter de cualquier cadena x es x.length - 1. Ejemplo El ejemplo siguiente crea un nuevo objeto String y utiliza String.length para contar el nmero de caracteres:
var my_str:String = "Hello world!"; trace(my_str.length); // salida: 12

El ejemplo siguiente pasa de 0 a my_str.length. El cdigo comprueba los caracteres de una cadena y si contiene el carcter @, muestra true en el panel Salida. Si no contiene el carcter @ aparece false en el panel Salida.
function checkAtSymbol(my_str:String):Boolean { for (var i = 0; i<my_str.length; i++) { if (my_str.charAt(i) == "@") { return true; } } return false; } trace(checkAtSymbol("dog@house.net")); // salida: true trace(checkAtSymbol("Chris")); // salida: false

Encontrar tambin un ejemplo en el archivo Strings.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo.

slice (mtodo String.slice)


public slice(start:Number, end:Number) : String

Devuelve una cadena que incluye el carcter inicial (start) y todos los caracteres que aparecen hasta el carcter final (end), exclusive. El objeto String original no se modifica. Si no se especifica el parmetro end, el final de la subcadena ser el final de la cadena. Si el carcter indexado por start es el mismo o est situado a la derecha del carcter indexado por end, el mtodo devolver una cadena vaca.

608

Clases de ActionScript

Parmetros
start:Number

- El ndice basado en cero del punto inicial de la divisin. Si start es un nmero negativo, el punto de inicio se establece desde el final de la cadena, donde -1 es el ltimo carcter.

end:Number

- Un entero que es un nmero por encima del ndice del punto final de la divisin. El carcter indexado por el parmetro end no se incluye en la cadena extrada. Si se omite este parmetro, se emplear String.length. Si end es un nmero negativo, el punto final se establece desde el final de la cadena, donde -1 es el ltimo carcter. Valor devuelto

String

- Una subcadena de la cadena especificada.

Ejemplo El ejemplo siguiente crea una variable, my_str,, le asigna un valor String y llama al mtodo slice() utilizando distintos valores para los parmetros start y end. Cada llamada a slice() se ajusta en una sentencia trace() que muestra la salida en el panel Salida.
// // // // Valores de Index para el ndice positivo del literal de cadena: 0 1 2 3 4 cadena: L o r e m ndice negativo: -5 -4 -3 -2 -1

var my_str:String = "Lorem"; // divide el primer carcter trace("slice(0,1): "+my_str.slice(0, 1)); // salida: slice(0,1): L trace("slice(-5,1): "+my_str.slice(-5, 1)); // salida: slice(-5,1): L // divide los tres caracteres intermedios trace("slice(1,4): "+my_str.slice(1, 4)); // divide (1,4): ore trace("slice(1,-1): "+my_str.slice(1, -1)); // divide (1,-1): ore // divisiones que devuelven cadenas vacas, ya que el principio no se ecuentra a la izquierda del final trace("slice(1,1): "+my_str.slice(1, 1)); // divide (1,1): trace("slice(3,2): "+my_str.slice(3, 2)); // divide (3,2): trace("slice(-2,2): "+my_str.slice(-2, 2)); // divide (-2,2): // las divisiones que omiten el parmetro final utilizan String.length, que es igual a 5 trace("slice(0): "+my_str.slice(0)); // divide (0): Lorem trace("slice(3): "+my_str.slice(3)); // divide (3): em

String

609

Encontrar tambin un ejemplo en el archivo Strings.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
substr (mtodo String.substr), substring (mtodo String.substring)

split (mtodo String.split)


public split(delimiter:String, [limit:Number]) : Array

Divide un objeto String en subcadenas fragmentndolo siempre que aparece el parmetro delimitador (delimiter) especificado y devuelve las subcadenas en una matriz. Si utiliza una cadena vaca ("") como delimitador, cada carcter de la cadena se situar como elemento de la matriz. Si el parmetro delimiter tiene el valor undefined, se situar la cadena completa en el primer elemento de la matriz devuelta. Parmetros
delimiter:String limit:Number

- Una cadena; el carcter o cadena donde se divide my_str.

[opcional] - El nmero de elementos que se va a incluir en la matriz.

Valor devuelto
Array

- Una matriz que contiene las subcadenas de my_str.

Ejemplo El ejemplo siguiente devuelve una matriz con cinco elementos:


var my_str:String = "P,A,T,S,Y"; var my_array:Array = my_str.split(","); for (var i = 0; i<my_array.length; i++) { trace(my_array[i]); } // salida: P A T S Y

610

Clases de ActionScript

El ejemplo siguiente devuelve una matriz con dos elementos, "P" y "A":
var my_str:String = "P,A,T,S,Y"; var my_array:Array = my_str.split(",", 2); trace(my_array); // salida: P,A

El ejemplo siguiente muestra que si utiliza una cadena vaca ("") para el parmetro delimiter, cada carcter de la cadena se situar como elemento de la matriz:
var my_str:String = new String("Joe"); var my_array:Array = my_str.split(""); for (var i = 0; i<my_array.length; i++) { trace(my_array[i]); } // salida: J o e

Encontrar tambin un ejemplo en el archivo Strings.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
join (mtodo Array.join)

Constructor String
public String(value:String)

Crea un nuevo objeto String. Nota:dado que los literales de cadena utilizan menos espacio que los objetos String y son generalmente ms fciles de usar, deber utilizar literales de cadena en lugar del constructor de la clase String a no ser que exista un motivo especfico para utilizar un objeto String en lugar de un literal de cadena. Parmetros
value:String

- Valor inicial del nuevo objeto String.

String

611

substr (mtodo String.substr)


public substr(start:Number, length:Number) : String

Devuelve los caracteres contenidos en una cadena desde el ndice especificado por el parmetro start hasta el nmero de caracteres especificado por el parmetro length. El mtodo substr no cambia la cadena especificada por my_str, sino que devuelve una cadena nueva. Parmetros
start:Number

- Un entero que indica la posicin del primer carcter de my_str que se va a utilizar para crear la subcadena. Si start es un nmero negativo, el punto de inicio se establece desde el final de la cadena, donde -1 es el ltimo carcter. - Nmero de caracteres de la subcadena que se va a crear. Si no se especifica la subcadena incluye todos los caracteres desde el principio al final de la cadena.

length:Number length,

Valor devuelto
String

- Una subcadena de la cadena especificada.

Ejemplo El ejemplo siguiente crea una nueva cadena, my_str y utiliza substr() para devolver la segunda palabra de la cadena; primero utilizando un parmetro start positivo y, a continuacin, con un parmetro start negativo:
var my_str:String = new String("Hello world"); var mySubstring:String = new String(); mySubstring = my_str.substr(6,5); trace(mySubstring); // salida: world mySubstring = my_str.substr(-5,5); trace(mySubstring); // salida: world

Encontrar tambin un ejemplo en el archivo Strings.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo.

612

Clases de ActionScript

substring (mtodo String.substring)


public substring(start:Number, end:Number) : String

Devuelve una cadena formada por los caracteres comprendidos entre los puntos especificados por los parmetros start y end. Si no se especifica el parmetro end, el final de la subcadena ser el final de la cadena. Si el valor de start es igual al valor de end, el mtodo devolver una cadena vaca. Si el valor de start es mayor que el valor de end, los parmetros se intercambiarn automticamente antes de que se ejecute la funcin y el valor original permanecer sin cambios. Parmetros - Un entero que indica la posicin del primer carcter de my_str que se va a utilizar para crear la subcadena. Los valores vlidos para start incluyen del 0 a String.length - 1. Si start es un nmero negativo, se utiliza 0.
start:Number

- Un entero que es 1+ el ndice del ltimo carcter de my_str que se va a extraer. Los valores vlidos para end son desde 1 hasta String.length. El carcter indexado por el parmetro end no se incluye en la cadena extrada. Si se omite este parmetro, se emplear String.length. Si este parmetro es un valor negativo, se utiliza 0.
end:Number

Valor devuelto
String

- Una subcadena de la cadena especificada.

Ejemplo El ejemplo siguiente muestra cmo utilizar substring():


var my_str:String = "Hello world"; var mySubstring:String = my_str.substring(6,11); trace(mySubstring); // salida: world

El ejemplo siguiente muestra qu ocurre si se utiliza un parmetro start negativo:


var my_str:String = "Hello world"; var mySubstring:String = my_str.substring(-5,5); trace(mySubstring); // salida: Hello

Encontrar tambin un ejemplo en el archivo Strings.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo.

String

613

toLowerCase (mtodo String.toLowerCase)


public toLowerCase() : String

Devuelve una copia del objeto String con todos los caracteres en maysculas convertidos en minsculas. El valor original permanece sin cambios. Valor devuelto
String

- Una cadena.

Ejemplo El ejemplo siguiente crea una cadena con todos los caracteres en maysculas y, a continuacin, crea una copia de esa cadena mediante toLowerCase() para convertir todos los caracteres a minsculas:
var upperCase:String = "LOREM IPSUM DOLOR"; var lowerCase:String = upperCase.toLowerCase(); trace("upperCase: " + upperCase); // salida: upperCase: LOREM IPSUM DOLOR trace("lowerCase: " + lowerCase); // salida: lowerCase: lorem ipsum dolor

Encontrar tambin un ejemplo en el archivo Strings.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
toUpperCase (mtodo String.toUpperCase)

toString (mtodo String.toString)


public toString() : String

Devuelve las propiedades de un objeto como cadenas aunque no lo sean. Valor devuelto
String

- La cadena.

Ejemplo El ejemplo siguiente devuelve una cadena en maysculas que incluye todas las propiedades de un objeto, sean o no sean cadenas:
var employee:Object = new Object(); employee.name = "bob"; employee.salary = 60000; employee.id = 284759021;

614

Clases de ActionScript

var employeeData:String = new String(); for (prop in employee) { employeeData += employee[prop].toString().toUpperCase() + " "; } trace(employeeData);

Si el mtodo toString() no estuviera incluido en este cdigo y la lnea del bucle for utilizara employee[prop].toUpperCase(), el resultado sera "undefined undefined BOB". Al incluir el mtodo toString(), se obtiene la salida deseada: "284759021 60000 BOB".

toUpperCase (mtodo String.toUpperCase)


public toUpperCase() : String

Devuelve una copia del objeto String con todos los caracteres en minsculas convertidos en maysculas. El valor original permanece sin cambios. Valor devuelto
String

- Una cadena.

Ejemplo El ejemplo siguiente crea una cadena con todos los caracteres en maysculas y, a continuacin, crea una copia de la cadena con toUpperCase():
var lowerCase:String = "lorem ipsum dolor"; var upperCase:String = lowerCase.toUpperCase(); trace("lowerCase: " + lowerCase); // salida: lowerCase: lorem ipsum dolor trace("upperCase: " + upperCase); // salida: upperCase: LOREM IPSUM DOLOR

Encontrar tambin un ejemplo en el archivo Strings.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
toLowerCase (mtodo String.toLowerCase)

String

615

valueOf (mtodo String.valueOf)


public valueOf() : String

Devuelve la cadena. Valor devuelto


String

- El valor de la cadena.

Ejemplo El ejemplo siguiente crea una nueva instancia del objeto String y a continuacin muestra que el mtodo valueOf devuelve una referencia al valor primitivo, en lugar de una instancia del objeto.
var str:String = new String("Hello World"); var value:String = str.valueOf(); trace(str instanceof String); // true trace(value instanceof String); // false trace(str === value); // false

System
Object | +-System public class System extends Object

La clase System contiene propiedades relacionadas con determinadas operaciones que tiene lugar en el equipo del usuario como, por ejemplo, operaciones con objetos compartidos y el portapapeles. El paquete System incluye las siguientes propiedades y mtodos adicionales en clases especficas: la clase capabilities (vase System.capabilities) y la clase security (vase System.security). Vase tambin
capabilities (System.capabilities), security (System.security)

616

Clases de ActionScript

Resumen de propiedades
Modificadores Propiedad
static useCodepage:Boolean

Descripcin
Un valor booleano que indica a Flash Player si debe utilizar Unicode o la pgina de cdigos tradicional del sistema operativo en el que se ejecuta el reproductor para interpretar los archivos de texto externos.

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onStatus = :Object) {}

Descripcin
Controlador de eventos: ofrece un supercontrolador de eventos para

function(infoObject determinados objetos.

Resumen de mtodos Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

onStatus (controlador System.onStatus)


onStatus = function(infoObject:Object) {}

Controlador de eventos: ofrece un supercontrolador de eventos para determinados objetos. La clase SharedObject ofrece un controlador de eventos onStatus() que utiliza un objeto de informacin para proporcionar mensajes de informacin, estado o error. Para responder a este controlador de eventos, deber crear una funcin que procese el objeto de informacin y deber conocer el formato y el contenido del objeto de informacin devuelto.

System

617

Adems del mtodo SharedObject.onStatus(), Flash tambin ofrece una superfuncin denominada System.onStatus() que acta como controlador secundario de mensajes de error. Si una instancia de la clase SharedObject pasa un objeto de informacin con la propiedad de nivel "error" pero no ha definido una funcin onStatus() para esa instancia concreta, Flash utilizar en su lugar la funcin que defina para System.onStatus(). Parmetros
infoObject:Object

- Un parmetro definido de acuerdo con el mensaje de estado.

Ejemplo El ejemplo siguiente muestra cmo crear una funcin System.onStatus() para procesar objetos de informacin cuando no existe una funcin onStatus() especfica de clase:
// Crea una funcin genrica System.onStatus = function(genericError:Object){ // El script debera ser ms significativo aqu trace("An error has occurred. Please try again."); }

Vase tambin
onStatus (controlador SharedObject.onStatus)

useCodepage (propiedad System.useCodepage)


public static useCodepage : Boolean

Un valor booleano que indica a Flash Player si debe utilizar Unicode o la pgina de cdigos tradicional del sistema operativo en el que se ejecuta el reproductor para interpretar los archivos de texto externos. El valor predeterminado es System.useCodepage.

Cuando la propiedad se establece con el valor false, Flash Player interpreta los archivos de texto externos como Unicode. (Estos archivos deben codificarse como Unicode al guardarlos.) Si la propiedad se establece con el valor true, Flash Player interpretar los archivos de texto externos empleando la pgina de cdigos tradicional del sistema operativo en el que se ejecuta el reproductor.

Deber codificar como Unicode el texto que cargue como archivo externo (mediante las sentencias loadVariables() o getURL(), o bien la clase LoadVars o XML) al guardar el archivo de texto para que Flash Player lo reconozca como Unicode. Para codificar archivos externos como Unicode, guarde los archivos en una aplicacin que admita Unicode, como el Bloc de notas en Windows 2000.

618

Clases de ActionScript

Si carga archivos de texto externos que no estn codificados como Unicode, deber configurar System.useCodepage con el valor true. Aada el cdigo siguiente como la primera lnea de cdigo del primer fotograma del archivo SWF que carga los datos:
System.useCodepage = true;

Cuando este cdigo est presente, Flash Player interpreta el texto externo empleando la pgina de cdigos tradicional del sistema operativo en el que se ejecuta Flash Player. sta es normalmente CP1252 para el sistema operativo Windows en ingls y Shift-JIS para un sistema operativo en japons. Si establece System.useCodepage con el valor true, Flash Player 6 y versiones posteriores tratarn el texto de la misma forma que Flash Player 5. (Flash Player 5 consideraba todo el texto como si estuviera en la pgina de cdigos tradicional del sistema operativo en el que se ejecuta el reproductor.) Si establece System.useCodepage con el valor true, recuerde que la pgina de cdigos tradicional del sistema operativo en el que se ejecuta el reproductor debe incluir los caracteres utilizados en el archivo de texto externo para que se muestre el texto. Por ejemplo, si carga un archivo de texto externo que contiene caracteres chinos, dichos caracteres no se visualizarn en un sistema que utilice la pgina de cdigos CP1252, ya que dicha pgina de cdigos no contiene caracteres chinos. Para garantizar que los usuarios de todas las plataformas puedan ver los archivos de texto externos que se utilizan en sus archivos SWF, debe codificar todos los archivos de texto externos como Unicode y establecer System.useCodepage en false de forma predeterminada. De esta forma, Flash Player 6 y versiones posteriores interpretar el texto como Unicode.

TextField
Object | +-TextField public dynamic class TextField extends Object

La clase TextField se utiliza para crear reas para ver e introducir texto. Todos los campos dinmicos y de entrada de texto de un archivo SWF son instancias de la clase TextField. Puede asignar a un campo de texto un nombre de instancia en el inspector de propiedades y utilizar los mtodos y propiedades de la clase TextField para manipularlo con ActionScript. Los nombres de instancias de TextField se muestran en el explorador de pelculas y en el cuadro de dilogo Insertar ruta de destino del panel Acciones. Para crear un campo de texto de forma dinmica, no se utiliza un operador new. Puede usar MovieClip.createTextField() en su lugar.

TextField

619

Los mtodos de la clase TextField permiten establecer, seleccionar y manipular texto de un campo de texto dinmico o de entrada que se cree durante la edicin o la ejecucin. Vase tambin
Object, createTextField (mtodo MovieClip.createTextField)

Resumen de propiedades
Modificadores Propiedad
_alpha:Number

Descripcin
Establece o recupera el valor de transparencia alfa del campo de texto. Controla la asignacin de tamao y alineacin automticas de los campos de texto. Especifica si el campo de texto tiene relleno de fondo.

autoSize:Object

background:Boolean

backgroundColor:Numb Color del fondo del campo de texto. er border:Boolean borderColor:Number bottomScroll:Number

Especifica si el campo de texto tiene un borde. Color del borde del campo de texto. Un entero (ndice basado en uno) que indica la ltima lnea visible en el campo de texto. el espacio en blanco adicional (espacios, saltos de lnea, etc.) de un campo de texto HTML cuando el campo se muestra en un navegador.

[read-only]

condenseWhite:Boolean Valor booleano que especifica si debe eliminarse

embedFonts:Boolean

Valor booleano que especifica si se representar el campo de texto empleando contornos de fuentes incorporadas. Altura del campo de texto, expresada en pxeles. Desfasadadesde Flash Player 7. Esta propiedad est desfasada y en su lugar debe utilizarse TextField._quality. Especifica el nivel de visualizacin suavizada que se aplica al archivo SWF actual. Indica la posicin de desplazamiento horizontal actual. Indicador que especifica si el campo de texto contiene una representacin HTML.

_height:Number _highquality:Number

hscroll:Number

html:Boolean

620

Clases de ActionScript

Modificadores Propiedad
htmlText:String

Descripcin
Si el campo de texto es HTML, esta propiedad contiene la representacin HTML del contenido del campo de texto. Indica el nmero de caracteres de un campo de texto. Indica el nmero mximo de caracteres que puede contener el campo de texto. Valor mximo de TextField.hscroll. Valor mximo de TextField.scroll. Indica si el campo de texto consta de varias lneas. El nombre de instancia del campo de texto. Referencia al clip de pelcula u objeto que contiene el campo de texto u objeto actual. Especifica si el campo de texto es de contrasea. Propiedad (global); establece o recupera la calidad de representacin utilizada por un archivo SWF. Giro del campo de texto, expresado en grados, con respecto a su orientacin original. Define la posicin vertical del texto de un campo de texto. Valor booleano que indica si el campo de texto puede seleccionarse. debe acumularse previamente en el bfer antes de que comience a reproducirse sin interrupcin.

length:Number [read-

only]
maxChars:Number

maxhscroll:Number

[read-only]
maxscroll:Number

[read-only]
multiline:Boolean _name:String _parent:MovieClip

password:Boolean _quality:String

_rotation:Number

scroll:Number

selectable:Boolean

_soundbuftime:Number Especifica el nmero de segundos que un sonido

tabEnabled:Boolean

Especifica si el campo de texto se incluye en el orden de tabulacin automtico. Permite personalizar el orden de tabulacin de los objetos de un archivo SWF.

tabIndex:Number

_target:String [read- Ruta de destino de la instancia del campo de texto.

only]
text:String textColor:Number

Indica el texto actual del campo de texto. Indica el color del texto de un campo de texto.

TextField

621

Modificadores Propiedad
textHeight:Number textWidth:Number type:String _url:String [read-

Descripcin
Indica la altura del texto. Indica la anchura del texto. Especifica el tipo de campo de texto. Recupera el URL del archivo SWF que cre el campo de texto. El nombre de la variable a la que est asociado el campo de texto. Valor booleano que indica si el campo de texto my_txt puede seleccionarse. Anchura del campo de texto, expresada en pxeles. Valor booleano que indica si el campo de texto tiene ajuste de texto. Entero que establece la coordenada x de un campo de texto como relativa a las coordenadas locales del clip de pelcula principal. relativa al campo de texto. Determina la escala horizontal del campo de texto aplicada desde el punto de registro del campo de texto, expresada como porcentaje. Establece la coordenada y de un campo de texto como relativa a las coordenadas locales del clip de pelcula principal. relativa al campo de texto. La escala vertical del campo de texto aplicada desde el punto de registro del campo de texto, expresada como porcentaje.

only]
variable:String

_visible:Boolean

_width:Number wordWrap:Boolean

_x:Number

_xmouse:Number [read- Devuelve la coordenada x de la posicin del ratn

only]
_xscale:Number

_y:Number

_ymouse:Number [read- Indica la coordenada y de la posicin del ratn

only]
_yscale:Number

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

622

Clases de ActionScript

Resumen de eventos
Evento
onChanged = ld:TextField) {} onKillFocus = bject) {} onScroller = eld:TextField) {} onSetFocus = function(oldFocus:O bject) {}

Descripcin
Controlador de eventos/detector; se invoca cuando cambia el

function(changedFie contenido de un campo de texto.

Se invoca cuando un campo de texto deja de estar seleccionado con

function(newFocus:O el teclado.

Controlador de eventos/detector; se invoca cuando cambia una de las

function(scrolledFi propiedades de desplazamiento de un campo de texto.

Se invoca cuando un campo de texto se selecciona con el teclado.

Resumen de mtodos
Modificadores Firma Descripcin

addListener(listene Registra un objeto para recibir mensajes de r:Object) : Boolean notificacin de eventos TextField. getDepth() : Number Devuelve la profundidad de un campo de texto. getNewTextFormat() : TextFormat

Devuelve un objeto TextFormat que contiene una copia del objeto de formato de texto del campo de texto. rango de caracteres u objeto completo TextField.

getTextFormat([begi Devuelve un objeto TextFormat para un carcter, nIndex:Number], [endIndex:Number]) : TextFormat removeListener(list Elimina un objeto detector anteriormente ener:Object) : Boolean

registrado en una instancia de campo de texto con TextField.addListener().

removeTextField() : Elimina el campo de texto. Void replaceSel(newText: Reemplaza la seleccin actual por el contenido del String) : Void

parmetro newText.

TextField

623

Modificadores Firma
dex:Number, endIndex:Number, newText:String) : Void

Descripcin
los parmetros beginIndex y endIndex del campo de texto indicado por el contenido del parmetro newText.

replaceText(beginIn Reemplaza el rango de caracteres especificado por

setNewTextFormat(tf Establece el formato de texto nuevo :TextFormat) : Void predeterminado de un campo de texto. setTextFormat([begi Aplica el formato de texto especificado por el nIndex:Number], [endIndex:Number], textFormat:TextForm at) : Void

parmetro textFormat a todo el texto de un campo de texto o a parte de ste.

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

addListener (mtodo TextField.addListener)


public addListener(listener:Object) : Boolean

Registra un objeto para recibir mensajes de notificacin de eventos TextField. El objeto recibir notificaciones de eventos siempre que se llame a los controladores de eventos onChanged y onScroller. Cuando un campo de texto cambia o se desplaza, se invocan los controladores de eventos TextField.onChanged y TextField.onScroller, seguidos de los controladores de eventos onChanged y onScroller de los objetos registrados como detectores. Pueden registrarse varios objetos como detectores. Para eliminar un objeto detector de un campo de texto, llame a TextField.removeListener().

624

Clases de ActionScript

La fuente del evento pasa a los controladores onScroller y onChanged una referencia a la instancia de campo de texto como parmetro. Puede capturar estos datos colocando un parmetro en el mtodo del controlador de eventos. Por ejemplo, el siguiente cdigo utiliza txt como parmetro que se pasa al controlador de eventos onScroller. Luego se utiliza el parmetro en una sentencia trace para enviar el nombre de instancia del campo de texto al panel Salida. Posteriormente se utiliza en un mtodo trace() para escribir el nombre de instancia del campo de texto en el archivo de registro.
my_txt.onScroller = function(textfield_txt:TextField) { trace(textfield_txt._name+" scrolled"); };

Parmetros
listener:Object

- Un objeto con un controlador de eventos onChanged o onScroller.

Valor devuelto
Boolean

Ejemplo El siguiente ejemplo define un controlador onChanged para el campo de texto my_txt. A continuacin, define un nuevo objeto detector txtListener y define un controlador onChanged para ese objeto. Este controlador se invocar cuando el campo de texto my_txt cambie. La ltima lnea de cdigo llama a TextField.addListener para registrar el objeto detector txtListener con el campo de texto my_txt para que reciba una notificacin cuando cambie my_txt.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 100, 22); my_txt.border = true; my_txt.type = "input"; my_txt.onChanged = function(textfield_(xt:TextField) { trace(textfield_txt._name+" changed"); }; var txtListener:Object = new Object(); txtListener.onChanged = function(textfield_txt:TextField) { trace(textfield_txt._name+" changed and notified myListener"); }; my_txt.addListener(txtListener);

Vase tambin
onChanged (controlador TextField.onChanged), onScroller (controlador TextField.onScroller), removeListener (mtodo TextField.removeListener)

TextField

625

_alpha (propiedad TextField._alpha)


public _alpha : Number

Establece o recupera el valor de transparencia alfa del campo de texto. Los valores vlidos son los comprendidos entre 0 (totalmente transparente) y 100 (totalmente opaco). El valor predeterminado es 100. Los valores de transparencia no se admiten para campos de texto que utilizan fuentes de dispositivo. Deber utilizar fuentes incorporadas para utilizar la propiedad de transparencia _alpha con un campo de texto. Nota: la propiedad no admite fuentes para rabe, hebreo y tailands. Ejemplo El siguiente cdigo define la propiedad _alpha de un campo de texto denominado my_txt como 20%. Cree un nuevo smbolo de fuente en la biblioteca seleccionando Nueva Fuente en el men de opciones Biblioteca. Posteriormente se establece la vinculacin de la fuente en my font. Se establece la vinculacin para un smbolo de fuente en my font. Aada el siguiente cdigo ActionScript al archivo ActionScript o FLA:
var my_fmt:TextFormat = new TextFormat(); my_fmt.font = "my font"; // donde 'my font' es el nombre de vinculacin de una fuente de la biblioteca this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 100, 22); my_txt.border = true; my_txt.embedFonts = true; my_txt.text = "Hello World"; my_txt.setTextFormat(my_fmt); my_txt._alpha = 20;

Vase tambin
_alpha (propiedad Button._alpha), _alpha (propiedad MovieClip._alpha)

autoSize (propiedad TextField.autoSize)


public autoSize : Object

Controla la asignacin de tamao y alineacin automticas de los campos de texto. Los valores aceptables para autoSize son "none" (predeterminado), "left", "right" y "center". Cuando define la propiedad autoSize, true es un sinnimo de "left" y false es un sinnimo de "none".

626

Clases de ActionScript

Los valores de autoSize y TextField.wordWrap determinan si un campo de texto se ampla o contrae hacia el lado izquierdo, el derecho o el inferior. El valor predeterminado de estas propiedades es false. Si autoSize se establece con el valor "none" (predeterminado) o false, no se producir cambio de tamao. Si autoSize se establece en "left" o true, se considerar que el texto est justificado a la izquierda, lo que significa que el lado izquierdo del campo de texto permanecer fijo y el cambio de tamao de un campo de texto de una sola lnea tendr lugar en el lado derecho. Si el texto incluye un salto de lnea (por ejemplo, "\n" or "\r")), tambin se cambiar el tamao del lado inferior para dar cabida a la siguiente lnea de texto. Si wordWrap tambin se ha configurado con el valor true, slo se cambiar el tamao del lado inferior del campo de texto, mientras que el lado derecho permanecer fijo. Si autoSize se establece en "right", se considerar que el texto est justificado a la derecha, lo que significa que el lado derecho del campo de texto permanecer fijo y el cambio de tamao de un campo de texto de una sola lnea tendr lugar en el lado izquierdo. Si el texto incluye un salto de lnea (por ejemplo, "\n" or "\r")), tambin se cambiar el tamao del lado inferior para dar cabida a la siguiente lnea de texto. Si wordWrap tambin se ha configurado con el valor true, slo se cambiar el tamao del lado inferior del campo de texto, mientras que el lado izquierdo permanecer fijo. Si autoSize se establece en "center", se considerar que el texto est centrado, lo que significa que el cambio de tamao de un campo de texto de una sola lnea se distribuir por igual entre los lados derecho e izquierdo. Si el texto incluye un salto de lnea (por ejemplo, "\n" or "\r")), tambin se cambiar el tamao del lado inferior para dar cabida a la siguiente lnea de texto. Si wordWrap tambin se ha configurado con el valor true, slo se cambiar el tamao del lado inferior del campo de texto, mientras que los lados izquierdo y derecho permanecern fijos. Ejemplo Puede utilizar el cdigo siguiente y especificar otros valores para autoSize para ver cmo cambia el tamao del campo cuando se modifican estos valores. Si hace clic con el ratn mientras se reproduce el archivo SWF, se reemplazar la cadena short text" de cada campo de texto por texto ms largo utilizando distintas configuraciones de autoSize..
this.createTextField("left_txt", 997, 10, 10, 70, 30); this.createTextField("center_txt", 998, 10, 50, 70, 30); this.createTextField("right_txt", 999, 10, 100, 70, 30); this.createTextField("true_txt", 1000, 10, 150, 70, 30); this.createTextField("false_txt", 1001, 10, 200, 70, 30);

TextField

627

left_txt.text = "short text"; left_txt.border = true; center_txt.text = "short text"; center_txt.border = true; right_txt.text = "short text"; right_txt.border = true; true_txt.text = "short text"; true_txt.border = true; false_txt.text = "short text"; false_txt.border = true; // crea un objeto detector de ratn para detectar clics de ratn var myMouseListener:Object = new Object(); // define una funcin que se ejecuta cuando un usuario hace clic con el ratn myMouseListener.onMouseDown = function() { left_txt.autoSize = "left"; left_txt.text = "This is much longer text"; center_txt.autoSize = "center"; center_txt.text = "This is much longer text"; right_txt.autoSize = "right"; right_txt.text = "This is much longer text"; true_txt.autoSize = true; true_txt.text = "This is much longer text"; false_txt.autoSize = false; false_txt.text = "This is much longer text"; }; // registra el objeto detector con el objeto Mouse Mouse.addListener(myMouseListener);

background (propiedad TextField.background)


public background : Boolean

Especifica si el campo de texto tiene relleno de fondo. Si es true, el campo de texto tiene relleno de fondo. Si es false, el campo de texto no tiene relleno de fondo. Ejemplo El ejemplo siguiente crea un campo de texto con un color de fondo que se activa y desactiva cuando se presiona casi cualquier tecla del teclado.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 320, 240); my_txt.border = true; my_txt.text = "Lorum ipsum";

628

Clases de ActionScript

my_txt.backgroundColor = 0xFF0000; var keyListener:Object = new Object(); keyListener.onKeyDown = function() { my_txt.background = !my_txt.background; }; Key.addListener(keyListener);

backgroundColor (propiedad TextField.backgroundColor)


public backgroundColor : Number

Color del fondo del campo de texto. El valor predeterminado es 0xFFFFFF (blanco). Esta propiedad puede recuperarse o establecerse aunque no haya actualmente ningn fondo, pero el color slo estar visible si el campo de texto tiene un borde. Ejemplo Consulte el ejemplo de TextField.background. Vase tambin
background (propiedad TextField.background)

border (propiedad TextField.border)


public border : Boolean

Especifica si el campo de texto tiene un borde. Si es true, especifica si el campo de texto tiene un borde. Si es false, el campo de texto no tiene borde. Ejemplo El ejemplo siguiente crea un campo de texto denominado my_txt, define la propiedad border como true y muestra texto en el campo.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 320, 240); my_txt.border = true; my_txt.text = "Lorum ipsum";

TextField

629

borderColor (propiedad TextField.borderColor)


public borderColor : Number

Color del borde del campo de texto. El valor predeterminado es 0x000000 (negro). Esta propiedad puede recuperarse o establecerse aunque no haya actualmente ningn borde. Ejemplo El ejemplo siguiente crea un campo de texto denominado my_txt, define la propiedad border como true y muestra texto en el campo.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 320, 240); my_txt.border = true; my_txt.borderColor = 0x00FF00; my_txt.text = "Lorum ipsum";

Vase tambin
border (propiedad TextField.border)

bottomScroll (propiedad TextField.bottomScroll)


public bottomScroll : Number [read-only]

Un entero (ndice basado en uno) que indica la ltima lnea visible en el campo de texto. Considere el campo de texto como una ventana en un bloque de texto. La propiedad TextField.scroll es el ndice basado en uno de la primera lnea visible en la ventana. Todo el texto existente entre las lneas TextField.scroll y TextField.bottomScroll est visible actualmente en el campo de texto. Ejemplo El ejemplo siguiente crea un campo de texto y lo llena de texto. Debe insertar un botn (con el nombre de instancia "my_btn") y cuando haga clic en l, se rastrean las propiedades scroll y bottomScroll del campo de texto para el campo comment_txt.
this.createTextField("comment_txt", this.getNextHighestDepth(), 0, 0, 160, 120); comment_txt.html = true; comment_txt.selectable = true; comment_txt.multiline = true; comment_txt.wordWrap = true; comment_txt.htmlText = "<b>What is hexadecimal?</b><br>" + "The hexadecimal color system uses six digits to represent color values. " + "Each digit has sixteen possible values or characters. The characters range"

630

Clases de ActionScript

+ " from 0 to 9 and then A to F. Black is represented by (#000000) and white, " + "at the opposite end of the color system, is (#FFFFFF)."; my_btn.onRelease = function () { trace("scroll: "+comment_txt.scroll); trace("bottomScroll: "+comment_txt.bottomScroll); };

condenseWhite (propiedad TextField.condenseWhite)


public condenseWhite : Boolean

Valor booleano que especifica si debe eliminarse el espacio en blanco adicional (espacios, saltos de lnea, etc.) de un campo de texto HTML cuando el campo se muestra en un navegador. El valor predeterminado es false. Si establece el valor true, deber utilizar comandos HTML estndar, como <BR> y <P>, para incluir saltos de lnea en el campo de texto. Si el .html del campo de texto es false, esta propiedad no se tiene en cuenta. Ejemplo El ejemplo siguiente crea dos campos de texto, denominados first_txt y second_txt. El espacio blanco se elimina del segundo campo de texto. Aada el siguiente cdigo ActionScript al archivo ActionScript o FLA:
var my_str:String = "Hello\tWorld\nHow are you?\t\t\tEnd"; this.createTextField("first_txt", this.getNextHighestDepth(), 10, 10, 160, 120); first_txt.html = true; first_txt.multiline = true; first_txt.wordWrap = true; first_txt.condenseWhite = false; first_txt.border = true; first_txt.htmlText = my_str; this.createTextField("second_txt", this.getNextHighestDepth(), 180, 10, 160, 120); second_txt.html = true; second_txt.multiline = true; second_txt.wordWrap = true; second_txt.condenseWhite = true; second_txt.border = true; second_txt.htmlText = my_str;

TextField

631

Vase tambin
html (propiedad TextField.html)

embedFonts (propiedad TextField.embedFonts)


public embedFonts : Boolean

Valor booleano que especifica si se representar el campo de texto empleando contornos de fuentes incorporadas. Si el valor es true, Flash Lite representa el campo de texto utilizando contornos de fuente incorporados. Si el valor es false, Flash Lite representa el campo de texto utilizando fuentes de dispositivo. Si define embedFonts como true para un campo de texto, debe especificar una fuente para ese texto mediante la propiedad font de un objeto TextFormat aplicado al campo de texto. Si la fuente especificada no existe en la biblioteca (con el identificador de vinculacin correspondiente), el texto no se mostrar. Nota: la propiedad no admite fuentes para rabe, hebreo y tailands. Ejemplo En este ejemplo, debe crear un campo de texto dinmico denominado my_txt y utilizar el siguiente cdigo ActionScript para incorporar fuentes y girar el campo de texto. La cadena my font hace referencia a un smbolo de fuente de la biblioteca, con el nombre de identificador de vinculacin my font. El ejemplo asume que tiene un smbolo de fuente de la biblioteca llamado my font, con las propiedades de vinculacin siguientes: el identificador definido como my font, y las opciones Exportar para ActionScript y Exportar en primer fotograma seleccionadas.
var my_fmt:TextFormat = new TextFormat(); my_fmt.font = "my font"; this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 160, 120); my_txt.wordWrap = true; my_txt.embedFonts = true; my_txt.text = "Hello world"; my_txt.setTextFormat(my_fmt); my_txt._rotation = 45;

getDepth (mtodo TextField.getDepth)


public getDepth() : Number

Devuelve la profundidad de un campo de texto.

632

Clases de ActionScript

Valor devuelto
Number

- Un entero.

Ejemplo El ejemplo siguiente muestra campos de texto que residen a distintas profundidades. Cree un campo de texto dinmico en el escenario. Aada el siguiente cdigo ActionScript al archivo FLA o ActionScript, que crea dinmicamente dos campos de texto en tiempo de ejecucin y produce sus profundidades.
this.createTextField("first_mc", this.getNextHighestDepth(), 10, 10, 100, 22); this.createTextField("second_mc", this.getNextHighestDepth(), 10, 10, 100, 22); for (var prop in this) { if (this[prop] instanceof TextField) { var this_txt:TextField = this[prop]; trace(this_txt._name+" is a TextField at depth: "+this_txt.getDepth()); } }

getNewTextFormat (mtodo TextField.getNewTextFormat)


public getNewTextFormat() : TextFormat

Devuelve un objeto TextFormat que contiene una copia del objeto de formato de texto del campo de texto. El objeto de formato de texto es el formato que recibe el texto insertado, como, por ejemplo, el texto introducido por un usuario. Cuando se invoca getNewTextFormat(), el objeto TextFormat devuelto tiene todas sus propiedades definidas. Ninguna de las propiedades tiene el valor null. Valor devuelto
TextFormat

- Un objeto TextFormat.

Ejemplo El ejemplo siguiente muestra el objeto de formato de texto del campo de texto especificado (my_txtt).
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 160, 120); var my_fmt:TextFormat = my_txt.getNewTextFormat(); trace("TextFormat has the following properties:"); for (var prop in my_fmt) { trace(prop+": "+my_fmt[prop]); }

TextField

633

getTextFormat (mtodo TextField.getTextFormat)


public getTextFormat([beginIndex:Number], [endIndex:Number]) : TextFormat

Devuelve un objeto TextFormat para un carcter, rango de caracteres u objeto completo TextField.

Sintaxis 1: Devuelve un objeto TextFormat que contiene informacin de formato para todo el texto de un campo de texto. En el objeto TextFormat resultante, slo se establecen las propiedades que son comunes a todo el texto del campo de texto. Todas las propiedades que sean mixtas, es decir, que tengan valores diferentes en distintos puntos del texto, tendrn el valor null..

Sintaxis 2: Devuelve un objeto TextFormat que contiene una copia del formato del texto del campo de texto en la posicin de beginIndex.

Sintaxis 3: Devuelve un objeto TextFormat que contiene informacin de formato para el texto comprendido entre beginIndex y endIndex. En el objeto TextFormat resultante, slo se establecen las propiedades que son comunes a todo el texto del rango especificado. Todas las propiedades que sean mixtas (es decir, que tengan valores diferentes en distintos puntos del rango), estarn configuradas con el valor null.

Parmetros
beginIndex:Number [opcional] - Un entero que especifica un carcter en una cadena. Si no especifica beginIndex y endIndex, el objeto TextFormat devuelto afecta al TextField completo.

[opcional] - Un entero que especifica la posicin final de un fragmento de texto. Si especifica beginIndex pero no especifica endIndex, TextFormat afecta al nico carcter que especifica beginIndex.
endIndex:Number

Valor devuelto
TextFormat

- Un objeto.

Ejemplo El siguiente cdigo ActionScript lleva un control de toda la informacin de formato de un campo de texto creado en tiempo de ejecucin.
this.createTextField("dyn_txt", this.getNextHighestDepth(), 0, 0, 100, 200); dyn_txt.text = "Frank";

634

Clases de ActionScript

dyn_txt.setTextFormat(new TextFormat()); var my_fmt:TextFormat = dyn_txt.getTextFormat(); for (var prop in my_fmt) { trace(prop+": "+my_fmt[prop]); }

Vase tambin
getNewTextFormat (mtodo TextField.getNewTextFormat), setNewTextFormat (mtodo TextField.setNewTextFormat), setTextFormat (mtodo TextField.setTextFormat)

_height (propiedad TextField._height)


public _height : Number

Altura del campo de texto, expresada en pxeles. Ejemplo El siguiente ejemplo de cdigo establece la altura y anchura de un campo de texto:
my_txt._width = 200; my_txt._height = 200;

_highquality (propiedad TextField._highquality)


public _highquality : Number

Desfasada desde Flash Player 7. Esta propiedad est desfasada y en su lugar debe utilizarse TextField._quality. Especifica el nivel de visualizacin suavizada que se aplica al archivo SWF actual. Especifique 2 (mejor calidad) para aplicar alta calidad con el suavizado de mapa de bits siempre activado. Especifique 1 (alta calidad) para aplicar la visualizacin suavizada, que suaviza los mapas de bits si el archivo SWF no contiene animacin y es el valor predeterminado. Especifique 0 (baja calidad) para evitar el suavizado. Vase tambin
_quality (propiedad TextField._quality)

TextField

635

hscroll (propiedad TextField.hscroll)


public hscroll : Number

Indica la posicin de desplazamiento horizontal actual. Si la propiedad hscroll es 0, el texto no se desplazar horizontalmente. Las unidades de desplazamiento horizontal son pxeles, mientras que las de desplazamiento vertical son lneas. El desplazamiento horizontal se mide en pxeles porque la mayora de las fuentes que utiliza normalmente tienen espaciado proporcional, lo que significa que los caracteres tienen anchuras diferentes. Flash realiza el desplazamiento vertical por lneas porque el usuario normalmente desea ver una lnea de texto ntegramente y no slo parte de ella. Aunque en una lnea se utilicen varias fuentes, la altura de la lnea se ajusta a la de la fuente ms grande. Nota: La propiedad hscroll est basada en cero (a diferencia de la propiedad de desplazamiento vertical TextField.scroll, que est basada en uno). Ejemplo El ejemplo siguiente desplaza el campo my_txt horizontalmente mediante dos botones llamados scrollLeft_btn y scrollRight_btn. El desplazamiento se muestra en un campo de texto denominado scroll_txt. Aada el siguiente cdigo ActionScript al archivo ActionScript o FLA:
this.createTextField("scroll_txt", this.getNextHighestDepth(), 10, 10, 160, 20); this.createTextField("my_txt", this.getNextHighestDepth(), 10, 30, 160, 22); my_txt.border = true; my_txt.multiline = false; my_txt.wordWrap = false; my_txt.text = "Lorem ipsum dolor sit amet, consectetuer adipiscing..."; scrollLeft_btn.onRelease = function() { my_txt.hscroll -= 10; scroll_txt.text = my_txt.hscroll+" of "+my_txt.maxhscroll; }; scrollRight_btn.onRelease = function() { my_txt.hscroll += 10; scroll_txt.text = my_txt.hscroll+" of "+my_txt.maxhscroll; };

Vase tambin
maxhscroll (propiedad TextField.maxhscroll), scroll (propiedad TextField.scroll)

636

Clases de ActionScript

html (propiedad TextField.html)


public html : Boolean

Indicador que especifica si el campo de texto contiene una representacin HTML. Si el valor de la propiedad html es true, el campo de texto es un campo de texto HTML. Si el valor de html es false, el campo de texto no es un campo de texto HTML. Ejemplo El ejemplo siguiente crea un campo de texto que establece la propiedad html como true. En el campo de texto aparece texto con formato HTML.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 160, 22); my_txt.html = true; my_txt.htmlText = "<b> this is bold text </b>";

Vase tambin
htmlText (propiedad TextField.htmlText)

htmlText (propiedad TextField.htmlText)


public htmlText : String

Si el campo de texto es HTML, esta propiedad contiene la representacin HTML del contenido del campo de texto. Si el campo de texto no es un campo de texto HTML, se comportar de forma idntica a la propiedad text. Puede indicar que un campo de texto es un campo de texto HTML en el inspector de propiedades o estableciendo la propiedad html del campo de texto con el valor true. Ejemplo El ejemplo siguiente crea un campo de texto que establece la propiedad html como true. En el campo de texto aparece texto con formato HTML.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 160, 22); my_txt.html = true; my_txt.htmlText = "< this is bold text >";

Vase tambin
html (propiedad TextField.html)

TextField

637

length (propiedad TextField.length)


public length : Number [read-only]

Indica el nmero de caracteres de un campo de texto. Esta propiedad devuelve el mismo valor que text.length, aunque es ms rpida. El carcter de tabulador (\t) cuenta como un carcter. Ejemplo El ejemplo siguiente devuelve el nmero de caracteres del campo de texto date_txt que muestra la fecha actual.
var today:Date = new Date(); this.createTextField("date_txt", this.getNextHighestDepth(), 10, 10, 100, 22); date_txt.autoSize = true; date_txt.text = today.toString(); trace(date_txt.length);

maxChars (propiedad TextField.maxChars)


public maxChars : Number

Indica el nmero mximo de caracteres que puede contener el campo de texto. Un script puede insertar ms texto que maxChars; la propiedad maxChars slo indica cunto texto puede introducir el usuario. Si el valor de esta propiedad es null, no hay lmite en cuanto a la cantidad de texto que puede introducirse. Ejemplo El ejemplo siguiente crea un campo de texto llamado age_txt que slo permite a los usuarios introducir un mximo de dos nmeros en el campo.
this.createTextField("age_txt", this.getNextHighestDepth(), 10, 10, 30, 22); age_txt.type = "input"; age_txt.border = true; age_txt.maxChars = 2;

maxhscroll (propiedad TextField.maxhscroll)


public maxhscroll : Number [read-only]

Valor mximo de TextField.hscroll. Ejemplo Consulte el ejemplo de TextField.hscroll.

638

Clases de ActionScript

maxscroll (propiedad TextField.maxscroll)


public maxscroll : Number [read-only]

Valor mximo de TextField.scroll. Ejemplo El ejemplo siguiente establece el valor mximo del campo de texto de desplazamiento my_txt. Cree dos botones, scrollUp_btn y scrollDown_btn, para desplazar el campo de texto. Aada el siguiente cdigo ActionScript al archivo ActionScript o FLA.
this.createTextField("scroll_txt", this.getNextHighestDepth(), 10, 10, 160, 20); this.createTextField("my_txt", this.getNextHighestDepth(), 10, 30, 320, 240); my_txt.multiline = true; my_txt.wordWrap = true; for (var i = 0; i<10; i++) { my_txt.text += "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh " + "euismod tincidunt ut laoreet dolore magna aliquam erat volutpat."; } scrollUp_btn.onRelease = function() { my_txt.scroll--; scroll_txt.text = my_txt.scroll+" of "+my_txt.maxscroll; }; scrollDown_btn.onRelease = function() { my_txt.scroll++; scroll_txt.text = my_txt.scroll+" of "+my_txt.maxscroll; };

multiline (propiedad TextField.multiline)


public multiline : Boolean

Indica si el campo de texto consta de varias lneas. Si el valor es true, el campo de texto consta de varias lneas; si el valor es false, se trata de un campo de texto de una sola lnea. Ejemplo El ejemplo siguiente crea un campo de texto multilnea llamado myText.
this.createTextField("myText", this.getNextHighestDepth(), 10, 30, 110, 100); myText.text = "Flash is an authoring tool that designers and developers use to create presentations, applications, and other content that enables user interaction."; myText.border = true; myText.wordWrap = true; myText.multiline = true;

TextField

639

_name (propiedad TextField._name)


public _name : String

El nombre de instancia del campo de texto. Ejemplo El ejemplo siguiente muestra campos de texto que residen a distintas profundidades. Cree un campo de texto dinmico en el escenario. Aada el siguiente cdigo ActionScript al archivo FLA o ActionScript, que crea dinmicamente dos campos de texto en tiempo de ejecucin y muestra sus profundidades en el panel Salida.
this.createTextField("first_mc", this.getNextHighestDepth(), 10, 10, 100, 22); this.createTextField("second_mc", this.getNextHighestDepth(), 10, 10, 100, 22); for (var prop in this) { if (this[prop] instanceof TextField) { var this_txt:TextField = this[prop]; trace(this_txt._name+" is a TextField at depth: "+this_txt.getDepth()); } }

Al probar el documento, el nombre de instancia y la profundidad se muestran en el panel Salida. Al probar el documento, el nombre de instancia y la profundidad se escriben en el archivo de registro.

onChanged (controlador TextField.onChanged)


onChanged = function(changedField:TextField) {}

Controlador de eventos/detector; se invoca cuando cambia el contenido de un campo de texto. De manera predeterminada, tiene el valor undefined (no definido); puede definirlo en un script. Una referencia a la instancia de campo de texto se pasa como parmetro al controlador
onChanged. Puede capturar estos datos colocando un parmetro en el mtodo del controlador

de eventos. Por ejemplo, el siguiente cdigo utiliza textfield_txt como parmetro que se pasa al controlador de eventos onChanged. El parmetro se utiliza posteriormente en una sentencia trace() para enviar el nombre de instancia del campo de texto al panel Salida:
this.createTextField("myInputText_txt", 99, 10, 10, 300, 20); myInputText_txt.border = true; myInputText_txt.type = "input"; myInputText_txt.onChanged = function(textfield_txt:TextField) { trace("the value of "+textfield_txt._name+" was changed. New value is: "+textfield_txt.text); };

640

Clases de ActionScript

El controlador onChanged slo se activa cuando el cambio se debe a la interaccin del usuario; por ejemplo, cuando el usuario est escribiendo algo en el teclado, cambiando algo en el campo de texto con el ratn o seleccionando un elemento de un men. Los cambios programticos en el campo de texto no activan el evento onChanged, ya que el cdigo reconoce los cambios realizados en el campo de texto. Parmetros
changedField:TextField

- El campo que activa el evento.

Vase tambin
TextFormat, setNewTextFormat (mtodo TextField.setNewTextFormat)

onKillFocus (controlador TextField.onKillFocus)


onKillFocus = function(newFocus:Object) {}

Se invoca cuando un campo de texto deja de estar seleccionado con el teclado. El mtodo onKillFocus recibe un parmetro, newFocus, que es un objeto que representa al nuevo objeto seleccionado. Si no hay ningn objeto seleccionado con el teclado, newFocus contendr el valor null (nulo). Parmetros
newFocus:Object

- El objeto que recibe la seleccin.

Ejemplo El ejemplo siguiente crea dos campos de texto, denominados first_txt y second_txt. Cuando se selecciona un campo de texto, aparece en el panel Salida la informacin acerca del campo de texto seleccionado y el que ya no est seleccionado.
this.createTextField("first_txt", 1, 10, 10, 300, 20); first_txt.border = true; first_txt.type = "input"; this.createTextField("second_txt", 2, 10, 40, 300, 20); second_txt.border = true; second_txt.type = "input"; first_txt.onKillFocus = function(newFocus:Object) { trace(this._name+" lost focus. New focus changed to: "+newFocus._name); }; first_txt.onSetFocus = function(oldFocus:Object) { trace(this._name+" gained focus. Old focus changed from: "+oldFocus._name); }

TextField

641

Vase tambin
onSetFocus (controlador TextField.onSetFocus)

onScroller (controlador TextField.onScroller)


onScroller = function(scrolledField:TextField) {}

Controlador de eventos/detector; se invoca cuando cambia una de las propiedades de desplazamiento de un campo de texto. Una referencia a la instancia de campo de texto se pasa como parmetro al controlador onScroller. Puede capturar estos datos colocando un parmetro en el mtodo del controlador de eventos. Por ejemplo, el siguiente cdigo utiliza my_txt como parmetro que se pasa al controlador de eventos onScroller. El parmetro se utiliza posteriormente en una sentencia trace() para enviar el nombre de instancia del campo de texto al panel Salida.
myTextField.onScroller = function (my_txt:TextField) { trace (my_txt._name + " scrolled"); };

El controlador de eventos TextField.onScroller se utiliza normalmente para implementar barras de desplazamiento. Las barras de desplazamiento suelen tener un control deslizante u otro indicador que muestra la posicin actual de desplazamiento horizontal o vertical en un campo de texto. Es posible navegar por los campos de texto utilizando el ratn y el teclado, lo que provoca que cambie la posicin de desplazamiento. Es preciso notificar al cdigo de la barra de desplazamiento si la posicin de desplazamiento cambia como resultado de dicha interaccin del usuario, para lo cual se utiliza TextField.onScroller. La llamada a onScroller tiene lugar tanto si la posicin de desplazamiento cambia como resultado de la interaccin del usuario como si lo hace por cambios programticos. El controlador onChanged slo se activa si el cambio se debe a la interaccin del usuario. Las dos opciones son necesarias, ya que es frecuente que un fragmento de cdigo cambie la posicin de desplazamiento y el cdigo de la barra de desplazamiento no est relacionado y desconozca que la posicin de desplazamiento ha cambiado porque no se le ha notificado. Parmetros
scrolledField:TextField

- Una referencia al objeto TextField cuya posicin de desplazamiento ha cambiado.

642

Clases de ActionScript

Ejemplo El ejemplo siguiente crea un campo de texto con el nombre my_txt y utiliza dos botones llamados scrollUp_btn y scrollDown_btn para desplazar el contenido del campo de texto. Cuando se llama al controlador de eventos onScroller, se emplea una sentencia trace para mostrar informacin en el panel Salida. Cree dos botones con los nombres de instancia scrollUp_btn y scrollDown_btn, y aada el siguiente cdigo ActionScript al archivo FLA o ActionScript:
this.createTextField("scroll_txt", this.getNextHighestDepth(), 10, 10, 160, 20); this.createTextField("my_txt", this.getNextHighestDepth(), 10, 30, 320, 240); my_txt.multiline = true; my_txt.wordWrap = true; for (var i = 0; i<10; i++) { my_txt.text += "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam " + "nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat."; } scrollUp_btn.onRelease = function() { my_txt.scroll--; }; scrollDown_btn.onRelease = function() { my_txt.scroll++; }; my_txt.onScroller = function() { trace("onScroller called"); scroll_txt.text = my_txt.scroll+" of "+my_txt.maxscroll; };

Vase tambin
hscroll (propiedad TextField.hscroll), maxhscroll (propiedad TextField.maxhscroll), maxscroll (propiedad TextField.maxscroll), scroll (propiedad TextField.scroll)

TextField

643

onSetFocus (controlador TextField.onSetFocus)


onSetFocus = function(oldFocus:Object) {}

Se invoca cuando un campo de texto se selecciona con el teclado. El parmetro oldFocus es el objeto que deja de estar seleccionado. Por ejemplo, si el usuario presiona la tecla Tabulador parar desplazar la seleccin del teclado de un botn a un campo de texto, oldFocus contendr la instancia del botn. Si anteriormente no haba ningn objeto seleccionado con el teclado, oldFocus contendr un valor null (nulo). Parmetros
oldFocus:Object

- El objeto que deja de estar seleccionado.

Ejemplo Consulte el ejemplo de TextField.onKillFocus. Vase tambin


onKillFocus (controlador TextField.onKillFocus)

_parent (propiedad TextField._parent)


public _parent : MovieClip

Referencia al clip de pelcula u objeto que contiene el campo de texto u objeto actual. El objeto actual es el que contiene el cdigo ActionScript que hace referencia a _parent. Utilice _parent para especificar una ruta de acceso relativa a los clips de pelcula u objetos que se encuentran por encima del campo de texto actual. Puede utilizar _parent para subir varios niveles en la lista de visualizacin, como se muestra a continuacin:
_parent._parent._alpha = 20;

Ejemplo El siguiente cdigo ActionScript crea dos campos de texto y devuelve informacin acerca del _parent de cada objeto. El primer campo de texto, first_txt, se crea en la lnea de tiempo principal. El segundo, second_txt, se crea dentro del clip de pelcula holder_mc.
this.createTextField("first_txt", this.getNextHighestDepth(), 10, 10, 160, 22); first_txt.border = true; trace(first_txt._name+"'s _parent is: "+first_txt._parent); this.createEmptyMovieClip("holder_mc", this.getNextHighestDepth()); holder_mc.createTextField("second_txt", holder_mc.getNextHighestDepth(), 10, 40, 160, 22);

644

Clases de ActionScript

holder_mc.second_txt.border = true; trace(holder_mc.second_txt._name+"'s _parent is: "+holder_mc.second_txt._parent);

La siguiente informacin se muestra en el panel Salida: La siguiente informacin se escribe en el archivo de registro:
first_txt'(_parent is: _level0 second_txt's _parent is: _level0.holder_mc

Vase tambin
_parent (propiedad Button._parent), _parent (propiedad MovieClip._parent), Propiedad _root

password (propiedad TextField.password)


public password : Boolean

Especifica si el campo de texto es de contrasea. Si el valor de la contrasea es true, el campo de texto es de contrasea: cuando el usuario ha terminado de escribir la contrasea y hace clic en Aceptar, el campo de texto oculta los caracteres introducidos y los sustituye por asteriscos. Si su valor es false, el campo de texto no es de contrasea. Cuando est activado el modo de contrasea, los comandos Cortar y Copiar y sus correspondientes atajos de teclado no funcionan. Este mecanismo de seguridad impide que un usuario sin escrpulos pueda utilizar los mtodos abreviados para descubrir una contrasea en un equipo en el que no haya nadie presente. Ejemplo El ejemplo siguiente crea dos campos de texto: username_txt y password_txt. Se introduce texto en los dos campos de texto; sin embargo, password_txt tiene la propiedad password definida como true. Cuando el usuario hace clic en Aceptar para finalizar la introduccin de la contrasea, los caracteres se muestran como asteriscos y no como caracteres en el campo password_txt.
this.createTextField("username_txt", this.getNextHighestDepth(), 10, 10, 100, 22); username_txt.border = true; username_txt.type = "input"; username_txt.maxChars = 16; username_txt.text = "hello";

TextField

645

this.createTextField("password_txt", this.getNextHighestDepth(), 10, 40, 100, 22); password_txt.border = true; password_txt.type = "input"; password_txt.maxChars = 16; password_tx(.password = true; password_txt.text = "world";

_quality (propiedad TextField._quality)


public _quality : String

Propiedad (global); establece o recupera la calidad de representacin utilizada por un archivo SWF. Las fuentes de dispositivo siempre se muestran dentadas y, por consiguiente, no se ven afectadas por la propiedad _quality. Nota:aunque puede especificar esta propiedad para un objeto TextField, se trata en realidad de una propiedad global, por lo que puede especificar su valor simplemente como _quality. Para ms informacin, consulte la propiedad _quality. La propiedad _quality puede configurarse con los siguientes valores:

"LOW" Calidad de representacin baja. No se suavizan ni los grficos ni los mapas de bits. "MEDIUM" Calidad de representacin media. Los grficos se suavizan empleando una cuadrcula de 2 x 2 pxeles, pero los mapas de bits no se suavizan. La calidad resulta adecuada para pelculas que no contengan texto. "HIGH" Calidad de representacin alta. Los grficos se suavizan empleando una cuadrcula de 4 x 4 pxeles, mientras que los mapas de bits se suavizan si la pelcula es esttica. Esta es la calidad de representacin predeterminada de Flash. "BEST" Calidad de representacin muy alta. Los grficos se suavizan empleando una cuadrcula de 4 x 4 pxeles y los mapas de bits se suavizan siempre.

Nota: la propiedad no admite fuentes para rabe, hebreo y tailands. Ejemplo El ejemplo siguiente establece la calidad de representacin como LOW:
my_txt._quality = "LOW";

Vase tambin
Propiedad _quality

646

Clases de ActionScript

removeListener (mtodo TextField.removeListener)


public removeListener(listener:Object) : Boolean

Elimina un objeto detector anteriormente registrado en una instancia de campo de texto con TextField.addListener(). Parmetros
listener:Object

- El objeto dejar de recibir notificaciones de TextField.onChanged o

TextField.onScroller.

Valor devuelto
Boolean

- Si listener se ha eliminado correctamente, el mtodo devolver el valor true. Si el listener no se ha eliminado correctamente (por ejemplo, porque listener no se encontraba en la lista de detectores del objeto TextField), el mtodo devolver el valor false.

Ejemplo El ejemplo siguiente crea un campo de introduccin de texto llamado my_txt. Cuando el usuario escribe en el campo, aparece informacin sobre el nmero de caracteres del campo de texto en el panel Salida. Cuando el usuario escribe en el campo, se escribe la informacin sobre el nmero de caracteres del campo de texto en el archivo de registro. Si el usuario hace clic en la instancia removeListener_btn, se elimina el detector y deja de mostrarse la informacin. Si el usuario hace clic en la instancia removeListener_btn, se elimina el detector y deja de escribirse en el archivo de registro.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 160, 20); my_txt.border = true; my_txt.type = "input"; var txtListener:Object = new Object(); txtListener.onChanged = function(textfield_txt:TextField) { trace(textfield_txt+" changed. Current length is: "+textfield_txt.length); }; my_txt.addListener(txtListener); removeListener_btn.onRelease = function() { trace("Removing listener..."); if (!my_txt.removeListener(txtListener)) { trace("Error! Unable to remove listener"); } };

TextField

647

removeTextField (mtodo TextField.removeTextField)


public removeTextField() : Void

Elimina el campo de texto. Esta operacin slo puede realizarse en un campo de texto creado con MovieClip.createTextField(). Al llamar a este mtodo, se elimina el campo de texto. Este mtodo es similar a MovieClip.removeMovieClip(). Ejemplo El ejemplo siguiente crea un campo de texto que puede eliminarse del escenario al hacer clic en la instancia remove_btn. Cree un botn y llmelo remove_btn y, a continuacin, aada el siguiente cdigo ActionScript al archivo FLA o ActionScript.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 300, 22); my_txt.text = new Date().toString(); my_txt.border = true; remove_btn.onRelease = function() { my_txt.removeTextField(); };

replaceSel (mtodo TextField.replaceSel)


public replaceSel(newText:String) : Void

Reemplaza la seleccin actual por el contenido del parmetro newText. El texto se inserta en la posicin de la seleccin actual empleando el formato de carcter predeterminado y el formato de prrafo predeterminado actuales. El texto no se considera como HTML aunque se trate de un campo de texto HTML. Puede utilizar el mtodo replaceSel() para insertar y eliminar texto sin modificar el formato de carcter y de prrafo del resto del texto. Nota: debe utilizar el mtodo Selection.setFocus() para seleccionar el campo antes de llamar al mtodo replaceSel(). Parmetros
newText:String

- Una cadena.

648

Clases de ActionScript

Ejemplo El ejemplo siguiente crea en el escenario un campo de texto de varias lneas con texto. Cuando selecciona texto y hace clic con el botn derecho del ratn o con la tecla Control presionada, puede seleccionar Enter current date en el men contextual. Esta opcin llama a una funcin que reemplaza el texto seleccionado por la fecha actual.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 320, 240); my_txt.border = true; my_txt.wordWrap = true; my_txt.multiline = true; my_txt.type = "input"; my_txt.text = "Select some sample text from the text field and then rightclick/control click " + "and select 'Enter current date' from the context menu to replace the " + "currently selected text with the curr(nt date."; var my_cm:ContextMenu = new ContextMenu(); my_cm.customItems.push(new ContextMenuItem("Enter current date", enterDate)); function enterDate(obj:Object, menuItem:ContextMenuItem) { var today_str:String = new Date().toString(); var date_str:String = today_str.split(" ", 3).join(" "); my_txt.replaceSel(date_str); } my_txt.menu = my_cm;

Vase tambin
setFocus (mtodo Selection.setFocus)

replaceText (mtodo TextField.replaceText)


public replaceText(beginIndex:Number, endIndex:Number, newText:String) : Void

Reemplaza el rango de caracteres especificado por los parmetros beginIndex y endIndex del campo de texto indicado por el contenido del parmetro newText. Parmetros
beginIndex:Number endIndex:Number newText:String

- El valor de ndice inicial para el rango de sustitucin.

- El valor de ndice final para el rango de sustitucin.

- El texto que va a reemplazar al rango de caracteres especificado.

TextField

649

Ejemplo El ejemplo siguiente crea un campo de texto my_txt y le asigna una cadena de texto dog@house.net. Se utiliza el mtodo indexOf() para encontrar la primera vez que aparece el smbolo especificado (@). Si se encuentra el smbolo, el texto especificado (entre el ndice de 0 y el smbolo) se reemplaza con la cadena bird. Si no se encuentra el smbolo, se muestra un mensaje de error en el panel Salida. Si no se encuentra el smbolo, se escribe un mensaje de error en el archivo de registro.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 320, 22); my_txt.autoSize = true; my_txt.text = "dog@house.net"; var symbol:String = "@"; var symbolPos:Number = my_txt.text.indexOf(symbol); if (symbolPos>-1) { my_txt.replaceText(0, symbolPos, "bird"); } else { trace("symbol '"+symbol+"' not found."); }

_rotation (propiedad TextField._rotation)


public _rotation : Number

Giro del campo de texto, expresado en grados, con respecto a su orientacin original. Los valores comprendidos entre 0 y 180 representan un giro en el sentido de las agujas del reloj, mientras que los comprendidos entre 0 y -180 representan un giro en sentido contrario al de las agujas del reloj. Los valores situados fuera de este rango se suman o restan de 360 para obtener un valor que s est comprendido en el rango. Por ejemplo, la sentencia my_txt._rotation = 450 es igual que my_txt._rotation = 90. Los valores de giro no se admiten para campos de texto que utilizan fuentes de dispositivo. Debe utilizar fuentes incorporadas para utilizar _rotation con un campo de texto. Nota: la propiedad no admite fuentes para rabe, hebreo y tailands. Ejemplo En este ejemplo, debe crear un campo de texto dinmico denominado my_txt y utilizar el siguiente cdigo ActionScript para incorporar fuentes y girar el campo de texto. La cadena my font hace referencia a un smbolo de fuente de la biblioteca, con un identificador de vinculacin my font.
var my_fmt:TextFormat = new TextFormat(); my_fmt.font = "my font";

650

Clases de ActionScript

this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 160, 120); my_txt.wordWrap = true; my_txt.embedFonts = true; my_txt.text = "Hello world"; my_txt.setTextFormat(my_fmt); my_txt._rotation = 45;

Aplique ms formato al campo de texto utilizando la clase TextFormat class. Vase tambin
_rotation (propiedad Button._rotation), _rotation (propiedad MovieClip._rotation), TextFormat

scroll (propiedad TextField.scroll)


public scroll : Number

Define la posicin vertical del texto de un campo de texto. La propiedad scroll es til para dirigir a los usuarios a un prrafo especfico en un pasaje largo, o para crear campos de texto con desplazamiento. Esta propiedad puede recuperarse y modificarse. Las unidades de desplazamiento horizontal son pxeles, mientras que las de desplazamiento vertical son lneas. El desplazamiento horizontal se mide en pxeles porque la mayora de las fuentes que utiliza normalmente tienen espaciado proporcional, lo que significa que los caracteres tienen anchuras diferentes. Flash realiza el desplazamiento vertical por lneas porque el usuario normalmente desea ver una lnea de texto ntegramente y no slo parte de ella. Aunque en una lnea se utilicen varias fuentes, la altura de la lnea se ajusta a la de la fuente ms grande. Ejemplo El ejemplo siguiente establece el valor mximo del campo de texto de desplazamiento my_txt. Cree dos botones, scrollUp_btn y scrollDown_btn para desplazar el campo de texto. Aada el siguiente cdigo ActionScript al archivo ActionScript o FLA.
this.createTextField("scroll_txt", this.getNextHighestDepth(), 10, 10, 160, 20); this.createTextField("my_txt", this.getNextHighestDepth(), 10, 30, 320, 240); my_txt.multiline = true; my_txt.wordWrap = true; for (var i = 0; i<10; i++) { my_txt.text += "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy " + "nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.";

TextField

651

} scrollUp_btn.onRelease = function() { my_txt.scroll--; scroll_txt.text = my_txt.scroll+" of "+my_txt.maxscroll; }; scrollDown_btn.onRelease = function() { my_txt.scroll++; scroll_txt.text = my_txt.scroll+" of "+my_txt.maxscroll; };

Vase tambin
hscroll (propiedad TextField.hscroll), maxscroll (propiedad TextField.maxscroll)

selectable (propiedad TextField.selectable)


public selectable : Boolean

Valor booleano que indica si el campo de texto puede seleccionarse. Si el valor es true, el texto se puede seleccionar. La propiedad selectable controla si un campo de texto es seleccionable y no si un campo de texto es editable. Un campo dinmico puede seleccionarse aunque no sea editable. Si un campo de texto dinmico no es seleccionable, no puede seleccionar su texto. Si selectable se establece con el valor false, el texto del campo de texto no responder a los comandos de seleccin del ratn o el teclado y el texto no se podr copiar utilizando el comando Copiar. Si selectable se establece con el valor true, el texto del campo de texto podr seleccionarse utilizando el ratn o el teclado. Puede seleccionar texto de esta forma aunque el campo de texto sea dinmico en lugar de un campo de entrada de texto. Tambin puede copiar el texto utilizando el comando Copiar. Nota: la propiedad no admite fuentes para rabe, hebreo y tailands. Ejemplo El ejemplo siguiente crea un campo de texto seleccionable que actualiza constantemente la fecha y la hora actual.
this.createTextField("date_txt", this.getNextHighestDepth(), 10, 10, 100, 22); date_txt.autoSize = true; date_txt.selectable = true; (var date_interval:Number = setInterval(updateTime, 500, date_txt); function updateTime(my_txt:TextField) { my_txt.text = new Date().toString(); }

652

Clases de ActionScript

setNewTextFormat (mtodo TextField.setNewTextFormat)


public setNewTextFormat(tf:TextFormat) : Void

Establece el formato de texto nuevo predeterminado de un campo de texto. El nuevo formato de texto predeterminado es el formato que recibe el texto insertado, como, por ejemplo, el texto introducido por un usuario. Cuando se inserta texto, se asigna el formato predeterminado de nuevo texto al nuevo texto insertado. El formato de texto predeterminado se especifica mediante textFormat, que es un objeto TextFormat. Parmetros
tf:TextFormat

- Un objeto TextFormat.

Ejemplo En el ejemplo siguiente, se crea un nuevo campo de texto (denominado my_txt) en tiempo de ejecucin y se definen varias propiedades. Se aplica el formato del texto que se ha insertado.
var my_fmt:TextForma(= new TextFormat(); my_fmt.bold = true; my_fmt.font = "Arial"; my_fmt.color = 0xFF9900; this.createTextField("my_txt", 999, 0, 0, 400, 300); my_txt.wordWrap = true; my_txt.multiline = true; my_txt.border = true; my_txt.type = "input"; my_txt.setNewTextFormat(my_fmt); my_txt.text = "Oranges are a good source of vitamin C";

Vase tambin
getNewTextFormat (mtodo TextField.getNewTextFormat), getTextFormat (mtodo TextField.getTextFormat), setTextFormat (mtodo TextField.setTextFormat)

TextField

653

setTextFormat (mtodo TextField.setTextFormat)


public setTextFormat([beginIndex:Number], [endIndex:Number], textFormat:TextFormat) : Void

Aplica el formato de texto especificado por el parmetro textFormat a una parte o a todo el texto de un campo de texto. textFormat debe ser un objeto TextFormat que especifique los cambios de formato de texto deseados. Slo se aplican al campo de texto las propiedades de textFormat que no tengan valor null. No se aplicar ninguna propiedad de textFormat configurada con el valor null. De manera predeterminada, todas las propiedades del objeto TextFormat de nueva creacin estn configuradas con el valor null. Existen dos tipos de informacin de formato en un objeto TextFormat: formato de nivel de carcter y de nivel de prrafo. Cada carcter de un campo de texto puede tener su propia configuracin de formato de carcter, como nombre de fuente, tamao de fuente, negrita y cursiva. En el caso de los prrafos, se examina el primer carcter del prrafo en busca de la configuracin de formato de prrafo para el prrafo completo. Margen izquierdo, margen derecho y sangra son ejemplos de configuracin de formato de prrafo. El mtodo setTextFormat() cambia el formato de texto aplicado a un carcter individual, a un rango de caracteres o a todo el cuerpo del texto de un campo de texto.

Sintaxis 1: Aplica las propiedades de textFormat a todo el texto del campo de texto. Sintaxis 2: Aplica las propiedades de textFormat al carcter situado en la posicin beginIndex. Sintaxis 3: Aplica al fragmento de texto las propiedades del parmetro textFormat desde la posicin beginIndex hasta la posicin endIndex.

Tenga en cuenta que el texto insertado manualmente por el usuario recibe el formato predeterminado de campo de texto para texto nuevo, no el formato especificado para el punto de insercin del texto. Para definir el formato de texto predeterminado de un campo de texto, utilice TextField.setNewTextFormat().

654

Clases de ActionScript

Parmetros
beginIndex:Number [opcional] - Un entero que especifica el primer carcter de un fragmento de texto. Si no especifica beginIndex y endIndex, el objeto TextFormat devuelto se aplica al TextField completo.

[opcional] - Un entero que especifica el primer carcter despus de un fragmento de texto. Si especifica beginIndex pero no especifica endIndex, TextFormat se aplica al nico carcter que especifica beginIndex.
endIndex:Number textFormat:TextFormat

- Un objeto TextFormat que contiene informacin de formato de

carcter y de prrafo. Ejemplo El ejemplo siguiente define el formato de texto de dos cadenas de texto diferentes. Se llama al mtodo setTextFormat y se aplica al campo de texto my_txt.
var format1_fmt:TextFormat = new TextFormat(); format1_fmt.font = "Arial"; var format2_fmt:TextFormat = new TextFormat(); format2_fmt.font = "Courier"; var string1:String = "Sample string number one."+newline; var string2:String = "Sample string number two."+newline; this.createTextField("my_txt", this.getNextHighestDepth(), 0, 0, 300, 200); my_txt.multiline = true; my_txt.wordWrap = true; my_txt.text = string1; var firstIndex:Number = my_txt.length; my_txt.text += string2; var secondIndex:Number = my_txt.length; my_txt.setTextFormat(0, firstIndex, format1_fmt); my_txt.setTextFormat(firstIndex, secondIndex, format2_fmt);

Vase tambin
TextFormat, setNewTextFormat (mtodo TextField.setNewTextFormat)

TextField

655

_soundbuftime (propiedad TextField._soundbuftime)


public _soundbuftime : Number

Especifica el nmero de segundos que un sonido debe acumularse previamente en el bfer antes de que comience a reproducirse sin interrupcin. Nota: aunque puede especificar esta propiedad para un objeto TextField, se trata en realidad de una propiedad global que se aplica a todos los sonidos cargados, por lo que puede especificar su valor simplemente como _soundbuftime. Al establecer esta propiedad para un objeto TextField, en realidad se define la propiedad global. Para ms informacin y ver un ejemplo, consulte _soundbuftime. Vase tambin
Propiedad _soundbuftime

tabEnabled (propiedad TextField.tabEnabled)


public tabEnabled : Boolean

Especifica si el campo de texto se incluye en el orden de tabulacin automtico. De manera predeterminada, tiene el valor undefined. Si la propiedad tabEnabled es undefined o true, el objeto se incluir en el orden de tabulacin automtico. Si la propiedad tabIndex tambin est configurada con un valor, el objeto se incluir tambin en el orden de tabulacin personalizado. Si tabEnabled tiene el valor false, el objeto no se incluir en el orden de tabulacin automtico ni en el personalizado aunque se establezca la propiedad tabIndex. Ejemplo El ejemplo siguiente crea varios campos de texto, denominados one_txt y two_txt, y four_txt. El campo three_txt tiene la propiedad tabEnabled definida como false, por lo que se excluye del orden de tabulacin automtico.
three_txt this.createTextField("one_txt", this.getNextHighestDepth(), 10, 10, 100, 22); one_txt.border = true; one_txt.type = "input"; this.createTextField("two_txt", this.getNextHighestDepth(), 10, 40, 100, 22); two_txt.border = true; two_txt.type = "input"; this.createTextField("three_txt", this.getNextHighestDepth(), 10, 70, 100, 22); three_txt.border = true; three_txt.type = "input"; this.createTextField("four_txt", this.getNextHighestDepth(), 10, 100, 100, 22);

656

Clases de ActionScript

four_txt.border = true; four_txt.type = "input"; three_txt.tabEnabled = false; three_txt.text = "tabEnabled = false;";

Vase tambin
tabEnabled (propiedad Button.tabEnabled), tabEnabled (propiedad MovieClip.tabEnabled)

tabIndex (propiedad TextField.tabIndex)


public tabIndex : Number

Permite personalizar el orden de tabulacin de los objetos de un archivo SWF. Puede establecer la propiedad tabIndex de un botn, un clip de pelcula o una instancia de campo de texto; la configuracin predeterminada es undefined (no definido). Si algn objeto mostrado actualmente en el archivo SWF contiene una propiedad tabIndex, se desactivar el orden de tabulacin automtico y el orden de tabulacin se calcular a partir de las propiedades tabIndex de los objetos del archivo SWF. El orden de tabulacin personalizado slo incluye objetos que tienen propiedades tabIndex. La propiedad tabIndex debe ser un entero positivo. Los objetos se ordenan conforme a lo que indiquen las propiedades tabIndex y en orden ascendente. Un objeto que tenga el valor 1 para tabIndex preceder a otro objeto que tenga el valor 2 para tabIndex. Si dos objetos tienen el mismo valor de tabIndex, su clasificacin en el orden de tabulacin no estar definida (undefined). El orden de tabulacin personalizado definido por la propiedad tabIndex es flat (plano o no jerrquico). Esto significa que no se tienen en cuenta las relaciones jerrquicas entre los objetos del archivo SWF. Todos los objetos del archivo SWF con propiedades tabIndex tendrn su lugar en el orden de tabulacin, que se determinar por el orden de los valores de tabIndex. Si dos objetos tienen el mismo valor de tabIndex, el que va en primer lugar no estar definido (undefined). No debe utilizar el mismo valor de tabIndex para varios objetos.

TextField

657

Ejemplo El siguiente cdigo ActionScript crea de forma dinmica cuatro campos de texto y les asigna un orden de tabulacin personalizado. Aada el siguiente cdigo ActionScript al archivo ActionScript o FLA:
this.createTextField("one_txt", this.getNextHighestDepth(), 10, 10, 100, 22); one_txt.border = true; one_txt.type = "input"; this.createTextField("two_txt", this.getNextHighestDepth(), 10, 40, 100, 22); two_txt.border = true; two_txt.type = "input"; this.createTextField("three_txt", this.getNextHighestDepth(), 10, 70, 100, 22); three_txt.border = true; three_txt.type = "input"; this.createTextField("four_txt", this.getNextHighestDepth(), 10, 100, 100, 22); four_txt.border = true; four_txt.type = "input"; one_txt.tabIndex = 3; two_txt.tabIndex = 1; three_txt.tabIndex = 2; four_txt.tabIndex = 4;

Vase tambin
tabIndex (propiedad Button.tabIndex), tabIndex (propiedad MovieClip.tabIndex)

_target (propiedad TextField._target)


public _target : String [read-only]

Ruta de destino de la instancia del campo de texto. El destino _self especifica el marco actual de la ventana actual, _blank especifica una ventana nueva, _parent especifica el nivel superior del marco actual y _top especifica el marco del nivel ms alto de la ventana actual. Ejemplo El siguiente cdigo ActionScript crea un campo de texto denominado my_txt y devuelve la ruta de destino del nuevo campo, en notacin con barras y con punto.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 100, 22); trace(my_txt._target); // salida: /my_txt trace(eval(my_txt._target)); // salida: _level0.my_txt

658

Clases de ActionScript

text (propiedad TextField.text)


public text : String

Indica el texto actual del campo de texto. Las lneas se separan mediante el carcter de retorno de carro ("\r", ASCII 13). Esta propiedad contiene el texto normal sin formato del campo de texto, sin etiquetas HTML, aunque el campo de texto sea HTML. Ejemplo El ejemplo siguiente crea un campo de texto HTML llamado my_txt y le asigna una cadena de texto con formato HTML. Al trazar la propiedad htmlText, el panel Salida muestra la cadena en formato HTML. La cadena en formato HTML se escribe en el archivo de registro. Al trazar el valor de la propiedad text, la cadena sin formato con etiquetas HTML se muestra en el panel Salida. Al trazar el valor de la propiedad text, la cadena sin formato con etiquetas HTML se escribe en el archivo de registro.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 400, 22); my_txt.html = true; my_txt.htmlText = "<b>Remember to always update the help panel.</b>"; trace("htmlText: "+my_txt.htmlText); trace("text: "+my_txt.text); // salida: htmlText: <P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000"> <B>Remember to always update your help panel.</B></FONT></P> text: Remember to always update your help panel.

Vase tambin
htmlText (propiedad TextField.htmlText)

textColor (propiedad TextField.textColor)


public textColor : Number

Indica el color del texto de un campo de texto. El sistema de colores hexadecimal utiliza seis dgitos para representar los valores de color. Cada dgito tiene diecisis valores o caracteres posibles. El rango de caracteres de 0 a 9 y, seguidamente, de A a F. Negro se representa mediante (#000000) y blanco, situado en el extremo opuesto del sistema de colores, mediante (#FFFFFF).

TextField

659

Ejemplo El siguiente cdigo ActionScript crea un campo de texto y cambia su propiedad color a red.
this.createTextField("my_txt", 99, 10, 10, 100, 300); my_txt.text = "this will be red text"; my_txt.textColor = 0xFF0000;

textHeight (propiedad TextField.textHeight)


public textHeight : Number

Indica la altura del texto. Ejemplo El ejemplo siguiente crea un campo de texto y le asigna una cadena de texto. Se utiliza una sentencia trace para mostrar la altura y la anchura del texto en el panel Salida. El mtodo trace() se utiliza para escribir la altura y la anchura del texto en el archivo de registro. Despus, se utiliza la propiedad autoSize para cambiar el tamao del campo de texto y la nueva altura y anchura tambin se muestran en el panel Salida. Despus, se utiliza la propiedad autoSize para cambiar el tamao del campo de texto y la nueva altura y anchura tambin se escriben en el archivo de registro.
this.createTextField("my_txt", 99, 10, 10, 100, 300); my_txt.text = "Sample text"; trace("textHeight: "+my_txt.textHeight+", textWidth: "+my_txt.textWidth); trace("_height: "+my_txt._height+", _width: "+my_txt._width+"\n"); my_txt.autoSize = true; trace("after my_txt.autoSize = true;"); trace("_height: "+my_txt._height+", _width: "+my_txt._width);

Que devuelve la siguiente informacin:


textHeight: 15, textWidth: 56 _height: 300, _width: 100 after my_txt.autoSize = true; _height: 19, _width: 60

Vase tambin
textWidth (propiedad TextField.textWidth)

660

Clases de ActionScript

textWidth (propiedad TextField.textWidth)


public textWidth : Number

Indica la anchura del texto. Ejemplo Consulte el ejemplo de TextField.textHeight. Vase tambin
textHeight (propiedad TextField.textHeight)

type (propiedad TextField.type)


public type : String

Especifica el tipo de campo de texto. Existen dos valores: "dynamic", que especifica un campo de texto dinmico que el usuario no puede modificar, e "input", que especifica un campo de introduccin de texto. Ejemplo El ejemplo siguiente crea dos campos de texto: username_txt y password_txt. Se introduce texto en los dos campos de texto; sin embargo, password_txt tiene la propiedad password definida como true. Por lo tanto, los caracteres se muestran como asteriscos en el campo password_txt.
this.createTextField("username_txt", this.getNextHighestDepth(), 10, 10, 100, 22); username_txt.border = true; username_txt.type = "input"; username_txt.maxChars = 16; username_txt.text = "hello"; this.createTextField("password_txt", this.getNextHighestDepth(), 10, 40, 100, 22); password_txt.border = true; password_txt.type = "input"; password_txt.maxChars = 16; password_txt.password = true; password_txt.text = "world";

TextField

661

_url (propiedad TextField._url)


public _url : String [read-only]

Recupera el URL del archivo SWF que cre el campo de texto. Ejemplo El ejemplo siguiente recupera la URL del archivo SWF que cre el campo de texto y un archivo SWF que se carga en l.
this.createTextField("my_txt", 1, 10, 10, 100, 22); trace(my_txt._url); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { trace(target_mc._url); }; var holder_mcl:MovieClipLoader = new MovieClipLoader(); holder_mcl.addListener(mclListener); holder_mcl.loadClip("best_flash_ever.swf", this.createEmptyMovieClip("holder_mc", 2));

Al probar este ejemplo, la URL del archivo SWF que se est probando y el archivo best_flash_ever.swf se muestran en el panel Salida. Al probar este ejemplo, la URL del archivo SWF que se est probando y el archivo best_flash_ever.swf se escriben en el archivo de registro.

variable (propiedad TextField.variable)


public variable : String

El nombre de la variable a la que est asociado el campo de texto. El tipo de esta propiedad es String. Ejemplo El ejemplo siguiente crea un campo de texto con el nombre my_txt y le asocia la variable today_date. Al cambiar la variable today_date, se actualiza el texto que aparece en my_txt.
this.(reateTextField("my_txt", 1, 10, 10, 200, 22); my_txt.variable = "today_date"; var today_date:Date = new Date(); var date_interval:Number = setInterval(updateDate, 500); function updateDate():Void { today_date = new Date(); }

662

Clases de ActionScript

_visible (propiedad TextField._visible)


public _visible : Boolean

Valor booleano que indica si el campo de texto my_txt puede seleccionarse. Los campos de texto no visibles (que tienen la propiedad _visible configurada como false) se desactivan. Ejemplo El ejemplo siguiente crea un campo de texto llamado my_txt. Un botn llamado visible_btn muestra y oculta my_txt.
this.createTextField("my_txt", 1, 10, 10, 200, 22); my_txt.background = true; my_txt.backgroundColor = 0xDFDFDF; my_txt.border = true; my_txt.type = "input"; visible_btn.onRelease = function() { my_txt._visible = !my_txt._visible; };

Vase tambin
_visible (propiedad Button._visible), _visible (propiedad MovieClip._visible)

_width (propiedad TextField._width)


public _width : Number

Anchura del campo de texto, expresada en pxeles. Ejemplo El ejemplo siguiente crea dos campos de texto que pueden utilizarse para cambiar la anchura y la altura de un tercer campo de texto en el escenario. Aada el siguiente cdigo ActionScript al archivo ActionScript o FLA.
this.createTextField("my_txt", this.getNextHighestDepth(), 10, 40, 160, 120); my_txt.background = true; my_txt.backgroundColor = 0xFF0000; my_txt.border = true; my_txt.multiline = true; my_txt.type = "input"; my_txt.wordWrap = true; this.createTextField("width_txt", this.getNextHighestDepth(), 10, 10, 30, 20);

TextField

663

width_txt.border = true; width_txt.maxChars = 3; width_txt.type = "input"; width_txt.text = my_txt._width; width_txt.onChanged = function() { my_txt._width = this.text; } this.createTextField("height_txt", this.getNextHighestDepth(), 70, 10, 30, 20); height_txt.border = true; height_txt.maxChars = 3; height_txt.type = "input"; height_txt.text = my_txt._height; height_txt.onChanged = function() { my_txt._height = this.text; }

Al probar el ejemplo, intente especificar nuevos valores en width_txt y height_txt para cambiar las dimensiones de my_txt. Vase tambin
_height (propiedad TextField._height)

wordWrap (propiedad TextField.wordWrap)


public wordWrap : Boolean

Valor booleano que indica si el campo de texto tiene ajuste de texto. Si el valor de wordWrap es true, el campo de texto tiene ajuste de texto; si el valor es false, el campo de texto no tiene ajuste de texto. Ejemplo El ejemplo siguiente muestra cmo afecta wordWrap al texto largo en un campo de texto creado en tiempo de ejecucin.
this.createTextField("my_txt", 99, 10, 10, 100, 200); my_txt.text = "This is very long text that will certainly extend beyond the width of this text field"; my_txt.border = true;

Para probar el archivo SWF en Flash Player, seleccione Control > Probar pelcula. A continuacin, vuelva a ActionScript y aada la lnea siguiente al cdigo, y pruebe de nuevo el archivo SWF:
my_txt.wordWrap = true;

664

Clases de ActionScript

_x (propiedad TextField._x)
public _x : Number

Entero que establece la coordenada x de un campo de texto como relativa a las coordenadas locales del clip de pelcula principal. Si un campo de texto se encuentra en la lnea de tiempo principal, su sistema de coordenadas har referencia a la esquina superior izquierda del escenario como (0, 0). Si el campo de texto est dentro de un clip de pelcula que incluye transformaciones, el campo de texto estar en el sistema de coordenadas local del clip de pelcula en el que est contenido. Por consiguiente, en el caso de un clip de pelcula con un giro de 90 grados en sentido contrario al de las agujas del reloj, el campo de texto contenido hereda un sistema de coordenadas con un giro de 90 grados en sentido contrario al de las agujas del reloj. Las coordenadas del campo de texto hacen referencia a la posicin del punto de registro. Ejemplo El ejemplo siguiente crea un campo de texto donde se haga clic con el ratn. Cuando crea un campo de texto, ese campo muestra las coordenadas x e y actuales del campo de texto.
this.createTextField("coords_txt", this.getNextHighestDepth(), 0, 0, 60, 22); coords_txt.autoSize = true; coords_txt.selectable = false; coords_txt.border = true; var mouseListener:Object = new Object(); mouseListener.onMouseDown = function() { coords_txt.text = "X:"+Math.round(_xmouse)+", Y:"+Math.round(_ymouse); coords_txt._x = _xmouse; coords_txt._y = _ymouse; }; Mouse.addListener(mouseListener);

Vase tambin
_xscale (propiedad TextField._xscale), _y (propiedad TextField._y), _yscale (propiedad TextField._yscale)

_xmouse (propiedad TextField._xmouse)


public _xmouse : Number [read-only]

Devuelve la coordenada x de la posicin del ratn relativa al campo de texto. Nota: esta propiedad se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true.

TextField

665

Ejemplo El ejemplo siguiente crea tres campos de texto en el escenario. La instancia mouse_txt muestra la posicin actual del ratn en relacin al escenario. La instancia textfield_txt muestra la posicin actual del puntero del ratn en relacin a la instancia my_txt. Aada el siguiente cdigo ActionScript al archivo ActionScript o FLA:
this.createTextField("mouse_txt", this.getNextHighestDepth(), 10, 10, 200, 22); mouse_txt.border = true; this.createTextField("textfield_txt", this.getNextHighestDepth(), 220, 10, 200, 22); textfield_txt.border = true; this.createTextField("my_txt", this.getNextHighestDepth(), 100, 100, 160, 120); my_txt.border = true; var mouseListener:Object = new Object(); mouseListener.onMouseMove = function() { mouse_txt.text = "MOUSE ... X:" + Math.round(_xmouse) + ",\tY:" + Math.round(_ymouse); textfield_txt.text = "TEXTFIELD ... X:" + Math.round(my_txt._xmouse) + ",\tY:" + Math.round(my_txt._ymouse); } Mouse.addListener(mouseListener);

Vase tambin
_ymouse (propiedad TextField._ymouse)

_xscale (propiedad TextField._xscale)


public _xscale : Number

Determina la escala horizontal del campo de texto aplicada desde el punto de registro del campo de texto, expresada como porcentaje. El punto de registro predeterminado es (0,0). Ejemplo El ejemplo siguiente cambia la escala de la instancia my_txt cuando hace clic en las instancias scaleUp_btn y scaleDown_btn.
this.createTextField("my_txt", 99, 10, 40, 100, 22); my_txt.autoSize = true; my_txt.border = true; my_txt.selectable = false; my_txt.text = "Sample text goes here.";

666

Clases de ActionScript

scaleUp_btn.onRelease = function() { my_txt._xscale = 2; my_txt._yscale = 2; } scaleDown_btn.onRelease = function() { my_txt._xscale /= 2; my_txt._yscale /= 2; }

Vase tambin
_x (propiedad TextField._x), _y (propiedad TextField._y), _yscale (propiedad TextField._yscale)

_y (propiedad TextField._y)
public _y : Number

Establece la coordenada y de un campo de texto como relativa a las coordenadas locales del clip de pelcula principal. Si un campo de texto se encuentra en la lnea de tiempo principal, su sistema de coordenadas har referencia a la esquina superior izquierda del escenario como (0, 0). Si el campo de texto est dentro de otro clip de pelcula que incluye transformaciones, el campo de texto estar en el sistema de coordenadas local del clip de pelcula en el que est contenido. Por consiguiente, en el caso de un clip de pelcula con un giro de 90 grados en sentido contrario al de las agujas del reloj, el campo de texto contenido hereda un sistema de coordenadas con un giro de 90 grados en sentido contrario al de las agujas del reloj. Las coordenadas del campo de texto hacen referencia a la posicin del punto de registro. Ejemplo Consulte el ejemplo de TextField._x. Vase tambin
_x (propiedad TextField._x), _xscale (propiedad TextField._xscale), _yscale (propiedad TextField._yscale)

_ymouse (propiedad TextField._ymouse)


public _ymouse : Number [read-only]

Indica la coordenada y de la posicin del ratn relativa al campo de texto. Nota: esta propiedad se admite en Flash Lite slo si System.capabilities.hasMouse es true o System.capabilities.hasStylus es true.

TextField

667

Ejemplo Consulte el ejemplo de TextField._xmouse. Vase tambin


_xmouse (propiedad TextField._xmouse)

_yscale (propiedad TextField._yscale)


public _yscale : Number

La escala vertical del campo de texto aplicada desde el punto de registro del campo de texto, expresada como porcentaje. El punto de registro predeterminado es (0,0). Ejemplo Consulte el ejemplo de TextField._xscale. Vase tambin
_x (propiedad TextField._x), _xscale (propiedad TextField._xscale), _y (propiedad TextField._y)

TextFormat
Object | +-TextFormat public class TextFormat extends Object

La clase TextFormat representa la informacin de formato de caracteres. Utilice la clase TextFormat para crear formato de texto especfico para campos de texto. Puede aplicar formato de texto tanto a campos de texto estticos como dinmicos. Algunas propiedades de la clase TextFormat no estn disponibles para fuentes incorporadas y de dispositivo. Vase tambin
setTextFormat (mtodo TextField.setTextFormat), getTextFormat (mtodo TextField.getTextFormat)

668

Clases de ActionScript

Resumen de propiedades
Modificadores Propiedad
align:String blockIndent:Number

Descripcin
Cadena que indica la alineacin del prrafo. Un nmero que indica la sangra de bloque en puntos. Un valor booleano que especifica si el texto est en negrita. Un valor booleano que indica que el texto forma parte de una lista con vietas. Un nmero que indica el color del texto. Una cadena que especifica el nombre de la fuente para el texto. Un entero que indica la sangra desde el margen izquierdo hasta el primer carcter del prrafo. Un valor booleano que indica si el texto con este formato de texto est en cursiva. Un entero que representa la cantidad de espacio vertical entre lneas (denominado interlineado) expresado en pxeles. El margen izquierdo del prrafo expresado en puntos. El margen derecho del prrafo expresado en puntos. El tamao en puntos del texto con este formato de texto. Especifica las tabulaciones personalizadas como una matriz de enteros no negativos. Indica la ventana de destino en la que se muestra el hipervnculo. Un valor booleano que indica si el texto que utiliza este formato de texto est subrayado (true) o no (false). Indica la URL con la que est vinculado el texto con este formato de texto.

bold:Boolean

bullet:Boolean

color:Number font:String

indent:Number

italic:Boolean

leading:Number

leftMargin:Number

rightMargin:Number

size:Number

tabStops:Array

target:String

underline:Boolean

url:String

TextFormat

669

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de constructores
Firma
ring], [size:Number], [color:Number], [bold:Boolean], [italic:Boolean], [underline:Boolean] , [url:String], [target:String], [align:String], [leftMargin:Number] , [rightMargin:Number ], [indent:Number], [leading:Number])

Descripcin

TextFormat([font:St Crea un objeto TextFormat con las propiedades especificadas.

Resumen de mtodos
Modificadores Firma
String, [width:Number]) : Object

Descripcin
para la cadena text en el formato especificado por my_fmt.

getTextExtent(text: Devuelve informacin sobre las medidas del texto

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

670

Clases de ActionScript

align (propiedad TextFormat.align)


public align : String

Cadena que indica la alineacin del prrafo. Puede aplicar esta propiedad a texto esttico y dinmico. En la lista siguiente se muestran los valores que puede tener esta propiedad:

"left"

- el prrafo est alineado a la izquierda. - el prrafo est centrado. - el prrafo est alineado a la derecha.

"center" "right"

El valor predeterminado es null, que indica que la propiedad no se ha definido. Ejemplo El siguiente ejemplo crea un campo de texto con borde y utiliza TextFormat.align para centrar el texto.
var my_fmt:TextFormat = new TextFormat(); my_fmt.align = "center"; this.createTextField("my_txt", 1, 100, 100, 300, 100); my_txt.multiline = true; my_txt.wordWrap = true; my_txt.border = true; my_txt.text = "this is my first text field object text"; my_txt.setTextFormat(my_fmt);

blockIndent (propiedad TextFormat.blockIndent)


public blockIndent : Number

Un nmero que indica la sangra de bloque en puntos. La sangra de bloque se aplica a un bloque de texto completo; es decir, a todas las lneas del texto. Por el contrario, la sangra normal (TextFormat.indent) slo afecta a la primera lnea de cada prrafo. Si esta propiedad tiene el valor null, el objeto TextFormat no especifica la sangra de bloque. Ejemplo En este ejemplo se crea un campo de texto con borde y blockIndent se establece en 20.
this.createTextField("mytext",1,100,100,100,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true; var myformat:TextFormat = new TextFormat(); myformat.blockIndent = 20;

TextFormat

671

mytext.text = "This is my first text field object text"; mytext.setTextFormat(myformat);

bold (propiedad TextFormat.bold)


public bold : Boolean

Un valor booleano que especifica si el texto est en negrita. El valor predeterminado es null, que indica que la propiedad no se ha definido. Si el valor es true, el texto est en negrita. Nota: para rabe, hebreo y tailands, esta propiedad slo funciona para formato a nivel de prrafo. Ejemplo En el ejemplo siguiente se crea un campo de texto que incluye caracteres en negrita.
var my_fmt:TextFormat = new TextFormat(); my_fmt.bold = true; this.createTextField("my_txt", 1, 100, 100, 300, 100); my_txt.multiline = true; my_txt.wordWrap = true; my_txt.border = true; my_txt.text = "This is my text field object text"; my_txt.setTextFormat(my_fmt);

bullet (propiedad TextFormat.bullet)


public bullet : Boolean

Un valor booleano que indica que el texto forma parte de una lista con vietas. En una lista con vietas, todos los prrafos de texto estn sangrados. A la izquierda de la primera lnea de cada prrafo se muestra un smbolo de vieta. El valor predeterminado es null. Nota: en Flash Lite, esta propiedad funciona slo en fuentes incorporadas. La propiedad no admite fuentes para rabe, hebreo y tailands. Ejemplo En el ejemplo siguiente se crea un nuevo campo de texto durante la ejecucin y se introduce una cadena con un salto de lnea en el campo. La clase TextFormat se utiliza para asignar formato a los caracteres aadiendo vietas a cada lnea del campo de texto. Esto se ilustra en el siguiente cdigo ActionScript:
var my_fmt:TextFormat = new TextFormat(); my_fmt.bullet = true; this.createTextField("my_txt", 1, 100, 100, 300, 100);

672

Clases de ActionScript

my_txt.multiline = true; my_txt.wordWrap = true; my_txt.border = true; my_txt.text = "this is my text"+newline; my_txt.text += "this is more text"+newline; my_txt.setTextFormat(my_fmt);

color (propiedad TextFormat.color)


public color : Number

Un nmero que indica el color del texto. Nmero que contiene tres componentes RGB de 8 bits; por ejemplo, 0xFF0000 es rojo y 0x00FF00, verde. Nota: para rabe, hebreo y tailands, esta propiedad slo funciona para formato a nivel de prrafo. Ejemplo En el ejemplo siguiente se crea un campo de texto y el color del texto se establece en rojo.
var my_fmt:TextFormat = new TextFormat(); my_fmt.blockIndent = 20; my_fmt.color = 0xFF0000; // valor hexadecimal para rojo this.createTextField("my_txt", 1, 100, 100, 300, 100); my_txt.multiline = true; my_txt.wordWrap = true; my_txt.border = true; my_txt.text = "this is my first text field object text"; my_txt.setTextFormat(my_fmt);

font (propiedad TextFormat.font)


public font : String

Una cadena que especifica el nombre de la fuente para el texto. El valor predeterminado es null, que indica que la propiedad no se ha definido. Nota: en Flash Lite, esta propiedad funciona slo en fuentes incorporadas. La propiedad no admite fuentes para rabe, hebreo y tailands. Ejemplo En el ejemplo siguiente se crea un campo de texto y la fuente se define como Courier.
this.createTextField("mytext",1,100,100,100,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true;

TextFormat

673

var myformat:TextFormat = new TextFormat(); myformat.font = "Courier"; mytext.text = "this is my first text field object text"; mytext.setTextFormat(myformat);

getTextExtent (mtodo TextFormat.getTextExtent)


public getTextExtent(text:String, [width:Number]) : Object

Devuelve informacin sobre las medidas del texto para la cadena text en el formato especificado por my_fmt. La cadena de texto se considera como texto normal (que no es HTML). El mtodo devuelve un objeto con seis propiedades: ascent, descent, width, height, textFieldHeight y textFieldWidth. Todas las medidas se expresan en pxeles. Si se especifica un parmetro width, se aplicar ajuste de texto al texto especificado. Esto le permite determinar la altura a la que un cuadro de texto muestra todo el texto especificado. Las medidas ascent (ascendente) y descent (descendente) proporcionan, respectivamente, la distancia por encima y por debajo de la lnea de base de una lnea de texto. La lnea de base de la primera lnea de texto se sita en el origen del campo de texto ms su medida de ascent. Las medidas width y height proporcionan la anchura y la altura de la cadena de texto. Las medidas textFieldHeight y textFieldWidth proporcionan la altura y la anchura necesarias para que un objeto de campo de texto muestre la cadena de texto completa. Los campos de texto tienen alrededor un espacio de 2 pxeles de ancho, por lo que el valor de textFieldHeight es igual al valor de height + 4; de igual forma, el valor de textFieldWidth siempre es igual al valor de width + 4. Si est creando un campo de texto basado en las medidas del texto, utilice textFieldHeight en lugar de height y textFieldWidth en lugar de width.

674

Clases de ActionScript

En la siguiente figura se ilustran estas medidas.

Al configurar el objeto TextFormat, establezca todos los atributos exactamente de la forma que se establecern para la creacin del campo de texto, incluido el nombre de la fuente, el tamao de fuente y el espacio interlineal. El valor predeterminado de espacio interlineal (leading) es 2. Parmetros
text:String

- Una cadena.

width:Number

[opcional] - Un nmero que representa la anchura, en pxeles, a la que debe ajustarse el texto especificado. Valor devuelto

Object

- Un objeto con las propiedades width, height, ascent, descent,

textFieldHeight, textFieldWidth.

Ejemplo Este ejemplo crea un campo de texto de una lnea lo suficientemente grande para mostrar una cadena de texto con el formato especificado.
var my_str:String = "Small string"; // Crea un objeto TextFormat // y aplica sus propiedades. var my_fmt:TextFormat = new TextFormat(); with (my_fmt) { font = "Arial"; bold = true; }

TextFormat

675

// Obtiene informacin de medidas para la cadena de texto // con el formato especificado. var metrics:Object = my_fmt.getTextExtent(my_str); // Crea un campo de texto lo suficientemente largo para poder mostrar el texto. this.createTextField("my_txt", this.getNextHighestDepth(), 100, 100, metrics.textFieldWidth, metrics.textFieldHeight); my_txt.border = true; my_txt.wordWrap = true; // Asigna la misma cadena de texto y el objeto TextFormat al objeto my_txt. my_txt.text = my_str; my_txt.setTextFormat(my_fmt);

El ejemplo siguiente crea un campo de texto de varias lneas, de 100 pxeles de ancho lo suficientemente alto para mostrar una cadena con el formato especificado.
// Crear objeto TextFormat. var my_fmt:TextFormat = new TextFormat(); // Especifica las propiedades de formato para el objeto TextFormat: my_fmt.font = "Arial"; my_fmt.bold = true; my_fmt.leading = 4; // Cadena de texto que se muestra var textToDisplay:String = "Macromedia Flash Player 7, now with improved text metrics."; // Obtiene informacin de medidas de texto para la cadena, // ajustada en 100 pxeles. var metrics:Object = my_fmt.getTextExtent(textToDisplay, 100); // Crea un nuevo objeto TextField con la informacin de medidas // que se acaba de obtener. this.createTextField("my_txt", this.getNextHighestDepth(), 50, 50metrics.ascent, 100, metrics.textFieldHeight); my_txt.wordWrap = true; my_txt.border = true; // Asigna el texto y el objeto TextFormat a TextObject: my_txt.text = textToDisplay; my_txt.setTextFormat(my_fmt);

676

Clases de ActionScript

indent (propiedad TextFormat.indent)


public indent : Number

Un entero que indica la sangra desde el margen izquierdo hasta el primer carcter del prrafo. El valor predeterminado es null, que indica que la propiedad no se ha definido. Ejemplo En el ejemplo siguiente se crea un campo de texto y se establece la sangra en 10:
this.createTextField("mytext",1,100,100,100,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true; var myformat:TextFormat = new TextFormat(); myformat.indent = 10; mytext.text = "this is my first text field object text"; mytext.setTextFormat(myformat);

Vase tambin
blockIndent (propiedad TextFormat.blockIndent)

italic (propiedad TextFormat.italic)


public italic : Boolean

Un valor booleano que indica si el texto con este formato de texto est en cursiva. El valor predeterminado es null, que indica que la propiedad no se ha definido. Nota: para rabe, hebreo y tailands, esta propiedad slo funciona para formato a nivel de prrafo. Ejemplo En el ejemplo siguiente se crea un campo de texto y el estilo del texto se define en cursiva.
this.createTextField("mytext",1,100,100,100,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true; var myformat:TextFormat = new TextFormat(); myformat.italic = true; mytext.text = "This is my first text field object text"; mytext.setTextFormat(myformat);

TextFormat

677

leading (propiedad TextFormat.leading)


public leading : Number

Un entero que representa la cantidad de espacio vertical entre lneas (denominado interlineado) expresado en pxeles. El valor predeterminado es null, que indica que la propiedad no se ha definido. Ejemplo En el ejemplo siguiente se crea un campo de texto y se establece el interlineado en 10.
var my_fmt:TextFormat = new TextFormat(); my_fmt.leading = 10; this.createTextField("my_txt", 1, 100, 100, 100, 100); my_txt.multiline = true; my_txt.wordWrap = true; my_txt.border = true; my_txt.text = "This is my first text field object text"; my_txt.setTextFormat(my_fmt);

leftMargin (propiedad TextFormat.leftMargin)


public leftMargin : Number

El margen izquierdo del prrafo expresado en puntos. El valor predeterminado es null, que indica que la propiedad no se ha definido. Ejemplo En el ejemplo siguiente se crea un campo de texto y el margen izquierdo se establece en 20 puntos.
this.createTextField("mytext",1,100,100,100,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true; var myformat:TextFormat = new TextFormat(); myformat.leftMargin = 20; mytext.text = "this is my first text field object text"; mytext.setTextFormat(myformat);

678

Clases de ActionScript

rightMargin (propiedad TextFormat.rightMargin)


public rightMargin : Number

El margen derecho del prrafo expresado en puntos. El valor predeterminado es null, que indica que la propiedad no se ha definido. Ejemplo En el ejemplo siguiente se crea un campo de texto y el margen derecho se establece en 20 puntos.
this.createTextField("mytext",1,100,100,100,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true; var myformat:TextFormat = new TextFormat(); myformat.rightMargin = 20; mytext.text = "this is my first text field object text"; mytext.setTextFormat(myformat);

size (propiedad TextFormat.size)


public size : Number

El tamao en puntos del texto con este formato de texto. El valor predeterminado es null, que indica que la propiedad no se ha definido. Nota: para rabe, hebreo y tailands, esta propiedad slo funciona para formato a nivel de prrafo. Ejemplo En el ejemplo siguiente se crea un campo de texto y el tamao del texto se establece en 20 puntos.
this.createTextField("mytext",1,100,100,100,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true; var myformat:TextFormat = new TextFormat(); myformat.size = 20; mytext.text = "This is my first text field object text"; mytext.setTextFormat(myformat);

TextFormat

679

tabStops (propiedad TextFormat.tabStops)


public tabStops : Array

Especifica las tabulaciones personalizadas como una matriz de enteros no negativos. Cada tabulacin se especifica en pxeles. Si no se han especificado tabulaciones personalizadas (null), la tabulacin predeterminada es 4 (la anchura media de los caracteres). Nota: en Flash Lite, esta propiedad funciona slo en fuentes incorporadas. La propiedad no admite fuentes para rabe, hebreo y tailands. Ejemplo En el ejemplo siguiente se crean dos campos de texto, uno con tabulaciones cada 40 pxeles y otro con tabulaciones cada 75 pxeles.
this.createTextField("mytext",1,100,100,400,100); mytext.border = true; var myformat:TextFormat = new TextFormat(); myformat.tabStops = [40,80,120,160]; mytext.text = "A\tB\tC\tD"; // \t es el carcter de tabulacin mytext.setTextFormat(myformat); this.createTextField("mytext2",2,100,220,400,100); mytext2.border = true; var myformat2:TextFormat = new TextFormat(); myformat2.tabStops = [75,150,225,300]; mytext2.text ="A\tB\tC\tD"; mytext2.setTextFormat(myformat2);

target (propiedad TextFormat.target)


public target : String

Indica la ventana de destino en la que se muestra el hipervnculo. Si la ventana de destino es una cadena vaca, el texto se muestra en la ventana de destino predeterminada, _self. Puede elegir un nombre personalizado o uno de los cuatro nombres siguientes: _self especifica el marco actual de la ventana actual, _blank especifica una ventana nueva, _parent especifica el nivel superior del marco actual y _top especifica el marco del nivel ms alto de la ventana actual. Si la propiedad TextFormat.url es una cadena vaca o tiene el valor null, puede obtener o establecer esta propiedad, pero sta no tendr ningn efecto.

680

Clases de ActionScript

Ejemplo En el ejemplo siguiente se crea un campo de texto vinculado con el sitio Web de Adobe. En el ejemplo se utiliza TextFormat.target para mostrar el sitio Web de Adobe en una ventana del navegador nueva.
var myformat:TextFormat = new TextFormat(); myformat.url = "http://www.adobe.com"; myformat.target = "_blank"; this.createTextField("mytext",1,100,100,200,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true; mytext.html = true; mytext.text = "Go to Adobe.com"; mytext.setTextFormat(myformat);

Vase tambin
url (propiedad TextFormat.url)

Constructor TextFormat
public TextFormat([font:String], [size:Number], [color:Number], [bold:Boolean], [italic:Boolean], [underline:Boolean], [url:String], [target:String], [align:String], [leftMargin:Number], [rightMargin:Number], [indent:Number], [leading:Number])

Crea un objeto TextFormat con las propiedades especificadas. Puede cambiar las propiedades del objeto TextFormat para cambiar el formato de los campos de texto. Cualquier parmetro puede establecerse en null para indicar que no est definido. Todos los parmetros son opcionales; se considerar que los parmetros que se omitan tienen el valor null. Parmetros
font:String size:Number

[opcional] - El nombre de una fuente de texto como cadena. [opcional] - Un entero que indica el tamao en puntos.

color:Number

[opcional] - El color del texto que utiliza este formato de texto. Nmero que contiene tres componentes RGB de 8 bits; por ejemplo, 0xFF0000 es rojo y 0x00FF00, verde. [opcional] - Un valor booleano que indica si el texto est en negrita. [opcional] - Un valor booleano que indica si el texto est en cursiva. [opcional] - Un valor booleano que indica si el texto est subrayado.

bold:Boolean

italic:Boolean

underline:Boolean

TextFormat

681

url:String [opcional] - La URL con la que est vinculado el texto con este formato de texto.

Si url es una cadena vaca, el texto no tiene hipervnculo. [opcional] - La ventana de destino en la que se muestra el hipervnculo. Si la ventana de destino es una cadena vaca, el texto se muestra en la ventana de destino predeterminada, _self. Si el parmetro url se define como una cadena vaca o en el valor null, puede obtener o establecer esta propiedad, pero sta no tendr ningn efecto.
target:String

[opcional] - La alineacin del prrafo representado como una cadena. Si es prrafo est alineado a la izquierda. Si es "center", el prrafo est centrado. Si es "right", prrafo est alineado a la derecha.
align:String "left", leftMargin:Number

[opcional] - Indica el margen izquierdo del prrafo, expresado en [opcional] - Indica el margen derecho del prrafo, expresado en

puntos.
rightMargin:Number

puntos.
indent:Number

[opcional] - Un entero que indica la sangra desde el margen izquierdo hasta el primer carcter del prrafo.

[opcional] - Un nmero que indica la cantidad de espacio vertical entre las lneas (interlineado).
leading:Number

Ejemplo En el ejemplo siguiente se crea un objeto TextFormat, se asigna formato al campo de texto stats_txt y se crea un nuevo campo de texto para mostrar el texto en:
// Define un TextFormat que se utiliza para aplicar formato al campo de texto stats_txt. var my_fmt:TextFormat = new TextFormat(); my_fmt.bold = true; my_fmt.font = "Arial"; my_fmt.size = 12; my_fmt.color = 0xFF0000; // Crea un campo de texto para mostrar las estadsticas del reproductor. this.createTextField("stats_txt", 5000, 10, 0, 530, 22); // Aplica TextFormat al campo de texto. stats_txt.setNewTextFormat(my_fmt); stats_txt.selectable = false; stats_txt.text = "Lorem ipsum dolor sit amet...";

Encontrar tambin un ejemplo en el archivo animations.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo.

682

Clases de ActionScript

underline (propiedad TextFormat.underline)


public underline : Boolean

Un valor booleano que indica si el texto que utiliza este formato de texto est subrayado (true) o no (false). Este subrayado es similar al que se obtiene mediante la etiqueta <U>, aunque sta ltima no es un subrayado real, ya que no omite los trazos descendentes correctamente. El valor predeterminado es null, que indica que la propiedad no se ha definido. Nota: para rabe, hebreo y tailands, esta propiedad slo funciona para formato a nivel de prrafo. Ejemplo En el ejemplo siguiente se crea un campo de texto y el estilo del texto se define en subrayado.
this.createTextField("mytext",1,100,100,200,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true; var myformat:TextFormat = new TextFormat(); myformat.underline = true; mytext.text = "This is my first text field object text"; mytext.setTextFormat(myformat);

url (propiedad TextFormat.url)


public url : String

Indica la URL con la que est vinculado el texto con este formato de texto. Si la propiedad url es una cadena vaca, el texto no tiene hipervnculo. El valor predeterminado es null, que indica que la propiedad no se ha definido. Ejemplo En el ejemplo siguiente se crea un campo de texto que est vinculado con el sitio Web de Adobe.
var myformat:TextFormat = new TextFormat(); myformat.url = "http://www.adobe.com"; this.createTextField("mytext",1,100,100,200,100); mytext.multiline = true; mytext.wordWrap = true; mytext.border = true; mytext.html = true; mytext.text = "Go to Adobe.com"; mytext.setTextFormat(myformat);

TextFormat

683

Video
Object | +-Video public class Video extends Object

La clase Video permite visualizar contenido de vdeo incorporado en el archivo SWF, almacenado localmente en el dispositivo host o transferido desde una ubicacin remota. Nota: en Flash Lite 2.0, el reproductor gestiona el vdeo de forma distinta que en Flash Player 7. A continuacin se detallan las diferencias ms significativas:

Flash Player 7 representa los datos de vdeo directamente (ya sean incorporados o transferidos). En Flash Lite 2.0, el reproductor no representa los datos de vdeo: los entrega al dispositivo mvil. Flash Player 7 admite muchos formatos de vdeo adems de FLV. Flash Lite 2.0 admite la reproduccin de vdeo en los casos siguientes: vdeo incorporado en un archivo SWF; vdeo que resida en un archivo independiente del dispositivo host y datos de vdeo transferidos a travs de la red (en tiempo real). En Flash Lite 2.0, el reproductor slo admite los formatos de vdeo admitidos por cada dispositivo mvil especfico. Flash Player 7 permite empaquetar los datos en un archivo SWF o transferirlos mediante el objeto Video y asignar un objeto NetStream o Camera como fuente de informacin del vdeo. Sin embargo, en Flash Lite 2.0 el reproductor no admite objetos NetStream ni Camera. Flash Lite 2.0 utiliza un nuevo tipo de smbolo de biblioteca llamado Video para incorporar los datos del vdeo original y transferirlos en dispositivos mviles. Dado que Flash Lite 2.0 no admite el objeto NetStream, se pueden utilizar mtodos y propiedades de la clase Video para controlar la reproduccin del vdeo.

Debido a los requisitos de los dispositivos mviles (menor velocidad de procesamiento, restricciones de memoria y formatos de codificacin propios), Flash Lite 2.0 no puede representar la informacin de vdeo directamente. Los formatos de archivo admitidos para el vdeo dependen del fabricante del dispositivo mvil. Para obtener ms informacin sobre los formatos de vdeo compatibles, verifique las plataformas de hardware en las que pretende implementar la aplicacin. Flash Lite 2.0 no admite las siguientes funciones de Flash Player 7:

Transmisin de datos de vdeo desde Flash Media Server. Grabacin de vdeo.

684

Clases de ActionScript

Resumen de propiedades. Propiedades heredadas de la clase Object.


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onStatus = :Object) {}

Descripcin
Controlador callback que puede ser invocado por el dispositivo para

function(infoObject informar sobre el estado o posibles errores.

Resumen de mtodos
Modificadores Firma
close() : Void

Descripcin
Detiene la reproduccin del vdeo, libera la memoria asociada al objeto Video y borra el rea del vdeo de la pantalla. Detiene la reproduccin del vdeo y sigue representando el fotograma actual en la pantalla. Al llamar a este mtodo se abre una fuente de vdeo y se inicia la reproduccin. Al llamar a este mtodo se reanuda la reproduccin del vdeo. Detiene la reproduccin del vdeo y sigue representando el fotograma actual en la pantalla.

pause() : Void

play() : Boolean

resume() : Void

stop() : Void

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

Video

685

close (mtodo Video.close)


public close() : Void

Detiene la reproduccin del vdeo, libera la memoria asociada al objeto Video y borra el rea del vdeo de la pantalla. Ejemplo El siguiente ejemplo cierra un vdeo que se est reproduciendo en un objeto Video denominado video1.
video1.close()

Vase tambin
play (mtodo Video.play), pause (mtodo Video.pause), resume (mtodo Video.resume)

onStatus (controlador Video.onStatus)


onStatus = function(infoObject:Object) {}

Controlador callback que puede ser invocado por el dispositivo para informar sobre el estado o posibles errores. Parmetros
infoObject:Object

- El parmetro infoObject tiene dos propiedades:

code:String

- Descripcin del error o el estado (especfico del dispositivo). - Cero en caso de error y distinto de cero si es correcto (especfico del

level:Number

dispositivo). Ejemplo El siguiente ejemplo muestra cmo crear una funcin Video.onStatus() que informe sobre el estado o posibles errores.
var v:Video; // v es un objeto Video del escenario. v.onStatus = function(o:Object) { if (o.level) { trace("Video Status Msg (" + o.level + "): " + o.code); } else { trace("Video Status Error: " + o.code); }

686

Clases de ActionScript

} v.play("a.vid");

pause (mtodo Video.pause)


public pause() : Void

Detiene la reproduccin del vdeo y sigue representando el fotograma actual en la pantalla. Las siguientes llamadas a Video.resume() reanudan la reproduccin desde la posicin actual. Ejemplo El ejemplo siguiente detiene el vdeo que se est reproduciendo en un objeto Video (denominado my_video) cuando el usuario hace clic en la instancia close_btn.
// video1 es el nombre de un objeto Video del escenario video1.pause()

Vase tambin
play (mtodo Video.play), stop (mtodo Video.stop), resume (mtodo Video.resume)

play (mtodo Video.play)


public play() : Boolean

Al llamar a este mtodo se abre una fuente de vdeo y se inicia la reproduccin. Valor devuelto
Boolean false.

- Un valor true si el dispositivo mvil puede representar el vdeo; de lo contrario,

Ejemplo El siguiente ejemplo detiene temporalmente y borra video1.flv, que se est reproduciendo en un objeto Video (llamado video1).
video1.play("http://www.macromedia.com/samples/videos/clock.3gp");

Tambin puede utilizar un objeto Video del escenario para reproducir vdeos de dispositivo empaquetados directamente desde la biblioteca. Para hacerlo, empaquete el video de dispositivo en la biblioteca de la aplicacin. Asigne tambin un identificador al smbolo de vdeo para poder hacer referencia a l con ActionScript: puede reproducir un vdeo de dispositivo desde la biblioteca pasando el identificador ActionScript del smbolo al mtodo Video.play(), tal como se muestra en el ejemplo siguiente:
placeHolderVideo.play("symbol://ocean_video");

Video

687

Para obtener ms informacin sobre la reproduccin de vdeo desde la biblioteca, consulte la seccin "Reproduccin de un vdeo empaquetado directamente desde la biblioteca" en Desarrollo de aplicaciones de Flash Lite 2.x. Vase tambin
stop (mtodo Video.stop), pause (mtodo Video.pause), resume (mtodo Video.resume)

resume (mtodo Video.resume)


public resume() : Void

Al llamar a este mtodo se reanuda la reproduccin del vdeo. Si se ha llamado a Video.pause() previamente, la reproduccin se inicia desde la posicin actual. Si se ha llamado a Video.stop() previamente, la reproduccin se inicia desde el primer fotograma. Ejemplo El siguiente ejemplo reanuda un vdeo que se est reproduciendo en un objeto Video denominado video1.
video1.resume()

Vase tambin
pause (mtodo Video.pause), stop (mtodo Video.stop)

stop (mtodo Video.stop)


public stop() : Void

Detiene la reproduccin del vdeo y sigue representando el fotograma actual en la pantalla. Las siguientes llamadas a Video.resume() reanudan la reproduccin desde el primer fotograma del vdeo. Ejemplo El ejemplo siguiente detiene el vdeo que se est reproduciendo en un objeto Video (denominado my_video) cuando el usuario hace clic en la instancia close_btn.
// video1 es el nombre de un objeto Video del escenario video1.stop();

688

Clases de ActionScript

Vase tambin
play (mtodo Video.play), pause (mtodo Video.pause), resume (mtodo Video.resume)

XML
Object | +-XMLNode | +-XML public class XML extends XMLNode

Utilice los mtodos y propiedades de la clase XML para cargar, analizar, enviar, crear y manipular rboles de documentos XML. Deber utilizar el constructor new XML() para crear un objeto XML antes de llamar a los mtodos de la clase XML. Un documento XML se representa en Flash mediante la clase XML. Cada elemento del documento jerrquico se representa mediante un objeto XMLNode. Para obtener ms informacin sobre los mtodos y propiedades siguientes, consulte la clase XMLNode: appendChild(), attributes, childNodes, cloneNode(), firstChild, hasChildNodes(), insertBefore(), lastChild, nextSibling, nodeName, nodeType, nodeValue, parentNode, previousSibling, removeNode(), toString() En versiones anteriores de Referencia del lenguaje ActionScript de Flash, los mtodos y propiedades indicados se incluan en la clase XML. Ahora se describen en la clase XMLNode. Nota: el modelo de los objetos XML y XMLNode sigue la recomendacin W3C DOM Nivel 1: http://www.w3.org/tr/1998/REC-DOM-Level-1-19981001/level-one-core.html. Esta recomendacin especifica una interfaz de nodo y una interfaz de documento. La interfaz de documento hereda de la interfaz de nodo y aade mtodos tales como createElement() y createTextNode(). En ActionScript, los objetos XML y XMLNode estn diseados para dividir la funcionalidad en lneas similares.

XML

689

Vase tambin
appendChild (mtodo XMLNode.appendChild), attributes (propiedad XMLNode.attributes), childNodes (propiedad XMLNode.childNodes), cloneNode (mtodo XMLNode.cloneNode), firstChild (propiedad XMLNode.firstChild), hasChildNodes (mtodo XMLNode.hasChildNodes), insertBefore (mtodo XMLNode.insertBefore), lastChild (propiedad XMLNode.lastChild), nextSibling (propiedad XMLNode.nextSibling), nodeName (propiedad XMLNode.nodeName), nodeType (propiedad XMLNode.nodeType), nodeValue (propiedad XMLNode.nodeValue), parentNode (propiedad XMLNode.parentNode), previousSibling (propiedad XMLNode.previousSibling), removeNode (mtodo XMLNode.removeNode), toString (mtodo XMLNode.toString)

Resumen de propiedades
Modificadores Propiedad
contentType:String

Descripcin
Contenido MIME que se enva al servidor cuando se llama al mtodo XML.send() o XML.sendAndLoad(). Especifica informacin sobre la declaracin DOCTYPE del documento XML. El valor predeterminado es false. Indica si el documento XML se ha cargado correctamente. Establece automticamente y devuelve un valor numrico que indica si un documento XML se ha analizado correctamente en un objeto XML. Cadena que especifica informacin sobre una declaracin XML de un documento.

docTypeDecl:String

ignoreWhite:Boolean loaded:Boolean

status:Number

xmlDecl:String

Propiedades heredadas de la clase XMLNode


attributes (propiedad XMLNode.attributes), childNodes (propiedad XMLNode.childNodes), firstChild (propiedad XMLNode.firstChild), lastChild (propiedad XMLNode.lastChild), nextSibling (propiedad XMLNode.nextSibling), nodeName (propiedad XMLNode.nodeName), nodeType (propiedad XMLNode.nodeType), nodeValue (propiedad XMLNode.nodeValue), parentNode (propiedad XMLNode.parentNode), previousSibling (propiedad XMLNode.previousSibling)

690

Clases de ActionScript

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onData = ) {} onLoad = olean) {}

Descripcin
Invocado cuando se ha descargado completamente el texto XML del el texto XML de un servidor. Lo invoca Flash Player cuando se recibe un documento XML del

function(src:String servidor o cuando se produce un error mientras se est descargando

function(success:Bo servidor.

Resumen de constructores
Firma
XML(text:String)

Descripcin
Crea un nuevo objeto XML.

Resumen de mtodos
Modificadores Firma
ader:Object, : Void createElement(name: Crea un nuevo elemento XML con el nombre String) : XMLNode

Descripcin
HTTP (como Content-Type o SOAPAction)

addRequestHeader(he Aade o cambia los encabezados de peticiones headerValue:String) enviados con las acciones POST.

especificado en el parmetro.

createTextNode(valu Crea un nuevo nodo de texto XML con el texto e:String) : XMLNode especificado. getBytesLoaded() : Number getBytesTotal() : Number load(url:String) : Boolean

Devuelve el nmero de bytes cargados (sin interrupcin) para el documento XML. Devuelve el tamao en bytes del documento XML. Carga un documento XML de la URL especificada y sustituye el contenido del objeto XML especificado por los datos XML descargados.

XML

691

Modificadores Firma
ng) : Void

Descripcin
value y llena el objeto XML especificado con el rbol XML resultante. Codifica el objeto XML especificado en un documento XML y lo enva a la URL especificada con el mtodo POST en un navegador.

parseXML(value:Stri Analiza el texto XML especificado en el parmetro

send(url:String, [target:String], method:String) : Boolean

sendAndLoad(url:Str Codifica el objeto XML especificado en un ing, resultXML:XML) documento XML, lo enva a la URL especificada : Void

empleando el mtodo POST, descarga la respuesta del servidor y la carga en el resultXMLobject especificado en los parmetros.

Mtodos heredados de la clase XMLNode


appendChild (mtodo XMLNode.appendChild), cloneNode (mtodo XMLNode.cloneNode), hasChildNodes (mtodo XMLNode.hasChildNodes), insertBefore (mtodo XMLNode.insertBefore), removeNode (mtodo XMLNode.removeNode), toString (mtodo XMLNode.toString)

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

addRequestHeader (mtodo XML.addRequestHeader)


public addRequestHeader(header:Object, headerValue:String) : Void

Aade o cambia los encabezados de peticiones HTTP (como Content-Type o SOAPAction) enviados con las acciones POST. En la primera sintaxis, se pasan dos cadenas al mtodo: header y headerValue. En la segunda sintaxis, se pasa una matriz de cadenas, alternando los nombres de los encabezados y los valores de stos. Si se realizan mltiples llamadas para establecer el mismo nombre de encabezado, cada valor sucesivo reemplaza al valor establecido en la llamada anterior.

692

Clases de ActionScript

No puede aadir ni cambiar los siguientes encabezados HTTP estndar con este mtodo: Accept-Ranges, Age, Allow, Allowed, Connection, Content-Length, Content-Location, Content-Range, ETag, Host, Last-Modified, Locations, Max-Forwards, ProxyAuthenticate, Proxy-Authorization, Public, Range, Retry-After, Server, TE, Trailer, Transfer-Encoding, Upgrade, URI, Vary, Via, Warning y WWW-Authenticate. Parmetros
header:Object

- Una cadena que representa un nombre de encabezado de solicitud HTTP. - Una cadena que representa el valor asociado con header.

headerValue:String

Ejemplo El ejemplo siguiente aade un encabezado HTTP personalizado denominado SOAPAction con un valor de Foo a un objeto XML con el nombre my_xml:
my_xml.addRequestHeader("SOAPAction", "'Foo'");

El ejemplo siguiente crea una matriz headers que contiene dos encabezados HTTP alternativos y sus valores asociados. La matriz se pasa como un parmetro al mtodo addRequestHeader().
var headers:Array = new Array("Content-Type", "text/plain", "X-ClientAppVersion", "2.0"); my_xml.addRequestHeader(headers);

Vase tambin
addRequestHeader (mtodo LoadVars.addRequestHeader)

contentType (propiedad XML.contentType)


public contentType : String

Contenido MIME que se enva al servidor cuando se llama al mtodo XML.send() o XML.sendAndLoad(). La configuracin predeterminada es application/x-www-formurlencoded, que es el tipo de contenido MIME estndar empleado para la mayora de los formularios HTML. Ejemplo El siguiente ejemplo crea un nuevo documento XML y comprueba su tipo de contenido predeterminado:
// crea un nuevo documento XML var doc:XML = new XML();

XML

693

// traza el tipo de contenido predeterminado trace(doc.contentType); // salida: application/x-www-form-urlencoded

El ejemplo siguiente define un paquete XML y establece el tipo de contenido para el objeto XML. A continuacin se envan los datos a un servidor y se muestra un resultado en una ventana de navegador.
var my_xml:XML = new XML("<highscore><name>Ernie</name><score>13045</score> </highscore>"); my_xml.contentType = "text/xml"; my_xml.send("http://www.flash-mx.com/mm/highscore.cfm", "_blank");

Presione F12 para probar este ejemplo en un navegador. Vase tambin


send (mtodo XML.send), sendAndLoad (mtodo XML.sendAndLoad)

createElement (mtodo XML.createElement)


public createElement(name:String) : XMLNode

Crea un nuevo elemento XML con el nombre especificado en el parmetro. El nuevo elemento carece inicialmente de elemento principal, de elementos secundarios o de elementos del mismo nivel. El mtodo devuelve una referencia al objeto XML de nueva creacin que representa al elemento. Este mtodo y XML.createTextNode() son los mtodos constructor para crear nodos para un objeto XML. Parmetros
name:String

- El nombre de etiqueta del elemento XML que se va a crear.

Valor devuelto
XMLNode

- Un objeto XMLNode; un elemento XML.

Ejemplo El ejemplo siguiente crea tres nodos XML utilizando el mtodo createElement():
// crea un documento XML var doc:XML = new XML(); // crea tres nodos XML var element1:XMLNode = var element2:XMLNode = var element3:XMLNode = con createElement() doc.createElement("element1"); doc.createElement("element2"); doc.createElement("element3");

// inserta los nuevos nodos en el rbol XML doc.appendChild(element1);

694

Clases de ActionScript

element1.appendChild(element2); element1.appendChild(element3); trace(doc); // salida: <element1><element2 /><element3 /></element1>

Vase tambin
createTextNode (mtodo XML.createTextNode)

createTextNode (mtodo XML.createTextNode)


public createTextNode(value:String) : XMLNode

Crea un nuevo nodo de texto XML con el texto especificado. El nuevo nodo carece inicialmente de elemento principal, de elementos secundarios o de elementos del mismo nivel. Este mtodo devuelve una referencia al objeto XML que representa al nuevo nodo de texto. Este mtodo y XML.createElement() son los mtodos constructor para crear nodos para un objeto XML. Parmetros
value:String

- Una cadena; el texto utilizado para crear el nuevo nodo de texto.

Valor devuelto
XMLNode

- Un objeto XMLNode.

Ejemplo El ejemplo siguiente crea dos nodos de texto XML con el mtodo createTextNode() y los coloca en los nodos XML existentes:
// crea un documento XML var doc:XML = new XML(); // crea tres nodos XML var element1:XMLNode = var element2:XMLNode = var element3:XMLNode = con createElement() doc.createElement("element1"); doc.createElement("element2"); doc.createElement("element3");

// inserta los nuevos nodos en el rbol XML doc.appendChild(element1); element1.appendChild(element2); element1.appendChild(element3); // crea dos nodos XML con createTextNode() var textNode1:XMLNode = doc.createTextNode("textNode1 String value"); var textNode2:XMLNode = doc.createTextNode("textNode2 String value");

XML

695

// inserta los nuevos nodos en el rbol XML element2.appendChild(textNode1); element3.appendChild(textNode2); trace(doc); // salida (son saltos de lnea aadidos entre las etiquetas): // <element1> // <element2>textNode1 String value</element2> // <element3>textNode2 String value</element3> // </element1>

Vase tambin
createElement (mtodo XML.createElement)

docTypeDecl (propiedad XML.docTypeDecl)


public docTypeDecl : String

Especifica informacin sobre la declaracin DOCTYPE del documento XML. Una vez que el texto XML se ha analizado en un objeto XML, la propiedad XML.docTypeDecl del objeto XML se define como el texto de la declaracin DOCTYPE del documento XML (por ejemplo, <!DOCTYPEgreeting SYSTEM "hello.dtd">). Esta propiedad se establece utilizando una representacin de cadena de la declaracin DOCTYPE, no un objeto de nodo XML. El analizador XML de ActionScript no es un analizador validador. El analizador lee la declaracin DOCTYPE, que se almacena en la propiedad XML.docTypeDecl, pero no se lleva a cabo ninguna validacin Dtd. Si no se ha encontrado ninguna declaracin DOCTYPE durante la operacin de anlisis, la propiedad XML.docTypeDecl se establece en undefined (no definida). El mtodo XML.toString() genera el contenido de XML.docTypeDecl inmediatamente despus de la declaracin XML almacenada en XML.xmlDecl y antes que cualquier otro texto del objeto XML. Si XML.docTypeDecl tiene el valor undefined, no se genera ninguna declaracin DOCTYPE. Ejemplo El ejemplo siguiente utiliza la propiedad XML.docTypeDecl para establecer la declaracin DOCTYPE para un objeto XML:
my_xml.docTypeDecl = "<!DOCTYPE greeting SYSTEM \"hello.dtd\">";

Vase tambin
xmlDecl (propiedad XML.xmlDecl)

696

Clases de ActionScript

getBytesLoaded (mtodo XML.getBytesLoaded)


public getBytesLoaded() : Number

Devuelve el nmero de bytes cargados (sin interrupcin) para el documento XML. Puede comparar el valor de getBytesLoaded() con el valor de getBytesTotal() para determinar el porcentaje de un documento XML que se ha cargado. Valor devuelto
Number

- Un entero que indica el nmero de bytes cargados.

Ejemplo El ejemplo siguiente muestra cmo utilizar el mtodo XML.getBytesLoaded() con el mtodo XML.getBytesTotal() para seguir el progreso de un comando XML.load(). Debe reemplazar el parmetro URL del comando XML.load() de modo que el parmetro se refiera a un archivo XML vlido utilizando HTTP. Si intenta utilizar este ejemplo para cargar un archivo local que resida en el disco duro, el ejemplo no funcionar correctamente porque, en el modo Probar pelcula, Flash Player carga los archivos locales ntegramente.
// crea un nuevo documento XML var doc:XML = new XML(); var checkProgress = function(xmlObj:XML) { var bytesLoaded:Number = xmlObj.getBytesLoaded(); var bytesTotal:Number = xmlObj.getBytesTotal(); var percentLoaded:Number = Math.floor((bytesLoaded / bytesTotal) 100); trace ("milliseconds elapsed: " + getTimer()); trace("bytesLoaded: " + bytesLoaded); trace ("bytesTotal: " + bytesTotal); trace ("percent loaded: " + percentLoaded); trace ("---------------------------------"); } doc.onLoad = function(success:Boolean) { clearInterval(intervalID); trace("intervalID: " + intervalID); } doc.load("[place a valid URL pointing to an XML file here]"); var intervalID:Number = setInterval(checkProgress, 100, doc);

Vase tambin
getBytesTotal (mtodo XML.getBytesTotal)

XML

697

getBytesTotal (mtodo XML.getBytesTotal)


public getBytesTotal() : Number

Devuelve el tamao en bytes del documento XML. Valor devuelto


Number

- Un entero.

Ejemplo Vase el ejemplo de XML.getBytesLoaded(). Vase tambin


getBytesLoaded (mtodo XML.getBytesLoaded)

ignoreWhite (propiedad XML.ignoreWhite)


public ignoreWhite : Boolean

El valor predeterminado es false. Cuando se establece con el valor true, los nodos de texto que contienen slo espacio en blanco se descartan durante el proceso de anlisis. Los nodos de texto con espacio en blanco al principio o al final no se ven afectados. Sintaxis 1: Puede establecer la propiedad ignoreWhite para objetos XML individuales, como se muestra en el siguiente cdigo:
my_xml.ignoreWhite = true;

Sintaxis 2: Puede establecer la propiedad ignoreWhite predeterminada para objetos XML, como se muestra en el siguiente cdigo:
XML.prototype.ignoreWhite = true;

Ejemplo El ejemplo siguiente carga un archivo XML con un nodo de texto que contiene solamente espacio blanco; la etiqueta foyer incluye catorce espacios. Para ejecutar este ejemplo, cree un archivo de texto llamado flooring.xml y copie en l las siguientes etiquetas:
<house> <kitchen> ceramic tile </kitchen> <bathroom>linoleum</bathroom> <foyer> </foyer> </house>

698

Clases de ActionScript

Cree un nuevo documento Flash con el nombre flooring.fla y gurdelo en el mismo directorio que el archivo XML. Site el siguiente cdigo en la lnea de tiempo principal:
// crea un nuevo objeto XML var flooring:XML = new XML(); // establece la propiedad ignoreWhite en true (el valor predeterminado es false) flooring.ignoreWhite = true; // Una vez finalizada la carga, traza el objeto XML flooring.onLoad = function(success:Boolean) { trace(flooring); } // carga el archivo XML en el objeto flooring flooring.load("flooring.xml"); // salida (con saltos de lnea para que se vea ms claramente): <house> <kitchen> ceramic tile </kitchen> <bathroom>linoleum</bathroom> <foyer /> </house>

Si cambia la definicin de flooring.ignoreWhite a false, o simplemente elimina esa lnea de texto, se conservan los catorce espacios de la etiqueta foyer:
... // establece la propiedad ignoreWhite en false (valor predeterminado) flooring.ignoreWhite = false; ... // salida (con saltos de lnea para que se vea ms claramente): <house> <kitchen> ceramic tile </kitchen> <bathroom>linoleum</bathroom> <foyer> </foyer> </house>

Encontrar tambin ejemplos en los archivos XML_blogTracker.fla y XML_languagePicker.fla de la carpeta de ejemplos de ActionScript de www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo.

XML

699

load (mtodo XML.load)


public load(url:String) : Boolean

Carga un documento XML de la URL especificada y sustituye el contenido del objeto XML especificado por los datos XML descargados. La URL es relativa y se llama a ella mediante HTTP. El proceso de carga es asncrono; no finaliza inmediatamente despus de que se ejecute el mtodo load(). En archivos SWF que se ejecuten en una versin del reproductor anterior a Flash Player 7, el parmetro url debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. El superdominio puede obtenerse eliminando el componente situado ms a la izquierda de la URL de un archivo. Por ejemplo, un archivo SWF situado en www.someDomain.com puede cargar datos de fuentes situadas en store.someDomain.com porque ambos archivos se encuentran en el mismo superdominio, denominado someDomain.com. En archivos SWF de cualquier versin que se ejecuten en Flash Player 7 y posterior, url debe estar exactamente en el mismo dominio. Por ejemplo, un archivo SWF situado en www.someDomain.com slo puede cargar datos de fuentes que tambin se encuentren en www.someDomain.com. Si desea cargar datos de un dominio diferente, puede colocar un archivo de poltica para distintos dominios en el servidor en el que se aloja el archivo SWF. Cuando se ejecuta el mtodo load(), la propiedad loaded del objeto XML se establece con el valor false. Cuando terminan de descargarse los datos XML, la propiedad loaded se establece con el valor true y se invoca el controlador de eventos onLoad. Los datos XML no se analizan hasta que terminan de descargarse. Si el objeto XML contena anteriormente rboles XML, estos se descartarn. Puede definir una funcin personalizada que se ejecute cuando se invoque el controlador de eventos onLoad del objeto XML. Parmetros
url:String - Una cadena que representa la URL donde se encuentra el documento XML que

se va a cargar. Si el archivo SWF que realiza esta llamada se ejecuta en un navegador Web, el valor url debe pertenecer al mismo dominio que el archivo SWF; para ver ms detalles, consulte la seccin Descripcin. Valor devuelto
Boolean - false si no se pasa ningn parmetro (null); true, en caso contrario. Utilice el controlador de eventos onLoad() para comprobar el estado de un documento XML cargado.

700

Clases de ActionScript

Ejemplo En el ejemplo siguiente se utiliza el mtodo XML.load():


// crea un nuevo objeto XML var flooring:XML = new XML(); // establece la propiedad ignoreWhite en true (el valor predeterminado es false) flooring.ignoreWhite = true; // Una vez finalizada la carga, traza el objeto XML flooring.onLoad = function(success) { trace(flooring); }; // carga el archivo XML en el objeto flooring flooring.load("flooring.xml");

Para ver el contenido del archivo flooring.xml y la salida que produce, vase el ejemplo de XML.ignoreWhite. Vase tambin
ignoreWhite (propiedad XML.ignoreWhite), loaded (propiedad XML.loaded), onLoad (controlador XML.onLoad)

loaded (propiedad XML.loaded)


public loaded : Boolean

Indica si el documento XML se ha cargado correctamente. Si no hay ningn controlador de eventos onLoad() personalizado definido para el objeto XML, esta propiedad se establece con el valor true cuando el proceso de carga de documento iniciado por la llamada a XML.load() ha finalizado completamente; en caso contrario, el valor es false. No obstante, si define un comportamiento personalizado para el controlador de eventos onLoad() para el objeto XML, asegrese de que establece onload en dicha funcin. Ejemplo El ejemplo siguiente utiliza la propiedad XML.loaded en un script simple:
var my_xml:XML = new XML(); my_xml.ignoreWhite = true; my_xml.onLoad = function(success:Boolean) { trace("success: "+success); trace("loaded: "+my_xml.loaded); trace("status: " + my_xml.status); }; my_xml.load("http://www.flash-mx.com/mm/problems/products.xml");

XML

701

Cuando se invoca el controlador onLoad aparece informacin en el panel Salida. Si la llamada se realiza correctamente, aparece true como estado loaded en el panel Salida.
success: true loaded: true status: 0

Vase tambin
load (mtodo XML.load), onLoad (controlador XML.onLoad)

onData (controlador XML.onData)


onData = function(src:String) {}

Invocado cuando se ha descargado completamente el texto XML del servidor o cuando se produce un error mientras se est descargando el texto XML de un servidor. Este controlador se invoca antes de que se analice el XML y puede utilizarlo para llamar a una rutina de anlisis personalizada en lugar de utilizar el analizador XML de Flash. El parmetro src es una cadena que contiene texto XML descargado del servidor, a no ser que se produzca un error durante la descarga, en cuyo caso el parmetro src no estar definido (undefined). De forma predeterminada, el controlador de eventos XML.onData llama a XML.onLoad. Puede sustituir el controlador de eventos XML.onData con comportamiento personalizado, pero no se llama a XML.onLoad a menos que lo haga en su implementacin de XML.onData. Parmetros
src:String - Una cadena o undefined; los datos, normalmente en formato XML, que enva

el servidor. Ejemplo El ejemplo siguiente muestra cmo aparece de forma predeterminada el controlador de eventos XML.onData:
XML.prototype.onData = function (src:String) { if (src == undefined) { this.onLoad(false); } else { this.parseXML(src); this.loaded = true; this.onLoad(true); } }

Puede sustituir el controlador de eventos XML.onData para interceptar el texto XML sin analizarlo.

702

Clases de ActionScript

Vase tambin
onLoad (controlador XML.onLoad)

onLoad (controlador XML.onLoad)


onLoad = function(success:Boolean) {}

Lo invoca Flash Player cuando se recibe un documento XML del servidor. Si se recibe correctamente el documento XML, el parmetro success tiene el valor true. Si no se ha recibido el documento o si se ha producido un error al recibir la respuesta del servidor, el parmetro success tiene el valor false. En la implementacin predeterminada, este mtodo est desactivado. Para sustituir la implementacin predeterminada, debe asignar una funcin que contenga acciones personalizadas. Parmetros - Un valor booleano que es true si el objeto XML se ha cargado correctamente con una operacin XML.load() o XML.sendAndLoad(); en caso contrario, es false.
success:Boolean

Ejemplo El ejemplo siguiente incluye cdigo ActionScript para una aplicacin de comercio electrnico sencilla. El mtodo sendAndLoad() transmite un elemento XML que contiene el nombre de usuario y la contrasea, y utiliza un controlador XML.onLoad para procesar la respuesta del servidor.
var login_str:String = "<login username=\""+username_txt.text+"\" password=\""+password_txt.text+"\" />"; var my_xml:XML = new XML(login_str); var myLoginReply_xml:XML = new XML(); myLoginReply_xml.ignoreWhite = true; myLoginReply_xml.onLoad = function(success:Boolean){ if (success) { if ((myLoginReply_xml.firstChild.nodeName == "packet") && (myLoginReply_xml.firstChild.attributes.success == "true")) { gotoAndStop("loggedIn"); } else { gotoAndStop("loginFailed"); }

XML

703

} else { gotoAndStop("connectionFailed"); } }; my_xml.sendAndLoad("http://www.flash-mx.com/mm/login_xml.cfm", myLoginReply_xml);

Vase tambin
load (mtodo XML.load), sendAndLoad (mtodo XML.sendAndLoad)

parseXML (mtodo XML.parseXML)


public parseXML(value:String) : Void

Analiza el texto XML especificado en el parmetro value y llena el objeto XML especificado con el rbol XML resultante. Se descartarn los rboles existentes en el objeto XML. Parmetros
value:String - Una cadena que representa el texto XML que se va a analizar y pasar al objeto

XML especificado. Ejemplo El ejemplo siguiente crea y analiza un objeto XML:


var xml_str:String = "<state name=\"California\"> <city>San Francisco</city></state>" // define el origen XML en el constructor XML: var my1_xml:XML = new XML(xml_str); trace(my1_xml.firstChild.attributes.name); // salida: California // define el origen XML con el mtodo XML.parseXML: var my2_xml:XML = new XML(); my2_xml.parseXML(xml_str); trace(my2_xml.firstChild.attributes.name); // salida: California

send (mtodo XML.send)


public send(url:String, [target:String], method:String) : Boolean

Codifica el objeto XML especificado en un documento XML y lo enva a la URL especificada con el mtodo POST en un navegador. El entorno de prueba de Flash slo utiliza el mtodo GET.

704

Clases de ActionScript

Parmetros
url:String

- La URL de destino del objeto XML especificado.

target:String

[opcional] - Cadena; la ventana del navegador para mostrar los datos que devuelve el servidor:
_self

especifica el fotograma actual en la ventana actual. especifica una nueva ventana. especifica el elemento principal del fotograma actual.

_blank

_parent _top

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

Si no especifica un parmetro window, es igual que si especifica _self.


method:String

Valor devuelto
Boolean

Ejemplo El ejemplo siguiente define un paquete XML y establece el tipo de contenido para el objeto XML. A continuacin se envan los datos a un servidor y se muestra un resultado en una ventana de navegador.
var my_xml:XML = new XML("<highscore><name>Ernie</name> <score>13045</score></highscore>"); my_xml.contentType = "text/xml"; my_xml.send("http://www.flash-mx.com/mm/highscore.cfm", "_blank");

Presione F12 para probar este ejemplo en un navegador. Vase tambin


sendAndLoad (mtodo XML.sendAndLoad)

sendAndLoad (mtodo XML.sendAndLoad)


public sendAndLoad(url:String, resultXML:XML) : Void

Codifica el objeto XML especificado en un documento XML, lo enva a la URL especificada empleando el mtodo POST, descarga la respuesta del servidor y la carga en el resultXMLobject especificado en los parmetros. La respuesta del servidor se carga de la misma forma empleada por el mtodo XML.load().

XML

705

En archivos SWF que se ejecuten en una versin del reproductor anterior a Flash Player 7, el parmetro url debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. El superdominio puede obtenerse eliminando el componente situado ms a la izquierda de la URL de un archivo. Por ejemplo, un archivo SWF situado en www.someDomain.com puede cargar datos de fuentes situadas en store.someDomain.com porque ambos archivos se encuentran en el mismo superdominio, denominado someDomain.com. En archivos SWF de cualquier versin que se ejecuten en Flash Player 7 y posterior, url debe estar exactamente en el mismo dominio. Por ejemplo, un archivo SWF situado en www.someDomain.com slo puede cargar datos de fuentes que tambin se encuentren en www.someDomain.com. Si desea cargar datos de un dominio diferente, puede colocar un archivo de poltica para distintos dominios en el servidor en el que se aloja el archivo SWF. Cuando se ejecuta el mtodo sendAndLoad(), la propiedad loaded del objeto XML se establece con el valor false. Cuando terminan de descargarse los datos XML, la propiedad loaded se establece con el valor true, si se han cargado correctamente los datos, y se invoca el controlador de eventos onLoad. Los datos XML no se analizan hasta que terminan de descargarse. Si el objeto XML contena anteriormente rboles XML, estos se descartarn. Parmetros - Una cadena; la URL de destino del objeto XML especificado. Si el archivo SWF que realiza esta llamada se ejecuta en un navegador Web, el valor url debe pertenecer al mismo dominio que el archivo SWF; para ver ms detalles, consulte la seccin Descripcin.
url:String resultXML:XML

- Un objeto XML de destino creado con el mtodo constructor XML que recibir la informacin devuelta del servidor. Ejemplo

El ejemplo siguiente incluye cdigo ActionScript para una aplicacin de comercio electrnico sencilla. El mtodo XML.sendAndLoad() transmite un elemento XML que contiene el nombre de usuario y la contrasea, y utiliza un controlador onLoad para procesar la respuesta del servidor.
var login_str:String = "<login username=\""+username_txt.text+"\" password=\""+password_txt.text+"\" />"; var my_xml:XML = new XML(login_str); var myLoginReply_xml:XML = new XML(); myLoginReply_xml.ignoreWhite = true; myLoginReply_xml.onLoad = myOnLoad; my_xml.sendAndLoad("http://www.flash-mx.com/mm/login_xml.cfm", myLoginReply_xml); function myOnLoad(success:Boolean) { if (success) {

706

Clases de ActionScript

if ((myLoginReply_xml.firstChild.nodeName == "packet") && (myLoginReply_xml.firstChild.attributes.success == "true")) { gotoAndStop("loggedIn"); } else { gotoAndStop("loginFailed"); } } else { gotoAndStop("connectionFailed"); } }

Vase tambin
send (mtodo XML.send), load (mtodo XML.load), loaded (propiedad XML.loaded), onLoad (controlador XML.onLoad)

status (propiedad XML.status)


public status : Number

Establece automticamente y devuelve un valor numrico que indica si un documento XML se ha analizado correctamente en un objeto XML. A continuacin se indican los cdigos numricos de status (estado) con las correspondientes descripciones:

0 No se ha producido ningn error; el anlisis ha finalizado correctamente. -2 Una seccin CDATA no se ha terminado correctamente. -3 La declaracin XML no se ha terminado correctamente. -4 La declaracin DOCTYPE no se ha terminado correctamente. -5 Un comentario no se ha terminado correctamente. -6 Un elemento XML no tiene la forma correcta. -7 Memoria insuficiente. -8 El valor de un atributo no se ha terminado correctamente. -9 Una etiqueta start carece de la correspondiente etiqueta end. -10 Se ha encontrado una etiqueta end sin que exista una etiqueta start.

Ejemplo El ejemplo siguiente carga un paquete XML en un archivo SWF. Aparece un mensaje de estado, que indica si el XML se carga y analiza correctamente. Aada el siguiente cdigo ActionScript al archivo FLA o AS:
var my_xml:XML = new XML(); my_xml.onLoad = function(success:Boolean) { if (success) { if (my_xml.status == 0) {

XML

707

trace("XML was loaded and parsed successfully"); } else { trace("XML was loaded successfully, but was unable to be parsed."); } var errorMessage:String; switch (my_xml.status) { case 0: errorMessage = "No error; parse was completed successfully."; break; case -2: errorMessage = "A CDATA section was not properly terminated."; break; case -3: errorMessage = "The XML declaration was not properly terminated."; break; case -4: errorMessage = "The DOCTYPE declaration was not properly terminated."; break; case -5: errorMessage = "A comment was not properly terminated."; break; case -6: errorMessage = "An XML element was malformed."; break; case -7: errorMessage = "Out of memory."; break; case -8: errorMessage = "An attribute value was not properly terminated."; break; case -9: errorMessage = "A start-tag was not matched with an end-tag."; break; case -10: errorMessage = "An end-tag was encountered without a matching start-tag."; break; default : errorMessage = "An unknown error has occurred."; break; } trace("status: "+my_xml.status+" ("+errorMessage+")"); } else { trace("Unable to load/parse XML. (status: "+my_xml.status+")"); } }; my_xml.load("http://www.helpexamples.com/flash/badxml.xml");

708

Clases de ActionScript

Constructor XML
public XML(text:String)

Crea un nuevo objeto XML. Deber utilizar el constructor para crear un objeto XML antes de llamar a cualquiera de los mtodos de la clase XML. Nota:utilice los mtodos createElement() y createTextNode() para aadir elementos y nodos de texto a un rbol de documentos XML. Parmetros
text:String

- Una cadena; el texto XML analizado para crear el nuevo objeto XML.

Ejemplo El ejemplo siguiente crea un nuevo objeto XML vaco:


var my_xml:XML = new XML();

El ejemplo siguiente crea un objeto XML analizando el texto XML especificado en el parmetro source y llena el objeto XML creado con el rbol de documentos XML resultante:
var other_xml:XML = new XML("<state name=\"California\"><city>San Francisco</city></state>");

Vase tambin
createElement (mtodo XML.createElement), createTextNode (mtodo XML.createTextNode)

xmlDecl (propiedad XML.xmlDecl)


public xmlDecl : String

Cadena que especifica informacin sobre una declaracin XML de un documento. Una vez que el documento XML se ha analizado e incorporado a un objeto XML, esta propiedad se establece con el texto de la declaracin XML del documento. Esta propiedad se establece utilizando una representacin de cadena de la declaracin XML, no un objeto de nodo XML. Si no se encuentra ninguna declaracin XML durante el anlisis, la propiedad se define como undefined.XML. El mtodo XML.toString() produce como resultado el contenido de la propiedad XML.xmlDecl precediendo a cualquier otro texto del objeto XML. Si la propiedad XML.xmlDecl contiene el tipo undefined, no se proporciona ninguna declaracin XML.

XML

709

Ejemplo El ejemplo siguiente crea un campo de texto con el nombre my_txt con las mismas dimensiones que el escenario. El campo de texto muestra las propiedades del paquete XML que carga en el archivo SWF. Aparece la declaracin docType en my_txt. Aada el siguiente cdigo ActionScript al archivo FLA o AS:
var my_fmt:TextFormat = new TextFormat(); my_fmt.font = "_typewriter"; my_fmt.size = 12; my_fmt.leftMargin = 10; this.createTextField("my_txt", this.getNextHighestDepth(), 0, 0, Stage.width, Stage.height); my_txt.border = true; my_txt.multiline = true; my_txt.wordWrap = true; my_txt.setNewTextFormat(my_fmt); var my_xml:XML = new XML(); my_xml.ignoreWhite = true; my_xml.onLoad = function(success:Boolean) { var endTime:Number = getTimer(); var elapsedTime:Number = endTime-startTime; if (success) { my_txt.text = "xmlDecl:"+newline+my_xml.xmlDecl+newline+newline; my_txt.text += "contentType:"+newline+my_xml.contentType+newline+newline; my_txt.text += "docTypeDecl:"+newline+my_xml.docTypeDecl+newline+newline; my_txt.text += "packet:"+newline+my_xml.toString()+newline+newline; } else { my_txt.text = "Unable to load remote XML."+newline+newline; } my_txt.text += "loaded in: "+elapsedTime+" ms."; }; my_xml.load("http://www.helpexamples.com/crossdomain.xml"); var startTime:Number = getTimer();

Vase tambin
docTypeDecl (propiedad XML.docTypeDecl)

710

Clases de ActionScript

XMLNode
Object | +-XMLNode public class XMLNode extends Object

Un documento XML se representa en Flash mediante la clase XML. Cada elemento del documento jerrquico se representa mediante un objeto XMLNode. Vase tambin
XML

Resumen de propiedades
Modificadores Propiedad
attributes:Object

Descripcin
Objeto que contiene todos los atributos de la instancia XML especificada. Matriz de los elementos secundarios del objeto XML especificado. Evala el objeto XML especificado y hace referencia al primer elemento secundario de la lista de elementos secundarios del nodo principal. Valor XMLNode que hace referencia al ltimo elemento secundario de la lista de elementos secundarios del nodo. Valor XMLNode que hace referencia al siguiente elemento secundario de la lista de elementos secundarios del nodo principal. Cadena que representa el nombre del nodo del objeto XML. Valor de nodeType, que puede ser 1 para un elemento XML o 3 para un nodo de texto. Valor de nodo del objeto XML.

childNodes:Array

[read-only]
firstChild:XMLNode

[read-only]

lastChild:XMLNode

[read-only]

nextSibling:XMLNode

[read-only]

nodeName:String

nodeType:Number

[read-only]
nodeValue:String

XMLNode

711

Modificadores Propiedad
parentNode:XMLNode

Descripcin
Valor de XMLNode que hace referencia al nodo principal del objeto XML especificado o devuelve null si el nodo no tiene elemento principal. secundario anterior de la lista de elementos secundarios del nodo principal.

[read-only]

previousSibling:XMLN Valor XMLNode que hace referencia al elemento ode [read-only]

Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de mtodos
Modificadores Firma
d:XMLNode) : Void

Descripcin
objeto XML. mismo tipo, nombre, valor y atributos que el objeto XML especificado. Especifica si el objeto XML tiene nodos secundarios. secundarios del objeto XML, delante del nodo

appendChild(newChil Aade el nodo especificado a la lista secundaria del

cloneNode(deep:Bool Construye y devuelve un nuevo nodo XML del ean) : XMLNode

hasChildNodes() : Boolean

insertBefore(newChi Inserta un nodo newChild en la lista de ld:XMLNode, ) : Void removeNode() : Void Quita el objeto XML especificado de su elemento insertPoint:XMLNode insertPoint.

principal.
toString() : String Evala el objeto XML especificado, construye una

representacin textual de la estructura XML, incluidos el nodo, los elementos secundarios y los atributos, y devuelve el resultado como una cadena.

712

Clases de ActionScript

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

appendChild (mtodo XMLNode.appendChild)


public appendChild(newChild:XMLNode) : Void

Aade el nodo especificado a la lista secundaria del objeto XML. Este mtodo opera directamente en el nodo al que hace referencia el parmetro childNode; no aade una copia del nodo. Si el nodo que se va a aadir ya existe en otra estructura de rbol, la adicin del nodo a la nueva ubicacin lo eliminar de su ubicacin actual. Si el parmetro childNode hace referencia a un nodo que ya existe en otra estructura de rbol XML, el nodo secundario aadido se sita en la nueva estructura de rbol tras eliminarlo de su nodo principal actual. Parmetros - Un XMLNode que representa el nodo que se va a mover de su ubicacin actual a la lista de elementos secundarios del objeto my_xml.
newChild:XMLNode

Ejemplo Este ejemplo hace lo que se detalla a continuacin, en el orden indicado:


Crea dos documentos XML vacos: doc1 y doc2. Crea un nuevo nodo mediante el mtodo createElement() y lo anexa, con el mtodo appendChild(), al documento XML doc1. Muestra cmo mover un nodo mediante el mtodo appendChild(), moviendo el nodo raz desde doc1 a doc2. Copia el nodo raz de doc2 y lo anexa a doc1. Crea un nuevo nodo y lo anexa al nodo raz del documento XML doc1.

var doc1:XML = new XML(); var doc2:XML = new XML(); // crea un nodo raz y lo aade a doc1 var rootnode:XMLNode = doc1.createElement("root"); doc1.appendChild(rootnode); trace ("doc1: " + doc1); // salida: doc1: <root /> trace ("doc2: " + doc2); // salida: doc2:

XMLNode

713

// desplaza el nodo raz a doc2 doc2.appendChild(rootnode); trace ("doc1: " + doc1); // salida: doc1: trace ("doc2: " + doc2); // salida: doc2: <root /> // crea un clon del nodo raz y lo aade a doc1 var clone:XMLNode = doc2.firstChild.cloneNode(true); doc1.appendChild(clone); trace ("doc1: " + doc1); // salida: doc1: <root /> trace ("doc2: " + doc2); // salida: doc2: <root /> // crea un nuevo nodo para aadirlo al nodo raz (llamado clone) de doc1 var newNode:XMLNode = doc1.createElement("newbie"); clone.appendChild(newNode); trace ("doc1: " + doc1); // salida: doc1: <root><newbie /></root>

attributes (propiedad XMLNode.attributes)


public attributes : Object

Objeto que contiene todos los atributos de la instancia XML especificada. El objeto XML.attributes contiene una variable para cada atributo de la instancia XML. Dado que estas variables se definen como parte del objeto, normalmente se hace referencia a ellas como propiedades del objeto. El valor de cada atributo se almacena en la correspondiente propiedad como una cadena. Por ejemplo, si tiene un atributo denominado color, podr recuperar el valor del atributo especificando color como nombre de propiedad, como se muestra en el siguiente cdigo:
var myColor:String = doc.firstChild.attributes.color

Ejemplo El siguiente ejemplo muestra los nombres de atributos XML:


// crea una etiqueta llamada 'mytag' con // un atributo 'name' con valor 'Val' var doc:XML = new XML("<mytag name=\"Val\"> item </mytag>"); // asigna el valor del atributo 'name' a la variable y var y:String = doc.firstChild.attributes.name; trace(y); // salida: Val // crea un nuevo atributo 'order' con valor 'first' doc.firstChild.attributes.order = "first"; // asigna el valor del atributo 'order' a la variable z var z:String = doc.firstChild.attributes.order trace(z); // salida: first

714

Clases de ActionScript

El panel Salida muestra esta informacin:


Val first

childNodes (propiedad XMLNode.childNodes)


public childNodes : Array [read-only]

Matriz de los elementos secundarios del objeto XML especificado. Cada elemento de la matriz es una referencia a un objeto XML que representa un nodo secundario. Esta es una propiedad de slo lectura que no puede utilizarse para manipular nodos secundarios. Utilice los mtodos appendChild(), insertBefore() y removeNode() para manipular nodos secundarios. Esta propiedad no est definida para los nodos de texto (nodeType == 3). Ejemplo El ejemplo siguiente muestra cmo utilizar la propiedad XML.childNodes para devolver una matriz de nodos secundarios:
// crea un nuevo documento XML var doc:XML = new XML(); // crea un nodo raz var rootNode:XMLNode = doc.createElement("rootNode"); // crea tres nodos secundarios var oldest:XMLNode = doc.createElement("oldest"); var middle:XMLNode = doc.createElement("middle"); var youngest:XMLNode = doc.createElement("youngest"); // aade rootNode como raz del rbol de documentos XML doc.appendChild(rootNode); // aade cada uno de los nodos secundarios como elementos secundarios de rootNode rootNode.appendChild(oldest); rootNode.appendChild(middle); rootNode.appendChild(youngest); // crea una matriz y utiliza rootNode para llenarla var firstArray:Array = doc.childNodes; trace (firstArray); // salida: <rootNode><oldest /><middle /><youngest /></rootNode> // crea otra matriz y utiliza los nodos secundarios para llenarla var secondArray:Array = rootNode.childNodes; trace(secondArray); // salida: <oldest />,<middle />,<youngest />

XMLNode

715

Vase tambin
nodeType (propiedad XMLNode.nodeType), appendChild (mtodo XMLNode.appendChild), insertBefore (mtodo XMLNode.insertBefore), removeNode (mtodo XMLNode.removeNode)

cloneNode (mtodo XMLNode.cloneNode)


public cloneNode(deep:Boolean) : XMLNode

Construye y devuelve un nuevo nodo XML del mismo tipo, nombre, valor y atributos que el objeto XML especificado. Si deep se establece con el valor true, todos los elementos secundarios se clonan sucesivamente, lo que da como resultado una copia exacta del rbol de documentos del objeto original. El clon del nodo que se devuelve ya no est asociado al rbol del elemento clonado. En consecuencia, nextSibling, parentNode y previousSibling tendrn el valor null. Si el parmetro deep se define como false, o el nodo my_xml no tiene nodos secundarios, firstChild y lastChild tambin son null. Parmetros
deep:Boolean

- Un valor booleano; si es true, los elementos secundarios del objeto XML especificado se clonarn sucesivamente. Valor devuelto

XMLNode

- Un objeto XMLNode.

Ejemplo El ejemplo siguiente muestra cmo utilizar el mtodo XML.cloneNode() para crear una copia de un nodo:
// crea un nuevo documento XML var doc:XML = new XML(); // crea un nodo raz var rootNode:XMLNode = doc.createElement("rootNode"); // crea tres nodos secundarios var oldest:XMLNode = doc.createElement("oldest"); var middle:XMLNode = doc.createElement("middle"); var youngest:XMLNode = doc.createElement("youngest"); // aade rootNode como raz del rbol de documentos XML doc.appendChild(rootNode);

716

Clases de ActionScript

// aade cada uno de los nodos secundarios como elementos secundarios de rootNode rootNode.appendChild(oldest); rootNode.appendChild(middle); rootNode.appendChild(youngest); // crea una copia del nodo central con cloneNode() var middle2:XMLNode = middle.cloneNode(false); // inserta el clon del nodo en rootNode entre los nodos centrales y los ms recientes rootNode.insertBefore(middle2, youngest); trace(rootNode); // salida (con saltos de lnea aadidos): // <rootNode> // <oldest /> // <middle /> // <middle /> // <youngest /> // </rootNode> // crea una copia de rootNode con cloneNode() para mostrar una copia profunda var rootClone:XMLNode = rootNode.cloneNode(true); // inserta el clon, que contiene todos los nodos secundarios, a rootNode rootNode.appendChild(rootClone); trace(rootNode); // salida (con saltos de lnea aadidos): // <rootNode> // <oldest /> // <middle /> // <middle /> // <youngest /> // <rootNode> // <oldest /> // <middle /> // <middle /> // <youngest /> // </rootNode> // </rootNode>

XMLNode

717

firstChild (propiedad XMLNode.firstChild)


public firstChild : XMLNode [read-only]

Evala el objeto XML especificado y hace referencia al primer elemento secundario de la lista de elementos secundarios del nodo principal. Esta propiedad tiene el valor null si el nodo no tiene elementos secundarios. Esta propiedad tiene el valor undefined si el nodo es un nodo de texto. Esta es una propiedad de slo lectura que no puede utilizarse para manipular nodos secundarios; utilice los mtodos appendChild(), insertBefore() y removeNode() para manipular nodos secundarios. Ejemplo El ejemplo siguiente muestra cmo utilizar XML.firstChild para recorrer los nodos secundarios de un nodo:
// crea un nuevo documento XML var doc:XML = new XML(); // crea un nodo raz var rootNode:XMLNode = doc.createElement("rootNode"); // crea tres nodos secundarios var oldest:XMLNode = doc.createElement("oldest"); var middle:XMLNode = doc.createElement("middle"); var youngest:XMLNode = doc.createElement("youngest"); // aade rootNode como raz del rbol de documentos XML doc.appendChild(rootNode); // aade cada uno de los nodos secundarios como elementos secundarios de rootNode rootNode.appendChild(oldest); rootNode.appendChild(middle); rootNode.appendChild(youngest); // utiliza firstChild para repetirlo en los nodos secundarios de rootNode for (var aNode:XMLNode = rootNode.firstChild; aNode != null; aNode = aNode.nextSibling) { trace(aNode); } // // // // salida: <oldest /> <middle /> <youngest />

718

Clases de ActionScript

El ejemplo siguiente procede del archivo FLA XML_languagePicker en el directorio Examples y se puede encontrar en la definicin de funcin de controlador de eventos languageXML.onLoad:
// realiza un bucle en las cadenas de cada nodo de idioma // aadiendo cada cadena como nuevo elemento a la matriz de idioma for (var stringNode:XMLNode = childNode.firstChild; stringNode != null; stringNode = stringNode.nextSibling, j++) { masterArray[i][j] = stringNode.firstChild.nodeValue; }

Para ver el script completo, consulte el archivo XML_languagePicker.fla de la carpeta de ejemplos de ActionScript en www.adobe.com/go/learn_fl_samples_es. Descargue y descomprima el archivo .zip y acceda a la carpeta de su versin de ActionScript para poder ver el ejemplo. Vase tambin
appendChild (mtodo XMLNode.appendChild), insertBefore (mtodo XMLNode.insertBefore), removeNode (mtodo XMLNode.removeNode)

hasChildNodes (mtodo XMLNode.hasChildNodes)


public hasChildNodes() : Boolean

Especifica si el objeto XML tiene nodos secundarios. Valor devuelto


Boolean

- true si el nodo XMLNode especificado tiene uno o varios nodos secundarios; en caso contrario devuelve false.

Ejemplo El ejemplo siguiente crea un nuevo paquete XML. Si el nodo raz tiene nodos secundarios, el cdigo se repite por todos los nodos secundarios para mostrar el nombre y el valor de cada nodo. Aada el siguiente cdigo ActionScript al archivo FLA o AS:
var my_xml:XML = new XML("hankrudolph"); if (my_xml.firstChild.hasChildNodes()) { // utiliza firstChild para repetirlo en los nodos secundarios de rootNode for (var aNode:XMLNode = my_xml.firstChild.firstChild; aNode != null; aNode=aNode.nextSibling) { if (aNode.nodeType == 1) { trace(aNode.nodeName+":\t"+aNode.firstChild.nodeValue); } } }

XMLNode

719

El panel Salida muestra esta informacin:


output: username: hank password: rudolph

insertBefore (mtodo XMLNode.insertBefore)


public insertBefore(newChild:XMLNode, insertPoint:XMLNode) : Void

Inserta un nodo newChild en la lista de secundarios del objeto XML, delante del nodo insertPoint. Si insertPoint no es un elemento secundario del objeto XMLNode, se produce un error al insertar. Parmetros
newChild:XMLNode

- El objeto XMLNode que se va a insertar. - El objeto XMLNode que seguir al nodo newChild cuando se

insertPoint:XMLNode

invoque el mtodo. Ejemplo El ejemplo siguiente inserta un nuevo nodo XML entre los dos nodos existentes:
var my_xml:XML = new XML("<a>1</a>\n<c>3</c>"); var insertPoint:XMLNode = my_xml.lastChild; var newNode:XML = new XML("<b>2</b>\n"); my_xml.insertBefore(newNode, insertPoint); trace(my_xml);

Vase tambin
XML, cloneNode (mtodo XMLNode.cloneNode)

lastChild (propiedad XMLNode.lastChild)


public lastChild : XMLNode [read-only]

Valor XMLNode que hace referencia al ltimo elemento secundario de la lista de elementos secundarios del nodo. La propiedad XML.lastChild tiene el valor null si el nodo no tiene elementos secundarios. Esta propiedad no puede utilizarse para manipular nodos secundarios; utilice los mtodos appendChild(), insertBefore() y removeNode() para manipular nodos secundarios.

720

Clases de ActionScript

Ejemplo El ejemplo siguiente utiliza la propiedad XML.lastChild para repetir por los nodos secundarios de un nodo XML, empezando por el ltimo elemento de la lista de elementos secundarios del nodo y terminando por el primer elemento secundario de la lista:
// crea un nuevo documento XML var doc:XML = new XML(); // crea un nodo raz var rootNode:XMLNode = doc.createElement("rootNode"); // crea tres nodos secundarios var oldest:XMLNode = doc.createElement("oldest"); var middle:XMLNode = doc.createElement("middle"); var youngest:XMLNode = doc.createElement("youngest"); // aade rootNode como raz del rbol de documentos XML doc.appendChild(rootNode); // aade cada uno de los nodos secundarios como elementos secundarios de rootNode rootNode.appendChild(oldest); rootNode.appendChild(middle); rootNode.appendChild(youngest); // utiliza lastChild para repetirlo en los nodos secundarios de rootNode for (var aNode:XMLNode = rootNode.lastChild; aNode != null; aNode = aNode.previousSibling) { trace(aNode); } // // // // salida: <youngest /> <middle /> <oldest />

El ejemplo siguiente crea un nuevo paquete XML y utiliza la propiedad XML.lastChild para repetir por los nodos secundarios del nodo raz:
// crea un nuevo documento XML var doc:XML = new XML(""); var rootNode:XMLNode = doc.firstChild; // utiliza lastChild para repetirlo en los nodos secundarios de rootNode for (var aNode:XMLNode = rootNode.lastChild; aNode != null; aNode=aNode.previousSibling) { trace(aNode); }

XMLNode

721

// // // //

salida: <youngest /> <middle /> <oldest />

Vase tambin
appendChild (mtodo XMLNode.appendChild), insertBefore (mtodo XMLNode.insertBefore), removeNode (mtodo XMLNode.removeNode), XML

nextSibling (propiedad XMLNode.nextSibling)


public nextSibling : XMLNode [read-only]

Valor XMLNode que hace referencia al siguiente elemento secundario de la lista de elementos secundarios del nodo principal. Esta propiedad tiene el valor null si el nodo no tiene otro nodo del mismo nivel. Esta propiedad no puede utilizarse para manipular nodos secundarios; utilice los mtodos appendChild(), insertBefore() y removeNode() para manipular nodos secundarios. Ejemplo El ejemplo siguiente es un extracto del ejemplo de la propiedad XML.firstChild y muestra cmo se puede utilizar la propiedad XML.nextSibling para reproducirse indefinidamente por los nodos secundarios de un nodo XML:
for (var aNode:XMLNode = rootNode.firstChild; aNode != null; aNode = aNode.nextSibling) { trace(aNode); }

Vase tambin
firstChild (propiedad XMLNode.firstChild), appendChild (mtodo XMLNode.appendChild), insertBefore (mtodo XMLNode.insertBefore), removeNode (mtodo XMLNode.removeNode), XML

nodeName (propiedad XMLNode.nodeName)


public nodeName : String

Cadena que representa el nombre del nodo del objeto XML. Si el objeto XML es un elemento XML (nodeType == 1), nodeName es el nombre de la etiqueta que representa al nodo del archivo XML. Por ejemplo, TITLE es el nombre del nodo (nodeName) de una etiqueta HTML TITLE. Si el objeto XML es un nodo de texto (nodeType == 3), nodeName tiene el valor null.

722

Clases de ActionScript

Ejemplo El ejemplo siguiente crea un nodo de elemento y un nodo de texto, y comprueba el nombre de cada uno:
// crea un documento XML var doc:XML = new XML(); // crea un nodo XML con createElement() var myNode:XMLNode = doc.createElement("rootNode"); // inserta el nuevo nodo en el rbol XML doc.appendChild(myNode); // crea un nodo de texto XML con createTextNode() var myTextNode:XMLNode = doc.createTextNode("textNode"); // inserta el nuevo nodo en el rbol XML myNode.appendChild(myTextNode); trace(myNode.nodeName); trace(myTextNode.nodeName); // salida: // rootNode // null

El ejemplo siguiente crea un nuevo paquete XML. Si el nodo raz tiene nodos secundarios, el cdigo se repite por todos los nodos secundarios para mostrar el nombre y el valor de cada nodo. Aada el siguiente cdigo ActionScript al archivo FLA o AS:
var my_xml:XML = new XML("hankrudolph"); if (my_xml.firstChild.hasChildNodes()) { // utiliza firstChild para repetirlo en los nodos secundarios de rootNode for (var aNode:XMLNode = my_xml.firstChild.firstChild; aNode != null; aNode=aNode.nextSibling) { if (aNode.nodeType == 1) { trace(aNode.nodeName+":\t"+aNode.firstChild.nodeValue); } } }

El panel Salida muestra los siguientes nombres de nodos:


output: username: hank password: rudolph

Vase tambin
nodeType (propiedad XMLNode.nodeType)

XMLNode

723

nodeType (propiedad XMLNode.nodeType)


public nodeType : Number [read-only]

Valor de nodeType, que puede ser 1 para un elemento XML o 3 para un nodo de texto.
nodeType

es un valor numrico de la enumeracin NodeType de la recomendacin W3C DOM Nivel 1: www.w3.org/tr/1998/REC-DOM-Level-1-19981001/level-one-core.html. Los valores se muestran en la tabla siguiente:
Valor entero
1 2 3 4 5 6 7 8 9 10 11 12

Constante definida
ELEMENT_NODE ATtrIBUTE_NODE TEXT_NODE CDATA_SECTION_NODE NTITY_REFERENCE_NODE ENTITY_NODE PROCESSING_INStrUCTION_NODE COMMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE DOCUMENT_FRAGMENT_NODE NOTATION_NODE

En Flash Player, la clase XML incorporada slo admite 1 (ELEMENT_NODE) y 3 (TEXT_NODE). Ejemplo El ejemplo siguiente crea un nodo de elemento y un nodo de texto, y comprueba los tipos de nodos:
// crea un documento XML var doc:XML = new XML(); // crea un nodo XML con createElement() var myNode:XMLNode = doc.createElement("rootNode"); // inserta el nuevo nodo en el rbol XML doc.appendChild(myNode); // crea un nodo de texto XML con createTextNode() var myTextNode:XMLNode = doc.createTextNode("textNode");

724

Clases de ActionScript

// inserta el nuevo nodo en el rbol XML myNode.appendChild(myTextNode); trace(myNode.nodeType); trace(myTextNode.nodeType); // salida: // 1 // 3

Vase tambin
nodeValue (propiedad XMLNode.nodeValue)

nodeValue (propiedad XMLNode.nodeValue)


public nodeValue : String

Valor de nodo del objeto XML. Si el objeto XML es un nodo de texto, nodeType es 3, y nodeValue es el texto del nodo. Si el objeto XML es un elemento XML (nodeType es 1), nodeValue es null y de slo lectura. Ejemplo El ejemplo siguiente crea un nodo de elemento y un nodo de texto, y comprueba el valor de cada uno:
// crea un documento XML var doc:XML = new XML(); // crea un nodo XML con createElement() var myNode:XMLNode = doc.createElement("rootNode"); // inserta el nuevo nodo en el rbol XML doc.appendChild(myNode); // crea un nodo de texto XML con createTextNode() var myTextNode:XMLNode = doc.createTextNode("textNode"); // inserta el nuevo nodo en el rbol XML myNode.appendChild(myTextNode); trace(myNode.nodeValue); trace(myTextNode.nodeValue); // salida: // null // myTextNode

XMLNode

725

El ejemplo siguiente crea y analiza un paquete XML: El cdigo se reproduce indefinidamente por cada nodo secundario y muestra el valor del nodo utilizando la propiedad firstChild y firstChild.nodeValue. Cuando utiliza firstChild para mostrar el contenido del nodo, mantiene la entidad &amp;. Sin embargo, si utiliza de forma explcita nodeValue, se convierte al carcter ampersand (&).
var my_xml:XML = new XML("mortongood&evil"); trace("using firstChild:"); for (var i = 0; i<my_xml.firstChild.childNodes.length; i++) { trace("\t"+my_xml.firstChild.childNodes[i].firstChild); } trace(""); trace("using firstChild.nodeValue:"); for (var i = 0; i<my_xml.firstChild.childNodes.length; i++) { trace("\t"+my_xml.firstChild.childNodes[i].firstChild.nodeValue); }

El panel Salida muestra la siguiente informacin:


using firstChild: morton good&evil using firstChild.nodeValue: morton good&evil

Vase tambin
nodeType (propiedad XMLNode.nodeType)

parentNode (propiedad XMLNode.parentNode)


public parentNode : XMLNode [read-only]

Valor de XMLNode que hace referencia al nodo principal del objeto XML especificado o devuelve null si el nodo no tiene elemento principal. Esta es una propiedad de slo lectura que no puede utilizarse para manipular nodos secundarios; utilice los mtodos appendChild(), insertBefore() y removeNode() para manipular nodos secundarios. Ejemplo El ejemplo siguiente crea un paquete XML y muestra el nodo principal del nodo username en el panel Salida:
var my_xml:XML = new XML("mortongood&evil"); // el primer elemento secundario es el nodo <login /> var rootNode:XMLNode = my_xml.firstChild;

726

Clases de ActionScript

// el primer elemento secundario de la raz es el nodo <username /> var targetNode:XMLNode = rootNode.firstChild; trace("the parent node of '"+targetNode.nodeName+"' is: "+targetNode.parentNode.nodeName); trace("contents of the parent node are:\n"+targetNode.parentNode); // salida (con saltos de lnea para que se vea ms claramente): the parent node of 'username' is: login contents of the parent node are: morton good&evil

Vase tambin
appendChild (mtodo XMLNode.appendChild), insertBefore (mtodo XMLNode.insertBefore), removeNode (mtodo XMLNode.removeNode), XML

previousSibling (propiedad XMLNode.previousSibling)


public previousSibling : XMLNode [read-only]

Valor XMLNode que hace referencia al elemento secundario anterior de la lista de elementos secundarios del nodo principal. La propiedad tiene el valor null si el nodo no tiene un nodo del mismo nivel que le preceda. Esta propiedad no puede utilizarse para manipular nodos secundarios; utilice los mtodos appendChild(), insertBefore() y removeNode() para manipular nodos secundarios. Ejemplo El ejemplo siguiente es un extracto del ejemplo de la propiedad XML.lastChild y muestra cmo se puede utilizar la propiedad XML.previousSibling para reproducirse indefinidamente por los nodos secundarios de un nodo XML:
for (var aNode:XMLNode = rootNode.lastChild; aNode != null; aNode = aNode.previousSibling) { trace(aNode); }

Vase tambin
lastChild (propiedad XMLNode.lastChild), appendChild (mtodo XMLNode.appendChild), insertBefore (mtodo XMLNode.insertBefore), removeNode (mtodo XMLNode.removeNode), XML

XMLNode

727

removeNode (mtodo XMLNode.removeNode)


public removeNode() : Void

Quita el objeto XML especificado de su elemento principal. Tambin elimina todos los descendientes del nodo. Ejemplo El ejemplo siguiente crea un paquete XML y, a continuacin, elimina el objeto XML especificado y sus nodos descendientes:
var xml_str:String = "<state name=\"California\"><city>San Francisco</ city></state>"; var my_xml:XML = new XML(xml_str); var cityNode:XMLNode = my_xml.firstChild.firstChild; trace("before XML.removeNode():\n"+my_xml); cityNode.removeNode(); trace(""); trace("after XML.removeNode():\n"+my_xml); // // // // // // // // // salida (con saltos de lnea para que se vea ms claramente): antes de XML.removeNode(): <state name="California"> <city>San Francisco</city> </state> despus de XML.removeNode(): <state name="California" />

toString (mtodo XMLNode.toString)


public toString() : String

Evala el objeto XML especificado, construye una representacin textual de la estructura XML, incluidos el nodo, los elementos secundarios y los atributos, y devuelve el resultado como una cadena. En el caso de objetos XML de nivel superior (los creados con el constructor), el mtodo XML.toString() genera la declaracin XML del documento (almacenada en la propiedad XML.xmlDecl), seguida de la declaracin DOCTYPE del documento (almacenada en la propiedad XML.docTypeDecl), seguida de la representacin textual de todos los nodos XML del objeto. La declaracin XML no se genera si la propiedad XML.xmlDecl no est definida. La declaracin DOCTYPE no se genera si la propiedad XML.docTypeDecl no est definida (undefined).

728

Clases de ActionScript

Valor devuelto
String

- Cadena.

Ejemplo El cdigo siguiente utiliza el mtodo toString() para convertir un objeto XMLNode en una cadena (String) y, a continuacin, utiliza el mtodo toUpperCase() de la clase String:
var xString = "<first>Mary</first>" + "<last>Ng</last>" var my_xml:XML = new XML(xString); var my_node:XMLNode = my_xml.childNodes[1]; trace(my_node.toString().toUpperCase()); // <LAST>NG<

Vase tambin
docTypeDecl (propiedad XML.docTypeDecl), xmlDecl (propiedad XML.xmlDecl)

XMLSocket
Object | +-XMLSocket public class XMLSocket extends Object

La clase XMLSocket implementa sockets de cliente que permiten al dispositivo que ejecuta el reproductor de Flash Lite comunicarse con un equipo servidor identificado mediante una direccin IP o un nombre de dominio. La clase XMLSocket es til para aplicaciones de servidor que requieran una baja latencia, como los sistemas de chat en tiempo real. Un sistema de chat tradicional basado en HTTP suele sondear el servidor y descargar los mensajes nuevos mediante una solicitud HTTP. Por contra, una solucin de chat con XMLSocket mantiene una conexin abierta con el servidor, lo que permite que el servidor enve de inmediato los mensajes entrantes sin que se produzca una solicitud del cliente. Para utilizar la clase XMLSocket, el equipo servidor debe ejecutar un proceso de demonio que entienda el protocolo utilizado por la clase XMLSocket. En la lista siguiente se describe el protocolo:

Los mensajes XML se envan a travs de una conexin de socket ininterrumpida TCP/IP dplex. Cada mensaje XML es un documento XML completo terminado en un byte cero (0). Pueden enviarse y recibirse un nmero ilimitado de mensajes XML a travs de una misma conexin XMLSocket.

XMLSocket

729

Las siguientes restricciones afectan a la forma y el lugar en el que el objeto XMLSocket puede conectar con el servidor:

Para conectar un objeto XMLSocket a un puerto inferior a 1024, debe cargar primero un archivo de poltica con el mtodo System.security.loadPolicyFile(), aunque la aplicacin se conecte a su propio dominio exacto. El mtodo XMLSocket.connect() slo puede conectar con equipos del mismo dominio en el que reside el archivo SWF. Esta restriccin no afecta a los archivos SWF que se ejecutan en un disco local. (Esta restriccin es idntica a las reglas de seguridad para la funcin loadVariables() y los mtodos XML.sendAndLoad() y XML.load().) Para conectar con un dominio de servidor que se ejecuta en un dominio diferente a aqul en el que reside el archivo SWF, puede crear un archivo de poltica de seguridad en el servidor que permita el acceso desde determinados dominios.

La configuracin de un servidor para que se comunique con el objeto XMLSocket puede resultar compleja. Si su aplicacin no requiere interactividad en tiempo real, utilice la funcin loadVariables() o conectividad de servidor XML basada en HTTP de Flash (XML.load(), XML.sendAndLoad(), XML.send()) en lugar de la clase XMLSocket. Para utilizar los mtodos de la clase XMLSocket, primero debe utilizar el constructor, XMLSocket(), para crear un objeto XMLSocket. Vase tambin
loadPolicyFile (mtodo security.loadPolicyFile)

Resumen de propiedades Propiedades heredadas de la clase Object


constructor (propiedad Object.constructor), __proto__ (propiedad Object.__proto__), prototype (propiedad Object.prototype), __resolve (propiedad Object.__resolve)

Resumen de eventos
Evento
onClose = function() {} onConnect = olean) {}

Descripcin
Slo se invoca cuando el servidor cierra una conexin abierta. Funcin callback asncrona invocada por el reproductor de Flash Lite XMLSocket.connect() ha sido correcta o incorrecta.

function(success:Bo cuando una solicitud de conexin iniciada a travs de

730

Clases de ActionScript

Evento
onData = ) {} onXML = function(src:XML) {}

Descripcin
Se invoca cuando se ha descargado del servidor un mensaje

function(src:String terminado en byte cero (0).

Lo invoca el reproductor de Flash Player cuando el objeto XML que contiene un documento XML llega a travs de una conexin XMLSocket abierta.

Resumen de constructores
Firma
XMLSocket()

Descripcin
Crea un nuevo objeto XMLSocket.

Resumen de mtodos
Modificadores Firma
close() : Void

Descripcin
Cierra la conexin especificada por el objeto XMLSocket. especificado utilizando el puerto TCP indicado y devuelve true o false, dependiendo de si se ha iniciado correctamente una conexin. en el parmetro object en una cadena y la transmite al servidor seguida de un byte cero (0).

connect(url:String, Establece una conexin con el servidor de Internet port:Number) : Boolean

send(data:Object) : Convierte el objeto XML o los datos especificados Void

Mtodos heredados de la clase Object


addProperty (mtodo Object.addProperty), hasOwnProperty (mtodo Object.hasOwnProperty), isPropertyEnumerable (mtodo Object.isPropertyEnumerable), isPrototypeOf (mtodo Object.isPrototypeOf), registerClass (mtodo Object.registerClass), toString (mtodo Object.toString), unwatch (mtodo Object.unwatch), valueOf (mtodo Object.valueOf), watch (mtodo Object.watch)

XMLSocket

731

close (mtodo XMLSocket.close)


public close() : Void

Cierra la conexin especificada por el objeto XMLSocket. Ejemplo El ejemplo siguiente crea un objeto XMLSocket, intenta conectarse al servidor y, a continuacin, cierra la conexin.
var socket:XMLSocket = new XMLSocket(); socket.connect(null, 2000); socket.close();

Vase tambin
connect (mtodo XMLSocket.connect)

connect (mtodo XMLSocket.connect)


public connect(url:String, port:Number) : Boolean

Establece una conexin con el servidor de Internet especificado utilizando el puerto TCP indicado y devuelve true o false, dependiendo de si se ha iniciado correctamente una conexin. Si el mtodo XMLSocket.connect() devuelve el valor true, la etapa inicial del proceso de conexin habr sido correcta; posteriormente, se invoca al mtodo XMLSocket.onConnect() para determinar si la conexin final ha sido correcta o incorrecta. Si XMLSocket.connect() devuelve false, ello indicar que no se ha podido establecer una conexin. Si desconoce el nmero de puerto de su equipo servidor de Internet, pngase en contacto con el administrador de la red. Para conectar un objeto XMLSocket a un puerto inferior a 1024, primero debe cargar un archivo de poltica con el mtodo System.security.loadPolicyFile(). Si especifica el valor null para el parmetro host, el servidor con el que se entra en contacto es en el que reside el archivo SWF que llama a XMLSocket.connect(). Por ejemplo, si el archivo SWF se ha descargado de www.example.com, especificar null para el parmetro host equivaldr a introducir la direccin IP de www.example.com.

732

Clases de ActionScript

En archivos SWF de cualquier versin que se ejecuten en Flash Player 7 y posterior, host debe estar exactamente en el mismo dominio. Por ejemplo, un archivo SWF situado en www.someDomain.com publicado para Flash Player 5, pero abierto en Flash Player 7 o posterior slo puede cargar variables de archivos SWF que tambin se encuentren en www.someDomain.com. Si desea cargar variables de un dominio diferente, puede colocar un archivo de poltica para distintos dominios en el servidor en el que se alberga el archivo SWF al que se est accediendo. Nota:El mtodo XMLSocket.connect() devuelve false si System.capabilities.hasXMLSocket es false. Parmetros - Una cadena; un nombre de dominio DNS completo o una direccin IP con el formato aaa.bbb.ccc.ddd. Tambin puede especificar null para conectarse al servidor host en el que se encuentra el archivo SWF. Si el archivo SWF que realiza esta llamada se ejecuta en un navegador Web, el parmetro host debe pertenecer al mismo dominio que el archivo SWF.
url:String port:Number - Un nmero; el nmero de puerto TCP en el host utilizado para establecer una

conexin. Valor devuelto


Boolean

- Un valor true si la conexin se realiza correctamente; false en caso contrario.

Ejemplo El ejemplo siguiente utiliza el mtodo XMLSocket.connect() para conectarse al host donde reside el archivo SWF y la funcin trace() para obtener el valor que indica si se ha realizado correctamente la conexin:
var socket:XMLSocket = new XMLSocket() socket.onConnect = function (success:Boolean) { if (success) { trace ("Connection succeeded!"); } else { trace ("Connection failed!"); } } if (!socket.connect(null, 2000)) { trace ("Connection failed!"); }

Vase tambin
onConnect (controlador XMLSocket.onConnect), Sentencia function, loadPolicyFile (mtodo security.loadPolicyFile)

XMLSocket

733

onClose (controlador XMLSocket.onClose)


onClose = function() {}

Slo se invoca cuando el servidor cierra una conexin abierta. En la implementacin predeterminada, este mtodo no realiza ninguna accin. Para sustituir la implementacin predeterminada, debe asignar una funcin que contenga acciones personalizadas. Ejemplo El siguiente ejemplo ejecuta una sentencia trace si el servidor cierra una conexin abierta:
var socket:XMLSocket = new XMLSocket(); socket.connect(null, 2000); socket.onClose = function () { trace("Connection to server lost."); }

Vase tambin
onConnect (controlador XMLSocket.onConnect), Sentencia function

onConnect (controlador XMLSocket.onConnect)


onConnect = function(success:Boolean) {}

Funcin callback asncrona invocada por el reproductor de Flash Lite cuando una solicitud de conexin iniciada a travs de XMLSocket.connect() ha sido correcta o incorrecta. Si la conexin es correcta, el parmetro success tiene un valor true; de lo contrario, el parmetro success tiene un valor false. En la implementacin predeterminada, este mtodo no realiza ninguna accin. Para sustituir la implementacin predeterminada, debe asignar una funcin que contenga acciones personalizadas. Parmetros
success:Boolean - Un valor booleano que indica si la conexin de socket se ha realizado correctamente. Si la conexin es correcta, el parmetro success tiene un valor true; de lo contrario, el parmetro success tiene un valor false.

Ejemplo El ejemplo siguiente muestra el proceso necesario para especificar una funcin de sustitucin para el controlador de eventos onConnect() en una aplicacin de chat sencilla.

734

Clases de ActionScript

Tras crear el objeto XMLSocket mediante el mtodo constructor, el script define la funcin personalizada que se va a ejecutar cuando se invoque el controlador de eventos onConnect(). La funcin controla la pantalla que ven los usuarios, dependiendo de si se ha realizado la conexin correctamente. Si la conexin se ha realizado correctamente, los usuarios vern la pantalla de chat principal en el fotograma llamado startChat. Si la conexin no se ha realizado, los usuarios vern una pantalla con informacin para resolver problemas en el fotograma llamado connectionFailed.
var socket:XMLSocket = new XMLSocket(); socket.onConnect = function (success) { if (success) { gotoAndPlay("startChat"); } else { gotoAndStop("connectionFailed"); } }

Ahora que se ha definido el controlador onConnect(), se invoca el mtodo connect() para intentar establecer la conexin. Si el mtodo connect() devuelve un valor false, el archivo SWF se enva directamente al fotograma llamado connectionFailed, y nunca se llama a onConnect(). Si el mtodo connect() devuelve true, el archivo SWF salta a un fotograma waitForConnection, que es la pantalla "Please wait" (Espere por favor). El archivo SWF sigue en el fotograma waitForConnection hasta que se llama al controlador onConnect(), lo que ocurre en algn momento posterior segn la latencia de la red.
if (!socket.connect(null, 2000)) { gotoAndStop("connectionFailed"); } else { gotoAndStop("waitForConnection"); }

Vase tambin
connect (mtodo XMLSocket.connect), Sentencia function

onData (controlador XMLSocket.onData)


onData = function(src:String) {}

Se invoca cuando se ha descargado del servidor un mensaje terminado en byte cero (0). Puede modificar el controlador de eventos XMLSocket.onData para interceptar datos enviados por el servidor sin analizarlos como datos XML. Esta funcin resulta til si transmite paquetes de datos con formato arbitrario y prefiere manipularlos directamente cuando lleguen en lugar de que Flash Player los analice como XML.

XMLSocket

735

De forma predeterminada, el mtodo XMLSocket.onData llama al mtodo XMLSocket.onXML. Si sustituye XMLSocket.onData por un comportamiento personalizado, no se llamar a XMLSocket.onXML a no ser que efecte la llamada en su implementacin de XMLSocket.onData. Parmetros
src:String

- Una cadena con datos enviados por el servidor.

Ejemplo En este ejemplo, el parmetro src es una cadena que contiene texto XML descargado del servidor. El terminador byte cero (0) no se incluye en la cadena.
XMLSocket.prototype.onData = function (src) { this.onXML(new XML(src)); }

onXML (controlador XMLSocket.onXML)


onXML = function(src:XML) {}

Lo invoca el reproductor de Flash Player cuando el objeto XML que contiene un documento XML llega a travs de una conexin XMLSocket abierta. Una conexin XMLSocket puede utilizarse para transferir un nmero ilimitado de documentos XML entre el cliente y el servidor. Cada documento termina en un byte cero (0). Cuando el reproductor de Flash Lite recibe el byte cero, analiza todos los datos XML recibidos desde el anterior byte cero o desde que se estableci la conexin si ste es el primer mensaje recibido. Cada lote de datos XML analizados se considera como un nico documento XML y se analiza con el mtodo onXML(). En la implementacin predeterminada, este mtodo no realiza ninguna accin. Para sustituir la implementacin predeterminada, debe asignar una funcin que contenga acciones definidas por usted. Parmetros
src:XML

- Un objeto XML que contiene un documento XML analizado recibido de un

servidor. Ejemplo La siguiente funcin sustituye la implementacin predeterminada del mtodo onXML() en una aplicacin de chat sencilla. La funcin myOnXML() indica a la aplicacin de chat que reconozca un elemento XML nico, MESSAGE, con el formato siguiente:
<MESSAGE USER="John" TEXT="Hello, my name is John!" />. var socket:XMLSocket = new XMLSocket();

736

Clases de ActionScript

En el siguiente ejemplo, se supone que la funcin siguiente displayMessage() es una funcin definida por el usuario que muestra el mensaje que recibe el usuario:
socket.onXML = function (doc) { var e = doc.firstChild; if (e != null && e.nodeName == "MESSAGE") { displayMessage(e.attributes.user, e.attributes.text); } }

Vase tambin
Sentencia function

send (mtodo XMLSocket.send)


public send(data:Object) : Void

Convierte el objeto XML o los datos especificados en el parmetro object en una cadena y la transmite al servidor seguida de un byte cero (0). Si object es un objeto XML, la cadena es una representacin textual del objeto XML. La operacin de envo (send) es asncrona; se devuelve inmediatamente, pero puede que los datos se transmitan posteriormente. El mtodo XMLSocket.send() no devuelve ningn valor que indique si los datos se han transmitido correctamente. Si el objeto XMLSocket no est conectado al servidor con el mtodo XMLSocket.connect(), el funcionamiento de XMLSocket.send() falla. Parmetros
data:Object

- Un objeto XML u otros datos que se van a transmitir al servidor.

Ejemplo El ejemplo siguiente muestra cmo especificar un nombre de usuario y una contrasea para enviar el objeto XML my_xml al servidor:
var myXMLSocket:XMLSocket = new XMLSocket(); var my_xml:XML = new XML(); var myLogin:XMLNode = my_xml.createElement("login"); myLogin.attributes.username = usernameTextField; myLogin.attributes.password = passwordTextField; my_xml.appendChild(myLogin); myXMLSocket.send(my_xml);

Vase tambin
connect (mtodo XMLSocket.connect)

XMLSocket

737

Constructor XMLSocket
public XMLSocket()

Crea un nuevo objeto XMLSocket. El objeto XMLSocket no est conectado inicialmente a ningn servidor. Debe llamar al mtodo XMLSocket.connect() para conectar el objeto con un servidor. Ejemplo En el ejemplo siguiente se crea un objeto XMLSocket:
var socket:XMLSocket = new XMLSocket();

738

Clases de ActionScript

CAPTULO 3

Cdigo ActionScript desfasado


Debido a la evolucin de ActionScript muchos de los elementos del lenguaje han quedado desfasados. En esta seccin se incluyen los elementos desfasados y, si existen, se sugieren alternativas. Aunque los elementos desfasados an funcionan en Flash Lite 2.0, Adobe recomienda que no se sigan usando en el cdigo. No se garantiza el servicio de soporte para elementos desfasados en el futuro.

Resumen de funciones desfasadas


Modificadores Nombre de funcin
call(frame:Object)

Descripcin
Desfasada desde Flash Player 5. Esta accin est desfasada y en su lugar debe utilizarse la sentencia function.

chr(number:Number)String Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse String.fromCharCode(). getProperty(my_mc:Object, Desfasada desde Flash Player 5. Esta property:Object)Object funcin est desfasada y en su lugar debe utilizarse la sintaxis con puntos, introducida en Flash Player 5. ifFrameLoaded([scene:Stri Desfasada desde Flash Player 5. Esta ng], frame:Object, funcin est desfasada. Adobe recomienda statement(s):Object) la utilizacin de la propiedad MovieClip._framesloaded. int(value:Number)Number Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse Math.round().

739

Modificadores

Nombre de funcin
length(expression:String, variable:Object)Number

Descripcin
Desfasada desde Flash Player 5. Esta funcin, junto con todas las funciones string, est desfasada. Adobe recomienda que utilice los mtodos de la clase String y la propiedad String.length para realizar las mismas operaciones. Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse el mtodo String.fromCharCode(). Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse la propiedad String.length.

mbchr(number:Number)

mblength(string:String)Nu mber

mbord(character:String)Nu Desfasada desde Flash Player 5. Esta mber funcin est desfasada y en su lugar debe utilizarse el mtodo String.charCodeAt(). mbsubstring(value:String, index:Number, count:Number)String Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse el mtodo String.substr().

ord(character:String)Numb Desfasada desde Flash Player 5. Esta er funcin est desfasada y en su lugar deben utilizarse los mtodos y propiedades de la clase String. random(value:Number)Nu mber substring(string:String, index:Number, count:Number)String tellTarget(target:String, statement(s):Object) toggleHighQuality() Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse Math.random(). Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse String.substr(). Desfasada desde Flash Player 5. Adobe recomienda el uso de notacin con puntos (.) y la sentencia with. Desfasada desde Flash Player 5. Esta funcin est desfasada y en su lugar debe utilizarse _quality.

740

Cdigo ActionScript desfasado

Resumen de propiedades desfasadas


Modificadores Nombre de la propiedad
$version

Descripcin
Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.version. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.has4WayKeyAS. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasCompoundSound. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasEmail. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasDataLoading. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasMFi. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasMIDI. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasMMS. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasSMAF.

_cap4WayKeyAS

_capCompoundSound

_capEmail

_capLoadData

_capMFi

_capMIDI

_capMMS

_capSMAF

Resumen de propiedades desfasadas

741

Modificadores

Nombre de la propiedad
_capSMS

Descripcin
Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasSMS. Desfasada desde Flash Lite Player 2.0. Esta accin est desfasada y en su lugar debe utilizarse la propiedad System.capabilities.hasStreamingAudio. Desfasada desde Flash Player 7. Esta propiedad est desfasada y en su lugar debe utilizarse Button._quality. Desfasada desde Flash Player 7. Esta propiedad est desfasada y en su lugar debe utilizarse MovieClip._quality. Desfasada desde Flash Player 7. Esta propiedad est desfasada y en su lugar debe utilizarse TextField._quality. Desfasada desde Flash Player 5. Esta propiedad est desfasada y en su lugar debe utilizarse _quality. Desfasada desde Flash Player 5. Esta propiedad est desfasada y en su lugar debe utilizarse TextField.maxscroll. Desfasada desde Flash Player 5. Esta propiedad est desfasada y en su lugar debe utilizarse TextField.scroll.

_capStreamSound

Button._highquality

MovieClip._highquality

TextField._highquality

_highquality

maxscroll

scroll

742

Cdigo ActionScript desfasado

Resumen de operadores desfasados


Operador
<> (desigualdad)

Descripcin
Desfasado desde Flash Player 5. Este operador est desfasado. Adobe recomienda que utilice el operador != (inequality). Desfasado desde Flash Player 5. Adobe recomienda que utilice el operador de suma (+) cuando cree contenido para Flash Player 5 o versiones posteriores. Nota: en Flash Lite 2.0, tambin el operador add est desfasado y en su lugar debe utilizarse el operador (+). Desfasado desde Flash Player 5. Adobe recomienda el uso del operador lgico AND (&&)). Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse == (equality). Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse >= (mayor o igual que). Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse > (mayor que). Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse <= (menor o igual que). Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse < (menor que). Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse != (inequality). Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse ! (logical NOT). Desfasado desde Flash Player 5. Este operador est desfasado y en su lugar debe utilizarse || (logical OR).

suma (concatenacin (cadenas))

and (AND lgico) eq (igualdad (cadenas))

ge (mayor o igual que (cadenas))

gt (mayor que (cadenas))

le (menor o igual que (cadenas))

lt (menor que (cadenas))

ne (distinto (cadenas))

not (NOT lgico)

or (OR lgico)

Resumen de operadores desfasados

743

744

Cdigo ActionScript desfasado

CAPTULO 4

ActionScript no admitido
Flash Lite 2.1 no admite los siguientes elementos:

Clases no admitidas
Accessibility, Camera, ContextMenu, ContextMenuItem, CustomActions, LocalConnection, Locale (mx.lang.Locale), Microphone, NetConnection, NetStream, PrintJob, TextField.StyleSheet, TextSnapshot, XMLUI

Mtodos no admitidos
Mouse.hide, Mouse.show, MovieClip.attachAudio, MovieClip.getTextSnapshot, Selection.getBeginIndex, Selection.getCaretIndex, Selection.getEndIndex, System.setClipboard, System.showSettings, TextField.getFontList, Video.attachVideo, Video.clear

Propiedades no admitidas
Button.blendMode, Button.cacheAsBitmap, Button.filters, Button.menu, Button.useHandCursor, System.capabilities.language, System.capabilities.manufacturer, System.capabilities.pixelAspectRatio, System.capabilities.playerType, System.capabilities.screenColor, System.capabilities.screenDPI, System.capabilities.serverString, Key.isToggled, MovieClip.menu, MovieClip.useHandCursor, Stage.showMenu, System.exactSettings, TextField.menu, TextField.mouseWheelEnabled, TextField.restrict, Video._alpha, Video.deblocking, Video._height, Video.height, Video._name, Video._parent, Video._rotation, Video.smoothing, Video._visible, Video._width, Video.width, Video._x, Video._xmouse, Video._xscale, Video._y, Video._ymouse, Video._yscale

745

Funciones globales no admitidas


asfunction, MMExecute, print, printAsBitmap, printAsBitmapNum, printNum, updateAfterEvent

Controladores de eventos no admitidos


onUpdate, Mouse.onMouseWheel

Funciones fscommand no admitidas


allowscale, exec, fullscreen, quit, showmenu, trapallkeys

746

ActionScript no admitido

ndice alfabtico

Smbolos
! operador NOT lgico 142 != operador desigualdad 134 !== operador desigualdad estricta 154 " operador delimitador de cadena 155 #endinitclip, directiva 5 #include, directiva 6 #initclip, directiva 8 $version, propiedad 79 % operador mdulo 145 %= operador asignacin de mdulo 146 & operador AND en modo bit 107 && operador AND lgico 141 () operador parntesis 151 * operador multiplicacin 147 *= operador asignacin de multiplicacin 147 + operador suma 101 ++ operador incremento 133 += operador asignacin de suma 102 , operador coma 122 - operador resta 156 -- operador decremento 125 -= operador asignacin de resta 156 -Infinity, constante 10 . operador punto 127 / operador divisin 125 /* operador delimitador de comentario en bloque 121 // operador delimitador de comentario de lnea 140 /= operador asignacin de divisin 126 :operador tipo 157 < operador menor que 137 << operador desplazamiento a la izquierda en modo bit 109 <<= operador asignacin y desplazamiento a la izquierda en modo bit 110 <= operador menor o igual que 139 <> operador desigualdad 136

= operador asignacin 106 == operador igualdad 128 === operador igualdad estricta 152 > operador mayor que 130 > operador mayor que (cadenas) 131 >= operador mayor o igual que 131 >> operador desplazamiento a la derecha en modo bit 114 >>= operador asignacin y desplazamiento a la derecha en modo bit 116 >>> operador desplazamiento a la derecha en modo bit sin signo 117 >>>= operador asignacin y desplazamiento a la derecha en modo bit sin signo 118 ?: operador condicional 124 [] operador acceso a matriz 103 ^ operador XOR en modo bit 118 ^= operador asignacin de XOR en modo bit 120 __proto__, propiedad 530 __resolve, propiedad 533 _alpha, propiedad 257, 421, 626 _cap4WayKeyAS, propiedad 79 _capCompoundSound, propiedad 80 _capEmail, propiedad 81 _capLoadData, propiedad 81 _capMFi, propiedad 82 _capMIDI, propiedad 83 _capMMS, propiedad 83 _capSMAF, propiedad 84 _capSMS, propiedad 85 _capStreamSound, propiedad 85 _currentframe, propiedad 431 _droptarget, propiedad 433 _focusrect, propiedad 86, 258, 437 _forceframerate, propiedad 87 _framesloaded, propiedad 439 _global, propiedad 87

747

_height, propiedad 260, 452, 635 _highquality, propiedad 88, 260, 453, 635 _level, propiedad 89 _listeners, propiedad 364 _lockroot, propiedad 463 _name, propiedad 261, 466, 640 _parent, propiedad 90, 268, 479, 644 _quality, propiedad 91, 269, 481, 646 _root, propiedad 91 _rotation, propiedad 269, 484, 650 _soundbuftime, propiedad 93, 270, 485, 656 _target, propiedad 273, 492, 658 _totalframes, propiedad 493 _url, propiedad 274, 495, 662 _visible, propiedad 275, 495, 663 _width, propiedad 276, 496, 663 _x, propiedad 276, 497, 665 _xmouse, propiedad 277, 497, 665 _xscale, propiedad 277, 498, 666 _y, propiedad 278, 499, 667 _ymouse, propiedad 279, 499, 667 _yscale, propiedad 280, 500, 668 {} operador inicializador de objeto 149 |= operador asignacin de OR en modo bit 114 || operador OR lgico 143 ~ operador NOT en modo bit 111

A
abs(), mtodo 390 acos(), mtodo 390 addListener(), mtodo 354, 406, 503, 550, 561, 595, 624 addProperty(), mtodo 524 addRequestHeader(), mtodo 373, 692 align, propiedad 596, 671 allowDomain(), mtodo 543 allowInsecureDomain(), mtodo 545 AND lgico (and), operador 142 appendChild(), mtodo 713 apply(), mtodo 348 arguments callee, propiedad 228 caller, propiedad 228 length, propiedad 229 arguments, clase 227 Array Array(), constructor 232 CASEINSENSITIVE, propiedad 234

concat(), mtodo 234 DESCENDING, propiedad 235 join(), mtodo 235 length, propiedad 236 NUMERIC, propiedad 237 pop(), mtodo 238 push(), mtodo 238 RETURNINDEXEDARRAY, propiedad 239 reverse(), mtodo 239 shift(), mtodo 239 slice(), mtodo 240 sort(), mtodo 241 sortOn(), mtodo 244 splice(), mtodo 248 toString(), mtodo 249 UNIQUESORT, propiedad 250 unshift(), mtodo 250 Array(), constructor 232 Array, clase 229 Array, funcin 19 asignacin de AND en modo bit (&=), operador 108 asin(), mtodo 391 atan(), mtodo 391 atan2(), mtodo 392 attachMovie(), mtodo 422 attachSound(), mtodo 573 attributes, propiedad 714 audioMIMETypes, propiedad 285 autoSize, propiedad 626 avHardwareDisable, propiedad 285

B
background, propiedad 628 backgroundColor, propiedad 629 BACKSPACE, propiedad 355 beginFill(), mtodo 423 beginGradientFill(), mtodo 424 blockIndent, propiedad 671 bold, propiedad 672 Boolean Boolean(), constructor 252 toString(), mtodo 252 valueOf(), mtodo 253 Boolean(), constructor 252 Boolean, clase 251 Boolean, funcin 21 border, propiedad 629 borderColor, propiedad 630

748

ndice alfabtico

bottomScroll, propiedad 630 break, sentencia 162 bullet, propiedad 672 Button _alpha, propiedad 257 _focusrect, propiedad 258 _height, propiedad 260 _highquality, propiedad 260 _name, propiedad 261 _parent, propiedad 268 _quality, propiedad 269 _rotation, propiedad 269 _soundbuftime, propiedad 270 _target, propiedad 273 _url, propiedad 274 _visible, propiedad 275 _width, propiedad 276 _x, propiedad 276 _xmouse, propiedad 277 _xscale, propiedad 277 _y, propiedad 278 _ymouse, propiedad 279 _yscale, propiedad 280 enabled, propiedad 257 getDepth(), mtodo 259 tabEnabled, propiedad 270 tabIndex, propiedad 271 trackAsMenu, propiedad 273 Button, clase 253 onDragOut, evento 261 onDragOver, evento 262 onKeyDown, evento 263 onKeyUp, evento 264 onKillFocus, evento 265 onPress, evento 265 onRelease, evento 266 onReleaseOutside, evento 266 onRollOut, evento 266 onRollOver, evento 267 onSetFocus, evento 267

C
call(), mtodo 350 call, funcin 22 callee, propiedad 228 caller, propiedad 228 capabilities audioMIMETypes, propiedad 285

avHardwareDisable, propiedad 285 has4WayKeyAS, propiedad 286 hasAccessibility, propiedad 286 hasAudio, propiedad 286 hasAudioEncoder, propiedad 287 hasCMIDI, propiedad 287 hasCompoundSound, propiedad 287 hasDataLoading, propiedad 288 hasEmail, propiedad 288 hasEmbeddedVideo, propiedad 289 hasMappableSoftKeys, propiedad 289 hasMFI, propiedad 289 hasMIDI, propiedad 290 hasMMS, propiedad 290 hasMouse, propiedad 290 hasMP3, propiedad 291 hasPrinting, propiedad 291 hasQWERTYKeyboard, propiedad 291 hasScreenBroadcast, propiedad 292 hasScreenPlayback, propiedad 292 hasSharedObjects, propiedad 292 hasSMAF, propiedad 293 hasSMS, propiedad 293 hasStreamingAudio, propiedad 293 hasStreamingVideo, propiedad 294 hasStylus, propiedad 294 hasVideoEncoder, propiedad 294 hasXMLSocket, propiedad 295 imageMIMETypes, propiedad 295 isDebugger, propiedad 295 language, propiedad 296 localFileReadDisable, propiedad 297 MIMETypes, propiedad 298 os, propiedad 298 screenOrientation, propiedad 298 screenResolutionX, propiedad 299 screenResolutionY, propiedad 299 softKeyCount, propiedad 299 version, propiedad 299 videoMIMETypes, propiedad 300 capabilities, clase 280 CAPSLOCK, propiedad 355 case, sentencia 163 CASEINSENSITIVE, propiedad 234 ceil(), mtodo 393 charAt(), mtodo 603 charCodeAt(), mtodo 604 childNodes, propiedad 715 chr, funcin 23

ndice alfabtico

749

clase distribuida por Key 364, 365 distribuida por LoadVars 380, 381 distribuida por MovieClip 467, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479 distribuida por MovieClipLoader 508, 510, 511, 513, 514 distribuida por Selection 552 distribuida por System 617 distribuida por TextField 640, 641, 642, 644 distribuida por Video 686 distribuida por XML 702, 703 distribuida por XMLSocket 734, 735, 736 distribuido por Mouse 407, 409, 410 distribuido por SharedObject 568 distribuido por Sound 585, 586, 587 distribuido por Stage 597 emitido por Button 261, 262, 263, 264, 265, 266, 267 Clase TextFormat 668 class, sentencia 164 clear(), mtodo 427, 561 clearInterval, funcin 23 cloneNode(), mtodo 716 close(), mtodo 686, 732 Color Color(), constructor 301 getRGB(), mtodo 302 getTransform(), mtodo 302 setRGB(), mtodo 303 setTransform(), mtodo 304 Color(), constructor 301 Color, clase 300 color, propiedad 673 concat(), mtodo 234, 605 condenseWhite, propiedad 631 connect(), mtodo 732 Constantes 9 constructor, propiedad 528 contentType, propiedad 375, 693 continue, sentencia 166 CONTROL, propiedad 355 Controlador on 52 cos(), mtodo 393 createElement(), mtodo 694 createEmptyMovieClip(), mtodo 428 createTextField(), mtodo 429 createTextNode(), mtodo 695 curveTo(), mtodo 431

D
data, propiedad 562 Date Date(), constructor 311 getDate(), mtodo 313 getDay(), mtodo 313 getFullYear(), mtodo 314 getHours(), mtodo 314 getLocaleLongDate(), mtodo 315 getLocaleShortDate(), mtodo 315 getLocaleTime(), mtodo 316 getMilliseconds(), mtodo 316 getMinutes(), mtodo 317 getMonth(), mtodo 317 getSeconds(), mtodo 318 getTime(), mtodo 318 getTimezoneOffset(), mtodo 319 getUTCDate(), mtodo 319 getUTCDay(), mtodo 320 getUTCFullYear(), mtodo 321 getUTCHours(), mtodo 321 getUTCMilliseconds(), mtodo 322 getUTCMinutes(), mtodo 322 getUTCMonth(), mtodo 323 getUTCSeconds(), mtodo 323 getUTCYear(), mtodo 324 getYear(), mtodo 324 setDate(), mtodo 325 setFullYear(), mtodo 325 setHours(), mtodo 326 setMilliseconds(), mtodo 327 setMinutes(), mtodo 327 setMonth(), mtodo 328 setSeconds(), mtodo 329 setTime(), mtodo 329 setUTCDate(), mtodo 330 setUTCFullYear(), mtodo 331 setUTCHours(), mtodo 332 setUTCMilliseconds(), mtodo 333 setUTCMinutes(), mtodo 333 setUTCMonth(), mtodo 334 setUTCSeconds(), mtodo 335 setYear(), mtodo 335 toString(), mtodo 336 UTC(), mtodo 336 valueOf(), mtodo 337 Date(), constructor 311 Date, clase 305 decode(), mtodo 375

750

ndice alfabtico

default, sentencia 168 delete, sentencia 169 DELETEKEY, propiedad 356 DESCENDING, propiedad 235 Directivas del compilador 5 distinto (ne) (cadenas), operador 149 do..while, sentencia 170 docTypeDecl, propiedad 696 DOWN, propiedad 357 duplicateMovieClip(), mtodo 434 duplicateMovieClip, funcin 24 duration, propiedad 574 dynamic, sentencia 171

ExtendedKey, clase 343 extends, sentencia 174

F
false, constante 10 firstChild, propiedad 718 floor(), mtodo 395 flush(), mtodo 564 focusEnabled, propiedad 437 font, propiedad 673 for, sentencia 176 for..in, sentencia 177 fromCharCode(), mtodo 605 fscommand, funcin 28 fscommand2, comandos 206 fscommand2, funcin 30 FullScreen, comando 208 Funciones globales 14 Function apply(), mtodo 348 call(), mtodo 350 Function, clase 347 function, sentencia 179

E
E, propiedad 394 else if, sentencia 173 else, sentencia 173 embedFonts, propiedad 632 enabled, propiedad 257, 436 END, propiedad 357 endFill(), mtodo 436 ENTER, propiedad 358 Error Error(), constructor 339 message, propiedad 340 name, propiedad 341 toString(), mtodo 342 Error(), constructor 339 Error, clase 338 escape, funcin 25 ESCAPE, propiedad 359 eval, funcin 26 exp(), mtodo 395 ExtendBacklightDuration, comando 208 ExtendedKey SOFT1, propiedad 345 SOFT10, propiedad 345 SOFT11, propiedad 346 SOFT12, propiedad 346 SOFT2, propiedad 346 SOFT3, propiedad 346 SOFT4, propiedad 346 SOFT5, propiedad 346 SOFT6, propiedad 346 SOFT7, propiedad 347 SOFT8, propiedad 347 SOFT9, propiedad 347

G
ge operador mayor o igual que (cadenas) 132 get, sentencia 180 getAscii(), mtodo 359 GetBatteryLevel, comando 209 getBounds(), mtodo 439 getBytesLoaded(), mtodo 376, 441, 576, 697 getBytesTotal(), mtodo 377, 442, 577, 698 getCode(), mtodo 360 getDate(), mtodo 313 getDay(), mtodo 313 getDepth(), mtodo 259, 443, 632 GetDevice, comando 209 GetDeviceID, comando 210 getFocus(), mtodo 551 GetFreePlayerMemory, comando 210 getFullYear(), mtodo 314 getHours(), mtodo 314 getInstanceAtDepth(), mtodo 443 getLocal(), mtodo 565 getLocaleLongDate(), mtodo 315 getLocaleShortDate(), mtodo 315 getLocaleTime(), mtodo 316

ndice alfabtico

751

GetMaxBatteryLevel, comando 211 GetMaxSignalLevel, comando 211 getMaxSize(), mtodo 567 GetMaxVolumeLevel, comando 212 getMilliseconds(), mtodo 316 getMinutes(), mtodo 317 getMonth(), mtodo 317 GetNetworkConnectionName, comando 212 GetNetworkConnectStatus, comando 213 GetNetworkGeneration, comando 214 GetNetworkName, comando 214 GetNetworkRequestStatus, comando 215 GetNetworkStatus, comando 216 getNewTextFormat(), mtodo 633 getNextHighestDepth(), mtodo 444 getPan(), mtodo 577 GetPlatform, comando 217 GetPowerSource, comando 218 getProgress(), mtodo 505 getProperty, funcin 31 getRGB(), mtodo 302 getSeconds(), mtodo 318 GetSignalLevel, comando 218 getSize(), mtodo 567 GetSoftKeyLocation, comando 219 getSWFVersion(), mtodo 446 getTextExtent(), mtodo 674 getTextFormat(), mtodo 634 getTime(), mtodo 318 getTimer, funcin 32 getTimezoneOffset(), mtodo 319 GetTotalPlayerMemory, comando 219 getTransform(), mtodo 302, 578 getURL(), mtodo 446 getURL, funcin 32 getUTCDate(), mtodo 319 getUTCDay(), mtodo 320 getUTCFullYear(), mtodo 321 getUTCHours(), mtodo 321 getUTCMilliseconds(), mtodo 322 getUTCMinutes(), mtodo 322 getUTCMonth(), mtodo 323 getUTCSeconds(), mtodo 323 getUTCYear(), mtodo 324 getVersion, funcin 34 getVolume(), mtodo 580 GetVolumeLevel, comando 220 getYear(), mtodo 324 globalToLocal(), mtodo 448 gotoAndPlay(), mtodo 450

gotoAndPlay, funcin 35 gotoAndStop(), mtodo 451 gotoAndStop, funcin 36

H
has4WayKeyAS, propiedad 286 hasAccessibility, propiedad 286 hasAudio, propiedad 286 hasAudioEncoder, propiedad 287 hasChildNodes(), mtodo 719 hasCMIDI, propiedad 287 hasCompoundSound, propiedad 287 hasDataLoading, propiedad 288 hasEmail, propiedad 288 hasEmbeddedVideo, propiedad 289 hasMappableSoftKeys, propiedad 289 hasMFI, propiedad 289 hasMIDI, propiedad 290 hasMMS, propiedad 290 hasMouse, propiedad 290 hasMP3, propiedad 291 hasOwnProperty(), mtodo 528 hasPrinting, propiedad 291 hasQWERTYKeyboard, propiedad 291 hasScreenBroadcast, propiedad 292 hasScreenPlayback, propiedad 292 hasSharedObjects, propiedad 292 hasSMAF, propiedad 293 hasSMS, propiedad 293 hasStreamingAudio, propiedad 293 hasStreamingVideo, propiedad 294 hasStylus, propiedad 294 hasVideoEncoder, propiedad 294 hasXMLSocket, propiedad 295 height, propiedad 597 hitArea, propiedad 453 hitTest(), mtodo 454 HOME, propiedad 362 hscroll, propiedad 636 html, propiedad 637 htmlText, propiedad 637

I
id3, propiedad 582 if, sentencia 182 ifFrameLoaded, funcin 37 ignoreWhite, propiedad 698

752

ndice alfabtico

igualdad (eq) (cadenas), operador 130 imageMIMETypes, propiedad 295 implements, sentencia 183 import, sentencia 183 indent, propiedad 677 indexOf(), mtodo 606 Infinity, constante 10 INSERT, propiedad 362 insertBefore(), mtodo 720 instanceof, operador 137 int, funcin 37 interface, sentencia 184 intrinsic, sentencia 186 isDebugger, propiedad 295 isDown(), mtodo 363 isFinite, funcin 38 isNaN, funcin 38 isPropertyEnumerable(), mtodo 529 isPrototypeOf(), mtodo 530 italic, propiedad 677

SPACE, propiedad 369 TAB, propiedad 370 UP, propiedad 370 Key, clase 351 onKeyDown, evento 364 onKeyUp, evento 365

L
language, propiedad 296 lastChild, propiedad 720 lastIndexOf(), mtodo 607 le operador menor o igual que (cadenas) 139 leading, propiedad 678 LEFT, propiedad 363 leftMargin, propiedad 678 length, funcin 39 length, propiedad 229, 236, 608, 638 lineStyle(), mtodo 455 lineTo(), mtodo 456 LN10, propiedad 396 LN2, propiedad 396 load(), mtodo 378, 700 loadClip(), mtodo 506 loaded, propiedad 379, 701 loadMovie(), mtodo 457 loadMovie, funcin 40 loadMovieNum, funcin 42 loadPolicyFile(), mtodo 546 loadSound(), mtodo 584 loadVariables(), mtodo 459 loadVariables, funcin 43 loadVariablesNum, funcin 45 LoadVars addRequestHeader(), mtodo 373 contentType, propiedad 375 decode(), mtodo 375 getBytesLoaded(), mtodo 376 getBytesTotal(), mtodo 377 load(), mtodo 378 loaded, propiedad 379 LoadVars(), constructor 380 send(), mtodo 383 sendAndLoad(), mtodo 384 toString(), mtodo 386 LoadVars(), constructor 380 LoadVars, clase 371 onData, evento 380 onLoad, evento 381

J
join(), mtodo 235

K
Key _listeners, propiedad 364 addListener(), mtodo 354 BACKSPACE, propiedad 355 CAPSLOCK, propiedad 355 CONTROL, propiedad 355 DELETEKEY, propiedad 356 DOWN, propiedad 357 END, propiedad 357 ENTER, propiedad 358 ESCAPE, propiedad 359 getAscii(), mtodo 359 getCode(), mtodo 360 HOME, propiedad 362 INSERT, propiedad 362 isDown(), mtodo 363 LEFT, propiedad 363 PGDN, propiedad 366 PGUP, propiedad 366 removeListener(), mtodo 366 RIGHT, propiedad 367 SHIFT, propiedad 368

ndice alfabtico

753

localFileReadDisable, propiedad 297 localToGlobal(), mtodo 461 log(), mtodo 396 LOG10E, propiedad 397 LOG2E, propiedad 397 lt operador menor que (cadenas) 138

M
Math abs(), mtodo 390 acos(), mtodo 390 asin(), mtodo 391 atan(), mtodo 391 atan2(), mtodo 392 ceil(), mtodo 393 cos(), mtodo 393 E, propiedad 394 exp(), mtodo 395 floor(), mtodo 395 LN10, propiedad 396 LN2, propiedad 396 log(), mtodo 396 LOG10E, propiedad 397 LOG2E, propiedad 397 max(), mtodo 397 min(), mtodo 398 PI, propiedad 399 pow(), mtodo 399 random(), mtodo 400 round(), mtodo 401 sin(), mtodo 401 sqrt(), mtodo 402 SQRT1_2, propiedad 403 SQRT2, propiedad 404 tan(), mtodo 404 Math, clase 387 max(), mtodo 397 MAX_VALUE, propiedad 519 maxChars, propiedad 638 maxhscroll, propiedad 638 maxscroll, propiedad 90, 639 mbchr, funcin 47 mblength, funcin 47 mbord, funcin 48 mbsubstring, funcin 48 message, propiedad 340 MIMETypes, propiedad 298 min(), mtodo 398

MIN_VALUE, propiedad 519 Mouse addListener(), mtodo 406 removeListener(), mtodo 411 Mouse, clase 405 onMouseDown, evento 407 onMouseMove, evento 409 onMouseUp, evento 410 moveTo(), mtodo 466 MovieClip _alpha, propiedad 421 _currentframe, propiedad 431 _droptarget, propiedad 433 _focusrect, propiedad 437 _framesloaded, propiedad 439 _height, propiedad 452 _highquality, propiedad 453 _lockroot, propiedad 463 _name, propiedad 466 _parent, propiedad 479 _quality, propiedad 481 _rotation, propiedad 484 _soundbuftime, propiedad 485 _target, propiedad 492 _totalframes, propiedad 493 _url, propiedad 495 _visible, propiedad 495 _width, propiedad 496 _x, propiedad 497 _xmouse, propiedad 497 _xscale, propiedad 498 _y, propiedad 499 _ymouse, propiedad 499 _yscale, propiedad 500 attachMovie(), mtodo 422 beginFill(), mtodo 423 beginGradientFill(), mtodo 424 clear(), mtodo 427 createEmptyMovieClip(), mtodo 428 createTextField(), mtodo 429 curveTo(), mtodo 431 duplicateMovieClip(), mtodo 434 enabled, propiedad 436 endFill(), mtodo 436 focusEnabled, propiedad 437 getBounds(), mtodo 439 getBytesLoaded(), mtodo 441 getBytesTotal(), mtodo 442 getDepth(), mtodo 443 getInstanceAtDepth(), mtodo 443

754

ndice alfabtico

getNextHighestDepth(), mtodo 444 getSWFVersion(), mtodo 446 getURL(), mtodo 446 globalToLocal(), mtodo 448 gotoAndPlay(), mtodo 450 gotoAndStop(), mtodo 451 hitArea, propiedad 453 hitTest(), mtodo 454 lineStyle(), mtodo 455 lineTo(), mtodo 456 loadMovie(), mtodo 457 loadVariables(), mtodo 459 localToGlobal(), mtodo 461 moveTo(), mtodo 466 nextFrame(), mtodo 467 play(), mtodo 480 prevFrame(), mtodo 480 removeMovieClip(), mtodo 482 setMask(), mtodo 484 startDrag(), mtodo 486 stop(), mtodo 487 stopDrag(), mtodo 487 swapDepths(), mtodo 488 tabChildren, propiedad 489 tabEnabled, propiedad 490 tabIndex, propiedad 491 trackAsMenu, propiedad 493 unloadMovie(), mtodo 494 MovieClip, clase 413 onData, evento 467 onDragOut, evento 469 onDragOver, evento 469 onEnterFrame, evento 470 onKeyDown, evento 470 onKeyUp, evento 471 onKillFocus, evento 472 onLoad, evento 473 onMouseDown, evento 474 onMouseMove, evento 475 onMouseUp, evento 475 onPress, evento 476 onRelease, evento 476 onReleaseOutside, evento 476 onRollOut, evento 477 onRollOver, evento 477 onSetFocus, evento 478 onUnload, evento 479 MovieClipLoader addListener(), mtodo 503 getProgress(), mtodo 505

loadClip(), mtodo 506 MovieClipLoader(), constructor 508 removeListener(), mtodo 515 unloadClip(), mtodo 516 MovieClipLoader(), constructor 508 MovieClipLoader, clase 501 onLoadComplete, evento 508 onLoadError, evento 510 onLoadInit, evento 511 onLoadProgress, evento 513 onLoadStart, evento 514 multiline, propiedad 639

N
name, propiedad 341 NaN, constante 10 NaN, propiedad 520 NEGATIVE_INFINITY, propiedad 520 new, operador 148 newline, constante 11 nextFrame(), mtodo 467 nextFrame, funcin 49 nextScene, funcin 49 nextSibling, propiedad 722 nodeName, propiedad 722 nodeType, propiedad 724 nodeValue, propiedad 725 NOT lgico (not), operador 143 null, constante 11 Number MAX_VALUE, propiedad 519 MIN_VALUE, propiedad 519 NaN, propiedad 520 NEGATIVE_INFINITY, propiedad 520 Number(), constructor 520 POSITIVE_INFINITY, propiedad 521 toString(), mtodo 521 valueOf(), mtodo 522 Number(), constructor 520 Number, clase 517 Number, funcin 50 NUMERIC, propiedad 237

O
Object __proto__, propiedad 530 __resolve, propiedad 533

ndice alfabtico

755

addProperty(), mtodo 524 constructor, propiedad 528 hasOwnProperty(), mtodo 528 isPropertyEnumerable(), mtodo 529 isPrototypeOf(), mtodo 530 Object(), constructor 530 prototype, propiedad 531 registerClass(), mtodo 532 toString(), mtodo 537 unwatch(), mtodo 538 valueOf(), mtodo 539 watch(), mtodo 540 Object(), constructor 530 Object, clase 523 Object, funcin 51 onChanged, evento 640 onClipEvent, controlador 54 onClose, evento 734 onConnect, evento 734 onData, evento 380, 467, 702, 735 onDragOut, evento 261, 469 onDragOver, evento 262, 469 onEnterFrame, evento 470 onID3, evento 585 onKeyDown, evento 263, 364, 470 onKeyUp, evento 264, 365, 471 onKillFocus, evento 265, 472, 641 onLoad, evento 381, 473, 586, 703 onLoadComplete, evento 508 onLoadError, evento 510 onLoadInit, evento 511 onLoadProgress, evento 513 onLoadStart, evento 514 onMouseDown, evento 407, 474 onMouseMove, evento 409, 475 onMouseUp, evento 410, 475 onPress, evento 265, 476 onRelease, evento 266, 476 onReleaseOutside, evento 266, 476 onResize, evento 597 onRollOut, evento 266, 477 onRollOver, evento 267, 477 onScroller, evento 642 onSetFocus, evento 267, 478, 552, 644 onSoundComplete, evento 587 onStatus, evento 568, 617, 686 onUnload, evento 479 onXML, evento 736 Operadores 96 OR en modo bit (|), operador 113

OR lgico (or), operador 145 ord, funcin 55 os, propiedad 298

P
parentNode, propiedad 726 parseFloat, funcin 56 parseInt, funcin 57 parseXML(), mtodo 704 password, propiedad 645 pause(), mtodo 687 PGDN, propiedad 366 PGUP, propiedad 366 PI, propiedad 399 play(), mtodo 480, 687 play, funcin 58 pop(), mtodo 238 position, propiedad 587 POSITIVE_INFINITY, propiedad 521 pow(), mtodo 399 prevFrame(), mtodo 480 prevFrame, funcin 58 previousSibling, propiedad 727 prevScene, funcin 59 private, sentencia 188 Propiedades globales 75 prototype, propiedad 531 public, sentencia 189 push(), mtodo 238

Q
Quit, comando 220

R
random(), mtodo 400 random, funcin 59 registerClass(), mtodo 532 removeListener(), mtodo 366, 411, 515, 553, 570, 598, 647 removeMovieClip(), mtodo 482 removeMovieClip, funcin 60 removeNode(), mtodo 728 removeTextField(), mtodo 648 replaceSel(), mtodo 648 replaceText(), mtodo 649 ResetSoftKeys, comando 221

756

ndice alfabtico

resume(), mtodo 688 return, sentencia 190 RETURNINDEXEDARRAY, propiedad 239 reverse(), mtodo 239 RIGHT, propiedad 367 rightMargin, propiedad 679 round(), mtodo 401

S
scaleMode, propiedad 599 screenOrientation, propiedad 298 screenResolutionX, propiedad 299 screenResolutionY, propiedad 299 scroll, propiedad 92, 651 security, clase 542 seguridad allowDomain(), mtodo 543 allowInsecureDomain(), mtodo 545 loadPolicyFile(), mtodo 546 selectable, propiedad 652 Selection addListener(), mtodo 550 getFocus(), mtodo 551 removeListener(), mtodo 553 setFocus(), mtodo 554 setSelection(), mtodo 556 Selection, clase 548 onSetFocus, evento 552 send(), mtodo 383, 704, 737 sendAndLoad(), mtodo 384, 705 Sentencias 160 set variable, sentencia 192 set, sentencia 191 setDate(), mtodo 325 setFocus(), mtodo 554 SetFocusRectColor, comando 221 setFullYear(), mtodo 325 setHours(), mtodo 326 SetInputTextType, comando 222 setInterval, funcin 61 setMask(), mtodo 484 setMilliseconds(), mtodo 327 setMinutes(), mtodo 327 setMonth(), mtodo 328 setNewTextFormat(), mtodo 653 setPan(), mtodo 588 setProperty, funcin 64 setRGB(), mtodo 303

setSeconds(), mtodo 329 setSelection(), mtodo 556 SetSoftKeys, comando 223 setTextFormat(), mtodo 654 setTime(), mtodo 329 setTransform(), mtodo 304, 588 setUTCDate(), mtodo 330 setUTCFullYear(), mtodo 331 setUTCHours(), mtodo 332 setUTCMilliseconds(), mtodo 333 setUTCMinutes(), mtodo 333 setUTCMonth(), mtodo 334 setUTCSeconds(), mtodo 335 setVolume(), mtodo 591 setYear(), mtodo 335 SharedObject addListener(), mtodo 561 clear(), mtodo 561 data, propiedad 562 flush(), mtodo 564 getLocal(), mtodo 565 getMaxSize(), mtodo 567 getSize(), mtodo 567 removeListener(), mtodo 570 SharedObject, clase 557 onStatus, evento 568 shift(), mtodo 239 SHIFT, propiedad 368 sin(), mtodo 401 size, propiedad 679 slice(), mtodo 240, 608 SOFT1, propiedad 345 SOFT10, propiedad 345 SOFT11, propiedad 346 SOFT12, propiedad 346 SOFT2, propiedad 346 SOFT3, propiedad 346 SOFT4, propiedad 346 SOFT5, propiedad 346 SOFT6, propiedad 346 SOFT7, propiedad 347 SOFT8, propiedad 347 SOFT9, propiedad 347 softKeyCount, propiedad 299 sort(), mtodo 241 sortOn(), mtodo 244 Sound attachSound(), mtodo 573 duration, propiedad 574 getBytesLoaded(), mtodo 576

ndice alfabtico

757

getBytesTotal(), mtodo 577 getPan(), mtodo 577 getTransform(), mtodo 578 getVolume(), mtodo 580 id3, propiedad 582 loadSound(), mtodo 584 position, propiedad 587 setPan(), mtodo 588 setTransform(), mtodo 588 setVolume(), mtodo 591 Sound(), constructor 591 start(), mtodo 592 stop(), mtodo 593 Sound(), constructor 591 Sound, clase 571 onID3, evento 585 onLoad, evento 586 onSoundComplete, evento 587 SPACE, propiedad 369 splice(), mtodo 248 split(), mtodo 610 sqrt(), mtodo 402 SQRT1_2, propiedad 403 SQRT2, propiedad 404 Stage addListener(), mtodo 595 align, propiedad 596 height, propiedad 597 removeListener(), mtodo 598 scaleMode, propiedad 599 width, propiedad 600 Stage, clase 593 onResize, evento 597 start(), mtodo 592 startDrag(), mtodo 486 startDrag, funcin 65 StartVibrate, comando 225 static, sentencia 194 status, propiedad 707 stop(), mtodo 487, 593, 688 stop, funcin 66 stopAllSounds, funcin 66 stopDrag(), mtodo 487 stopDrag, funcin 67 StopVibrate, comando 226 String charAt(), mtodo 603 charCodeAt(), mtodo 604 concat(), mtodo 605 fromCharCode(), mtodo 605

indexOf(), mtodo 606 lastIndexOf(), mtodo 607 length, propiedad 608 slice(), mtodo 608 split(), mtodo 610 String(), constructor 611 substr(), mtodo 612 substring(), mtodo 613 toLowerCase(), mtodo 614 toString(), mtodo 614 toUpperCase(), mtodo 615 valueOf(), mtodo 616 String(), constructor 611 String, clase 601 String, funcin 67 substr(), mtodo 612 substring(), mtodo 613 substring, funcin 69 suma de concatenacin (cadenas), operador 123 super, sentencia 195 swapDepths(), mtodo 488 switch, sentencia 196 System useCodepage, propiedad 618 System, clase 616 onStatus, evento 617

T
TAB, propiedad 370 tabChildren, propiedad 489 tabEnabled, propiedad 270, 490, 656 tabIndex, propiedad 271, 491, 657 tabStops, propiedad 680 tan(), mtodo 404 target, propiedad 680 targetPath, funcin 69 tellTarget, funcin 70 text, propiedad 659 textColor, propiedad 659 TextField _alpha, propiedad 626 _height, propiedad 635 _highquality, propiedad 635 _name, propiedad 640 _parent, propiedad 644 _quality, propiedad 646 _rotation, propiedad 650 _soundbuftime, propiedad 656

758

ndice alfabtico

_target, propiedad 658 _url, propiedad 662 _visible, propiedad 663 _width, propiedad 663 _x, propiedad 665 _xmouse, propiedad 665 _xscale, propiedad 666 _y, propiedad 667 _ymouse, propiedad 667 _yscale, propiedad 668 addListener(), mtodo 624 autoSize, propiedad 626 background, propiedad 628 backgroundColor, propiedad 629 border, propiedad 629 borderColor, propiedad 630 bottomScroll, propiedad 630 condenseWhite, propiedad 631 embedFonts, propiedad 632 getDepth(), mtodo 632 getNewTextFormat(), mtodo 633 getTextFormat(), mtodo 634 hscroll, propiedad 636 html, propiedad 637 htmlText, propiedad 637 length, propiedad 638 maxChars, propiedad 638 maxhscroll, propiedad 638 maxscroll, propiedad 639 multiline, propiedad 639 password, propiedad 645 removeListener(), mtodo 647 removeTextField(), mtodo 648 replaceSel(), mtodo 648 replaceText(), mtodo 649 scroll, propiedad 651 selectable, propiedad 652 setNewTextFormat(), mtodo 653 setTextFormat(), mtodo 654 tabEnabled, propiedad 656 tabIndex, propiedad 657 text, propiedad 659 textColor, propiedad 659 textHeight, propiedad 660 textWidth, propiedad 661 type, propiedad 661 variable, propiedad 662 wordWrap, propiedad 664 TextField, clase 619 onChanged, evento 640

onKillFocus, evento 641 onScroller, evento 642 onSetFocus, evento 644 TextFormat align, propiedad 671 blockIndent, propiedad 671 bold, propiedad 672 bullet, propiedad 672 color, propiedad 673 font, propiedad 673 getTextExtent(), mtodo 674 indent, propiedad 677 italic, propiedad 677 leading, propiedad 678 leftMargin, propiedad 678 rightMargin, propiedad 679 size, propiedad 679 tabStops, propiedad 680 target, propiedad 680 TextFormat(), constructor 681 underline, propiedad 683 url, propiedad 683 TextFormat(), constructor 681 textHeight, propiedad 660 textWidth, propiedad 661 this, propiedad 94 throw, sentencia 197 toggleHighQuality, funcin 71 toLowerCase(), mtodo 614 toString(), mtodo 249, 252, 336, 342, 386, 521, 537, 614, 728 toUpperCase(), mtodo 615 trace, funcin 72 trackAsMenu, propiedad 273, 493 true, constante 12 try..catch..finally, sentencia 198 type, propiedad 661 typeof, operador 159

U
undefined, constante 12 underline, propiedad 683 unescape, funcin 73 UNIQUESORT, propiedad 250 unloadClip(), mtodo 516 unloadMovie(), mtodo 494 unloadMovie, funcin 73 unloadMovieNum, funcin 74

ndice alfabtico

759

unshift(), mtodo 250 unwatch(), mtodo 538 UP, propiedad 370 url, propiedad 683 useCodepage, propiedad 618 UTC(), mtodo 336

V
valueOf(), mtodo 253, 337, 522, 539, 616 var, sentencia 202 variable, propiedad 662 version, propiedad 299 Video close(), mtodo 686 pause(), mtodo 687 play(), mtodo 687 resume(), mtodo 688 stop(), mtodo 688 Video, clase 684 onStatus, evento 686 videoMIMETypes, propiedad 300 void, operador 159

W
watch(), mtodo 540 while, sentencia 203 width, propiedad 600 with, sentencia 204 wordWrap, propiedad 664

X
XML addRequestHeader(), mtodo 692 contentType, propiedad 693 createElement(), mtodo 694 createTextNode(), mtodo 695 docTypeDecl, propiedad 696 getBytesLoaded(), mtodo 697 getBytesTotal(), mtodo 698 ignoreWhite, propiedad 698 load(), mtodo 700 loaded, propiedad 701 parseXML(), mtodo 704 send(), mtodo 704 sendAndLoad(), mtodo 705 status, propiedad 707

XML(), constructor 709 xmlDecl, propiedad 709 XML(), constructor 709 XML, clase 689 onData, evento 702 onLoad, evento 703 xmlDecl, propiedad 709 XMLNode appendChild(), mtodo 713 attributes, propiedad 714 childNodes, propiedad 715 cloneNode(), mtodo 716 firstChild, propiedad 718 hasChildNodes(), mtodo 719 insertBefore(), mtodo 720 lastChild, propiedad 720 nextSibling, propiedad 722 nodeName, propiedad 722 nodeType, propiedad 724 nodeValue, propiedad 725 parentNode, propiedad 726 previousSibling, propiedad 727 removeNode(), mtodo 728 toString(), mtodo 728 XMLNode, clase 711 XMLSocket close(), mtodo 732 connect(), mtodo 732 send(), mtodo 737 XMLSocket(), constructor 738 XMLSocket(), constructor 738 XMLSocket, clase 729 onClose, evento 734 onConnect, evento 734 onData, evento 735 onXML, evento 736

760

ndice alfabtico

Das könnte Ihnen auch gefallen