Trabajo con la API JavaScript



Con la API JavaScript de Flash se pueden escribir scripts para realizar diversas acciones en el entorno de edición de Flash (es decir, mientras el usuario tiene abierto el programa Flash). Esta funcionalidad es diferente del lenguaje ActionScript, que permite escribir scripts para realizar acciones en el entorno de Flash Player (es decir, mientras se reproduce un archivo SWF), y diferente también de los comandos JavaScript, que se pueden utilizar en las páginas mostradas en un navegador Web.

La API JavaScript permite escribir scripts para aplicaciones Flash que ayudan a agilizar el proceso de edición. Por ejemplo, se pueden escribir scripts para automatizar tareas repetitivas o añadir herramientas personalizadas al panel Herramientas.

La API JavaScript de Flash es similar a la API JavaScript de Adobe® Dreamweaver® y Adobe® Fireworks® (que, a su vez, se diseñaron basándose en la API JavaScript de Netscape). La API JavaScript de Flash se basa en un modelo de objetos de documento (DOM o Document Object Model), que permite acceder a los documentos de Flash empleando objetos JavaScript. La API JavaScript de Flash incluye todos los elementos de la API JavaScript de Netscape, además del DOM de Flash. En este documento se describen estos objetos añadidos y sus métodos y propiedades. Puede utilizar cualquiera de los elementos del lenguaje JavaScript nativo en un script de Flash, pero sólo tendrán efecto los elementos que tengan sentido en el contexto de un documento de Flash.

La API JavaScript también contiene métodos que permiten implementar extensibilidad utilizando una combinación de código JavaScript y C personalizado. Para más información, consulte Extensibilidad de nivel C.

El intérprete de JavaScript en Flash es el motor Mozilla SpiderMonkey, versión 1.5, disponible en la Web en www.mozilla.org/js/spidermonkey/. SpiderMonkey es una de las dos implementaciones de referencia del lenguaje JavaScript desarrollado por Mozilla.org. Es el mismo motor que se incorpora al navegador de Mozilla.

SpiderMonkey implementa el lenguaje JavaScript básico que se define en la especificación ECMAScript (ECMA-262) edición 3 y es totalmente compatible con la especificación. Sólo son incompatibles los objetos host específicos del navegador que no forman parte de la especificación ECMA-262. Del mismo modo, un gran número de guías de referencia de JavaScript distinguen entre JavaScript básico y de cliente (relacionado con el navegador). Sólo JavaScript básico se aplica al intérprete de JavaScript de Flash.

Creación de archivos JSFL

Puede utilizar Adobe Flash CS4 Professional o el editor de texto que prefiera para escribir y editar archivos JavaScript de Flash (JSFL). Si utiliza Flash, estos archivos usan la extensión .jsfl de forma predeterminada. Para escribir un script, seleccione Archivo > Nuevo > Archivo JavaScript de Flash.

También puede crear un archivo JSFL mediante los comandos del panel Historial. Seguidamente, haga clic en el botón Guardar del panel Historial o seleccione Guardar como comando en el menú del panel. El archivo de comando (JSFL) se guardará en la carpeta de comandos (consulte Almacenamiento de archivos JSFL). A continuación, podrá abrir el archivo y editarlo de la misma forma que cualquier otro archivo de script.

El panel Historial ofrece también otras opciones que resultan muy útiles. Se pueden copiar los comandos seleccionados en el portapapeles, así como ver los comandos JavaScript que se generan mientras se está trabajando con Flash.

Para copiar comandos del panel Historial en el portapapeles:

  1. Seleccione uno o varios comandos en el panel Historial.

  2. Realice uno de los siguientes pasos:

    • Haga clic en el botón Copiar.

    • Seleccione Copiar pasos en el menú del panel.

Para ver los comandos JavaScript en el panel Historial:

  • Seleccione Ver > JavaScript en el menú del panel.

Almacenamiento de archivos JSFL

Puede tener disponibles scripts JSFL dentro del entorno de edición de Flash; para ello, debe almacenarlos en una de las distintas carpetas dentro de la carpeta Configuration. De forma predeterminada, la carpeta Configuration se encuentra en la siguiente ubicación:

  • Windows® Vista™:

    unidad de arranque\Users\nombre de usuario\Local Settings\Application Data\Adobe\Flash CS4\idioma\Configuration\

  • Windows XP:

    unidad de arranque\Documents and Settings\nombre de usuario\Local Settings\Application Data\Adobe\Flash CS4\idioma\Configuration\

  • Mac OS® X:

    Macintosh HD/Usuarios/nombre de usuario/Librería/Application Support/Adobe/Flash CS4/idioma/Configuration/

Para determinar la ubicación de la carpeta Configuration, utilice fl.configDirectory o fl.configURI, como se muestra en el siguiente ejemplo:

// store directory to a variable  
var configDir = fl.configDirectory; 
// display directory in the Output panel 
fl.trace(fl.configDirectory);

En la carpeta Configuration, las siguientes carpetas pueden contener scripts accesibles desde el entorno de edición: Behaviors (para que la interfaz de usuario admita comportamientos); Commands (para los scripts que aparecen en el menú Comandos); JavaScript (para los scripts utilizados por el asistente de script para llenar los controles de la interfaz de usuario); Tools (para herramientas ampliables en el panel Herramientas) y WindowSWF (para paneles que aparecen en el menú Ventana). Este documento se centra en los scripts utilizados para comandos y herramientas.

Si se edita un script en la carpeta Commands, el nuevo script quedará disponible de inmediato en Flash. Si se edita un script para una herramienta ampliable, se debe cerrar y reiniciar Flash, o bien utilizar el comando fl.reloadTools(). Sin embargo, si se ha utilizado un script para añadir una herramienta ampliable al panel Herramientas y se edita después el script, se deberá quitar para volver a añadir la herramienta al panel Herramientas, o bien cerrar y reiniciar Flash para que la herramienta revisada quede disponible.

Puede guardar los archivos de comandos y herramientas en dos lugares en los que se encontrarán accesibles en el entorno de edición.

  • Para los scripts que aparecen como elementos en el menú Comandos, guarde el archivo JSFL en la carpeta Commands en la siguiente ubicación:

    Sistema operativo

    Ubicación

    Windows Vista

    unidad de arranque\Users\nombre de usuario\Local Settings\Application Data\Adobe\Flash CS4\idioma\Configuration\Commands

    Windows XP

    unidad de arranque\Documents and Settings\usuario\Local Settings\Application Data\Adobe\Flash CS4\idioma\Configuration\Commands

    Mac OS X

    Macintosh HD/Usuarios/nombre de usuario/Librería/Application Support/Adobe/Flash CS4/idioma/Configuration/Commands

  • Para los scripts que aparecen como herramientas ampliables en el panel Herramienta, guarde el archivo JSFL en la carpeta Tools en la ubicación siguiente:

    Sistema operativo

    Ubicación

    Windows Vista

    unidad de arranque\Users\nombre de usuario\Local Settings\Application Data\Adobe\Flash CS4\idioma\Configuration\Tools

    Windows XP

    unidad de arranque\Documents and Settings\usuario\Local Settings\Application Data\Adobe\Flash CS4\idioma\Configuration\Tools

    Mac OS X

    Macintosh HD/Usuarios/nombre de usuario/Librería/Application Support/Adobe/Flash CS4/idioma/Configuration/Tools

Si un archivo JSFL va acompañado de otros archivos, por ejemplo, de archivos XML, deben almacenarse en el mismo directorio que el archivo JSFL.

Ejecución de scripts

Existen varias formas de ejecutar scripts. En esta sección se explican las más frecuentes.

Para ejecutar un script que esté editando o visualizando en ese momento:

  • Haga clic con el botón derecho (o clic con la tecla Comando pulsada en Macintosh) y seleccione Ejecutar script.

  • Haga clic en el icono Ejecutar script de la barra de herramientas de la ventana Script.

Esta opción permite ejecutar un script antes de guardarlo. También permite ejecutar un script incluso si no hay ningún archivo FLA abierto.

Para ejecutar un script que se encuentra en la carpeta Commands, siga uno de los estos procedimientos:

  • En el entorno de edición, seleccione Comandos > Nombre de script.

  • Utilice el método abreviado de teclado que haya asignado al script. Para asignar un método abreviado, utilice Edición > Métodos abreviados de teclado y seleccione Menú de comandos de dibujo en el menú desplegable. Expanda el nodo Comandos en el árbol de menús para ver una lista de los scripts disponibles.

Para ejecutar un script de comando que no se encuentra en la carpeta Commands, realice uno de los siguientes pasos:

  • En el entorno de edición, seleccione Comandos > Ejecutar comando y, a continuación, seleccione el script que desea ejecutar.

  • Dentro del script, utilice el comando fl.runScript().

  • En el sistema de archivos, haga doble clic en el archivo de script.

Para añadir al panel Herramientas una herramienta implementada en un archivo JSFL:

  1. Copie en la carpeta de herramientas el archivo JSFL de la herramienta y los demás archivos asociados (consulte Almacenamiento de archivos JSFL).

  2. Seleccione Edición > Personalizar panel de herramientas (Windows) o Flash > Personalizar panel de herramientas (Macintosh).

  3. Añada la herramienta a la lista de herramientas disponibles.

  4. Haga clic en Aceptar.

Puede añadir comandos individuales de la API JavaScript a los archivos de ActionScript utilizando la función MMExecute(), que se describe en Referencia del lenguaje y componentes ActionScript 3.0. Sin embargo, la función MMExecute() sólo tiene efecto cuando se utiliza en el contexto de un elemento de la interfaz de usuario personalizada, como un inspector de propiedades de componentes o un panel SWF en el entorno de edición. Aunque se llamen desde ActionScript, los comandos API JavaScript no tienen efecto en Flash Player ni fuera del entorno de edición.

Para enviar un comando desde un script de ActionScript:

  • Utilice la siguiente sintaxis (puede concatenar varios comandos en una cadena):

    MMExecute(Javascript command string);

    También se puede ejecutar un script desde la línea de comandos.

Para ejecutar un script desde la línea de comandos de Windows:

  • Utilice la siguiente sintaxis (añada información de la ruta según sea necesario):

    "flash.exe" myTestFile.jsfl

Para ejecutar un script desde la aplicación "Terminal" de Macintosh:

  • Utilice la siguiente sintaxis (añada información de la ruta según sea necesario):

    osascript -e 'tell application "flash" to open alias "Mac OS X:Users:user:myTestFile.jsfl" '

    El comando osascript también puede ejecutar AppleScript en un archivo. Por ejemplo, podría incluir el siguiente texto en un archivo denominado myScript:

    tell application "flash" 
    open alias "Mac OS X:Users:user:myTestFile.jsfl" 
    end tell

    A continuación, para ejecutar el script, puede utilizar este comando:

    osascript myScript