Compiladores de ActionScript

Antes de que el código ActionScript y MXML se pueda incluir en una aplicación de AIR, se debe compilar. Si se utiliza un entorno de desarrollo integrado (Integrated Development Environment, IDE) como, por ejemplo, Adobe Flash Builder o Adobe Flash Professional, el IDE administra la compilación en un segundo plano. Sin embargo, también se pueden invocar los compiladores de ActionScript desde la línea de comandos para crear archivos SWF cuando no se utiliza un IDE o cuando se emplea un script de creación.

Información sobre las herramientas de la línea de comandos de AIR en el SDK de Flex

Cada una de las herramientas de la línea de comandos que se utiliza para crear una aplicación de Adobe AIR llama a la herramienta correspondiente utilizada para crear aplicaciones de

  • amxmlc llama a mxmlc para compilar clase de la aplicación.

  • acompc llama a compc para compilar clases de componente y biblioteca.

  • aasdoc llama a asdoc para generar archivos de documentación a partir de comentarios de código de origen.

La única diferencia entre las versiones de las utilidades de Flex y AIR radica en que las versiones de AIR cargan opciones de configuración desde el archivo air-config.xml en lugar del archivo flex-config.xml.

Las herramientas del SDK de Flex y las opciones de la línea de comandos se describen detalladamente en la documentación de Flex (en inglés). Las herramientas del SDK de Flex se describen aquí en un nivel básico como ayuda en su introducción y para destacar las diferencias existentes entre la creación de aplicaciones de Flex y la creación de aplicaciones de AIR.

Configuración del compilador

Generalmente se especifican opciones de compilación tanto en la línea de comandos como con uno o varios archivos de configuración. El archivo de configuración del SDK de Flex global contiene valores predeterminados que se utilizan siempre que se ejecutan los compiladores. Este archivo se puede editar para adaptarse a su entorno de desarrollo. Existen dos archivos de configuración de Flex globales ubicados en el directorio frameworks de la instalación del SDK de Flex. El archivo air-config.xml se usa cuando se ejecuta el compilador amxmlc. Este archivo configura el compilador para AIR incluyendo las bibliotecas de AIR. El archivo flex-config.xml se utiliza cuando se ejecuta mxmlc.

Los valores de configuración predeterminados resultan adecuados para detectar el modo de funcionamiento de Flex y AIR, pero cuando lleve a cabo proyectos de envergadura, analice más detalladamente las opciones disponibles. Se pueden proporcionar valores específicos del proyecto para las opciones del compilador en un archivo de configuración local que tenga prioridad sobre los valores globales para un proyecto determinado.

Nota: no se utilizan opciones de compilación específicamente para aplicaciones de AIR, pero se debe hacer referencia a las bibliotecas de AIR al compilar una aplicación de AIR. A estas bibliotecas se les suele hacer referencia en un archivo de configuración de nivel de proyecto, en un archivo para una herramienta de creación como Ant o directamente en la línea de comandos.

Compilación de archivos de origen MXML y ActionScript para AIR

Puede compilar los componentes Adobe® ActionScript® 3.0 y MXML de su aplicación de AIR con el compilador de la línea de comandos MXML (amxmlc). (No es necesario compilar aplicaciones basadas en HTML. Para compilar un archivo SWF en Flash Professional, simplemente publique la película en un archivo SWF.)

El patrón de línea de comandos básico para utilizar amxmlc es:

amxmlc [compiler options] -- MyAIRApp.mxml

siendo [compiler options] las opciones de la línea de comandos que se utilizan para compilar la aplicación de AIR.

El comando amxmlc invoca al compilador de Flex estándar mxmlc con un parámetro adicional, +configname=air. Este parámetro indica al compilador que utilice el archivo air-config.xml en lugar de flex-config.xml. Por lo demás, el uso de amxmlc es idéntico al uso de mxmlc.

El compilador carga el archivo de configuración air-config.xml especificando las bibliotecas de AIR y Flex que se suelen necesitar al compilar una aplicación de AIR. También se puede utilizar un archivo de configuración local a nivel de proyecto para suprimir o añadir opciones adicionales a la configuración global. En general la forma más fácil de crear un archivo de configuración local es mediante modificación de una copia de la versión global. El archivo local puede cargarse con la opción -load-config:

-load-config=project-config.xml Suprime las opciones globales.

-load-config+=project-config.xml Añade valores adicionales a las opciones globales que aceptan más de un valor, como la opción -library-path. Las opciones globales que tienen un solo valor se suprimen.

Si se utiliza una convención particular para el nombre del archivo de configuración local, el compilador amxmlc carga el archivo local automáticamente. Por ejemplo, si el archivo MXML principal es RunningMan.mxml, el nombre del archivo de configuración local es: RunningMan-config.xml. Para compilar la aplicación solo hace falta escribir:

amxmlc RunningMan.mxml

RunningMan-config.xml se carga automáticamente, dado que su nombre de archivo coincide con el del archivo MXML compilado.

Ejemplos con amxmlc

Los siguientes ejemplos demuestran el uso del compilador amxmlc. (Solo se necesitan compilar los componentes ActionScript y MXML de la aplicación).

Compile un archivo MXML de AIR:

amxmlc myApp.mxml

Compile y defina el nombre de salida:

amxmlc –output anApp.swf -- myApp.mxml

Compile un archivo ActionScript de AIR:

amxmlc myApp.as

Especifique un archivo de configuración para el compilador:

amxmlc –load-config config.xml -- myApp.mxml

Añada opciones adicionales de otro archivo de configuración:

amxmlc –load-config+=moreConfig.xml -- myApp.mxml

Añada bibliotecas en la línea de comandos (además de las bibliotecas que ya figuran en el archivo de configuración):

amxmlc –library-path+=/libs/libOne.swc,/libs/libTwo.swc  -- myApp.mxml

Compile un archivo MXML de AIR sin usar archivo de configuración (Win):

mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, ^ 
[AIR SDK]/frameworks/libs/air/airframework.swc, ^ 
-library-path [Flex SDK]/frameworks/libs/framework.swc ^ 
-- myApp.mxml

Compile un archivo MXML de AIR sin usar archivo de configuración (Mac OS X o Linux):

mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, \ 
[AIR SDK]/frameworks/libs/air/airframework.swc, \ 
-library-path [Flex 3 SDK]/frameworks/libs/framework.swc \ 
-- myApp.mxml

Compile un archivo MXML de AIR para utilizar una biblioteca compartida con el motor de ejecución:

amxmlc -external-library-path+=../lib/myLib.swc -runtime-shared-libraries=myrsl.swf -- myApp.mxml

Compile un archivo MXML de AIR para usar un archivo ANE (asegúrese de utilizar -external-library-path para el archivo ANE):

amxmlc -external-library-path+=../lib/myANE.ane -output=myAneApp.swf -- myAneApp.mxml

Compilando desde Java (con la ruta de clase definida para que incluya mxmlc.jar):

java flex2.tools.Compiler +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml

La opción flexlib identifica la ubicación del directorio frameworks del SDK de Flex, lo cual permite al compilador localizar el archivo flex_config.xml.

Compilando desde Java (sin ruta de clase definida):

java -jar [Flex SDK 2]/lib/mxmlc.jar +flexlib [Flex SDK 3]/frameworks +configname=air [additional compiler options] -- myApp.mxml

Para invocar el compilador utilizando Apache Ant (en el ejemplo se utiliza una tarea de Java para ejecutar mxmlc.jar):

<property name="SDK_HOME" value="C:/Flex46SDK"/> 
<property name="MAIN_SOURCE_FILE" value="src/myApp.mxml"/> 
<property name="DEBUG" value="true"/> 
<target name="compile"> 
    <java jar="${MXMLC.JAR}" fork="true" failonerror="true"> 
        <arg value="-debug=${DEBUG}"/> 
        <arg value="+flexlib=${SDK_HOME}/frameworks"/> 
        <arg value="+configname=air"/> 
        <arg value="-file-specs=${MAIN_SOURCE_FILE}"/> 
    </java> 
</target>

Compilación de una biblioteca de código o componente de AIR (Flex)

Utilice el compilador de componentes, acompc, para compilar bibliotecas de AIR y componentes independientes. El compilador de componentes acompc se comporta como el compilador amxmlc pero con las siguientes excepciones:

  • Hay que especificar qué clases de las que figuran en el código base se han de incluir en la biblioteca o el componente.

  • El compilador acompc no busca automáticamente un archivo de configuración local. Para utilizar un archivo de configuración de un proyecto, hay que utilizar primero la opción –load-config.

El comando acompc invoca el compilador de componentes estándar de Flex, compc, pero carga las opciones de configuración del archivo air-config.xml en lugar de las del archivo flex-config.xml.

Archivo de configuración del compilador de componentes

Utilice un archivo de configuración local para evitar tener que escribir (quizá con errores tipográficos) la ruta de origin y los nombres de las clases en la línea de comandos. Añada la opción -load-config a la línea de comandos de acompc para cargar el archivo de configuración local.

El siguiente ejemplo ilustra una configuración para crear una biblioteca con dos clases, ParticleManager y Particle, ambos en el paquete com.adobe.samples.particles. Los archivos de clase se encuentran en la carpeta source/com/adobe/samples/particles.

<flex-config> 
    <compiler> 
        <source-path> 
            <path-element>source</path-element> 
        </source-path> 
    </compiler> 
    <include-classes> 
        <class>com.adobe.samples.particles.ParticleManager</class> 
        <class>com.adobe.samples.particles.Particle</class> 
    </include-classes> 
</flex-config>

Para compilar la biblioteca con el archivo de configuración, denominado ParticleLib-config.xml, escriba:

acompc -load-config ParticleLib-config.xml -output ParticleLib.swc

Para ejecutar el mismo comando con la totalidad en la línea de comandos, escriba:

acompc -source-path source -include-classes com.adobe.samples.particles.Particle  
com.adobe.samples.particles.ParticleManager -output ParticleLib.swc

(Escriba todo el comando en una sola línea o utilice el carácter de continuación de línea para el shell de comandos).

Ejemplos con acompc

Estos ejemplos dan por sentado que utiliza un archivo de configuración denominado myLib-config.xml.

Compile un componente o una biblioteca de AIR:

acompc -load-config myLib-config.xml -output lib/myLib.swc

Compile una biblioteca compartida en tiempo de ejecución

acompc -load-config myLib-config.xml -directory -output lib

(Obsérvese que la carpeta lib debe existir y estar vacía antes de ejecutar el comando).