Compilatori ActionScript

Per poter includere codice ActionScript e MXML in un'applicazione AIR, tale codice deve prima essere compilato. Se usate un ambiente IDE (Integrated Development Environment), quale Adobe Flash Builder o Adobe Flash Professional, l'IDE gestisce la compilazione "dietro le quinte". Tuttavia, potete anche chiamare i compilatori ActionScript dalla riga di comando per creare i file SWF se non utilizzate un ambiente IDE oppure usate uno script di compilazione.

Informazioni sugli strumenti della riga di comando AIR in Flex SDK

Ognuno degli strumenti della riga di comando che utilizzate per creare un'applicazione Adobe AIR chiama il corrispondente strumento utilizzato per creare le applicazioni:

  • amxmlc chiama mxmlc per compilare le classi dell'applicazione

  • acompc chiama compc per compilare le classi di librerie e componenti

  • aasdoc chiama asdoc per generare i file della documentazione a partire dai commenti del codice sorgente

L'unica differenza tra le versioni Flex e AIR di queste utilità è che le versioni AIR caricano le opzioni di configurazione dal file air-config.xml invece che dal file flex-config.xml.

Gli strumenti Flex SDK e le relative opzioni della riga di comando sono descritti in modo dettagliato nella documentazione Flex . In questa documentazione gli strumenti di Flex SDK vengono descritti a un livello di base per consentirvi di acquisire familiarità con il loro utilizzo ed evidenziare le differenze tra la creazione di applicazioni Flex e la creazione di applicazioni AIR.

Impostazione del compilatore

Per specificare le opzioni di compilazione, in genere si utilizzano sia la riga di comando che uno o più file di configurazione. Il file di configurazione globale di Flex SDK contiene i valori predefiniti che vengono utilizzati a ogni esecuzione dei compilatori. Potete modificare questo file in base alle esigenze del vostro ambiente di sviluppo. La directory frameworks dell'installazione di Flex SDK contiene due file di configurazione globali per Flex. Il file air-config.xml viene utilizzato quando si esegue il compilatore amxmlc. Questo file configura il compilatore per AIR includendo le librerie AIR. Il file flex-config.xml viene utilizzato quando si esegue mxmlc.

I valori di configurazione predefiniti sono utili per acquisire dimestichezza con il funzionamento di Flex e AIR. Prima di iniziare un progetto di grandi dimensioni, tuttavia, è opportuno esaminare più da vicino le opzioni disponibili. A livello di progetto potete utilizzare un file di configurazione locale, che ha la precedenza sui valori globali, per definire valori specifici del progetto per le opzioni di compilazione.

Nota: per le applicazioni AIR non vengono utilizzate opzioni di compilazione specifiche, ma durante la compilazione di un'applicazione AIR è necessario fare riferimento alle librerie AIR. In genere i riferimenti a queste librerie vengono specificati in un file di configurazione a livello di progetto, in un file di uno strumento di creazione come Ant o direttamente nella riga di comando.

Compilazione di file di origine MXML e ActionScript per AIR

Potete compilare le risorse Adobe® ActionScript® 3.0 e MXML dell'applicazione AIR con il compilatore MXML della riga di comando (amxmlc). Non dovete compilare applicazioni basate su HTML. Per compilare un file SWF in Flash Professional, pubblicate il filmato in un file SWF.

La sintassi di base da riga di comando per l'uso di amxmlc è la seguente:

amxmlc [compiler options] -- MyAIRApp.mxml

dove [compiler options] specifica le opzioni della riga di comando utilizzate per la compilazione dell'applicazione AIR.

Il comando amxmlc chiama il compilatore standard Flex mxmlc con un parametro aggiuntivo, vale a dire +configname=air . Questo parametro istruisce il compilatore all'utilizzo del file air-config.xml anziché del file flex-config.xml. Per altri aspetti, l'impiego di amxmlc è identico a quello di mxmlc.

Il compilatore carica il file di configurazione air-config.xml specificando le librerie AIR e Flex solitamente richieste per la compilazione di un'applicazione AIR. È inoltre possibile utilizzare un file di configurazione locale a livello di progetto per ignorare o aggiungere ulteriori opzioni alla configurazione globale. Solitamente, il sistema più semplice per creare un file di configurazione locale consiste nel modificare una copia della versione globale. È possibile caricare il file locale con l'opzione -load-config :

-load-config=project-config.xml Ignora le opzioni globali.

-load-config+=project-config.xml Aggiunge ulteriori valori alle opzioni globali che accettano più del valore, come ad esempio l'opzione -library-path . Le opzioni globali che accettano solo un valore vengono ignorate.

Se si utilizza una speciale convenzione di denominazione per il file di configurazione locale, il compilatore amxmlc carica automaticamente il file locale. Ad esempio, se il file MXML principale è RunningMan.mxml , denominate il file di configurazione locale RunningMan-config.xml . A questo punto, per compilare l'applicazione, dovete solo digitare:

amxmlc RunningMan.mxml

RunningMan-config.xml viene caricato automaticamente dal momento che il relativo nome file corrisponde a quello del file MXML compilato.

Esempi di amxmlc

Negli esempi seguenti viene illustrato l'utilizzo del compilatore amxmlc. (Devono essere compilate solo le risorse ActionScript e MXML dell'applicazione.)

Compilare un file MXML di AIR:

amxmlc myApp.mxml

Compilare e impostare il nome di output:

amxmlc –output anApp.swf -- myApp.mxml

Compilare un file ActionScript di AIR:

amxmlc myApp.as

Specificare un file di configurazione del compilatore:

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

Aggiungere ulteriori opzioni da un altro file di configurazione:

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

Aggiungere librerie sulla riga di comando, in aggiunta alle librerie già presenti nel file di configurazione:

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

Compilare un file MXML di AIR senza utilizzare un file di configurazione (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

Compilare un file MXML di AIR senza utilizzare un file di configurazione (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

Compilare un file MXML di AIR per utilizzare una libreria condivisa a livello di runtime:

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

Compilare un file MXML di AIR per utilizzare un file ANE (utilizzare -external-library-path per il file ANE):

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

Compilazione da Java (con il percorso della classe impostato in modo da includere mxmlc.jar ):

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

L'opzione flexlib identifica il percorso della directory delle strutture di Flex SDK, consentendo al compilatore di individuare il file flex_config.xml.

Compilazione da Java (senza impostazione del percorso della classe):

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

Per richiamare il compilatore con Apache Ant (nell'esempio viene utilizzata un'attività Java per eseguire 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>

Compilazione di un componente o libreria di codice AIR (Flex)

Il compilatore di componenti acompc consente di compilare librerie AIR e componenti indipendenti. Il compilatore di componenti acompc si comporta come il compilatore amxmlc, con le seguenti eccezioni:

  • È necessario specificare quali classi della base di codice desiderate includere nella libreria o nel componente.

  • acompc non cerca automaticamente un file di configurazione locale. Per utilizzare un file di configurazione del progetto, è necessario utilizzare l'opzione –load-config.

Il comando acompc chiama il compilatore di componenti Flex standard compc, ma ne carica le opzioni di configurazione dal file air-config.xml invece di flex-config.xml .

File di configurazione del compilatore di componenti

Utilizzando un file di configurazione locale è possibile evitare di digitare (e quindi di digitare in modo errato) il percorso di origine e i nomi delle classi sulla riga di comando. Aggiungete l'opzione -load-config alla riga di comando di acompc per caricare il file di configurazione locale.

Nell'esempio seguente viene illustrata una configurazione per la creazione di una libreria con due classi, ParticleManager e Particle, entrambe presenti nel pacchetto com.adobe.samples.particles . I file si trovano nella cartella 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>

Per compilare la libreria utilizzando il file di configurazione denominato ParticleLib-config.xml , digitate:

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

Per eseguire lo stesso comando interamente sulla riga di comando, digitate:

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

(Digitate il comando per intero sulla riga di comando, oppure utilizzate il carattere di continuazione della riga per la shell di comando.)

Esempi di acompc

In questi esempi si presuppone l'impiego di un file di configurazione denominato myLib-config.xml .

Compilare una libreria o un componente AIR:

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

Compilare una libreria condivisa di runtime:

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

Prima di eseguire il comando, la cartella lib deve essere esistente e vuota.