ActionScript-compilers

Voordat ActionScript- en MXML-code kan worden opgenomen in een AIR-toepassing, moet deze worden gecompileerd. Als u een Integrated Development Environment (IDE) gebruikt, zoals Adobe Flash Builder of Adobe Flash Professional, voert de IDE achter de schermen de compilatie uit. U kunt echter ook vanaf de opdrachtregel de ActionScript-compilers inschakelen om uw SWF-bestanden te maken wanneer u geen IDE gebruikt of wanneer u een build-script gebruikt.

Over de AIR-opdrachtregelprogramma's in de SDK van Flex

Elk opdrachtregelprogramma dat u gebruikt om een Adobe AIR-toepassing te maken roept het bijbehorende programma aan dat wordt gebruikt voor het ontwikkelen van toepassingen:

  • amxmlc roept mxmlc aan om toepassingsklassen te compileren

  • acompc roept compc aan om bibliotheek- en componentklassen te compileren

  • aasdoc roept asdoc aan om documentatiebestanden te genereren op basis van opmerkingen bij de broncode

Het enige verschil tussen de Flex- en AIR-versies van de hulpprogramma's is dat de AIR-versies de configuratieopties uit het bestand air-config.xml laden in plaats van uit het bestand flex-config.xml.

De SDK-programma's van Flex en de bijbehorende opdrachtregelopties worden uitvoerig beschreven in de Flex-documentatie . De SDK-programma's van Flex worden hier kort beschreven, zodat u aan de slag kunt en zodat u weet wat de verschillen zijn tussen het ontwikkelen van Flex-toepassingen en het ontwikkelen van AIR-toepassingen.

Compiler instellen

Gewoonlijk worden compilatieopties zowel op de opdrachtregel als met een of meer configuratiebestanden ingesteld. Het algemene configuratiebestand van SDK bevat standaardwaarden die worden gebruikt wanneer de compilers worden uitgevoerd. U kunt dit bestand aanpassen aan uw eigen ontwikkelomgeving. De map frameworks van de installatie van de SDK van Flex bevat twee algemene configuratiebestanden van Flex. Het bestand air-config.xml wordt gebruikt wanneer u de compiler amxmlc uitvoert. Dit bestand configureert de compiler voor AIR door de AIR-bibliotheken op te nemen. Het bestand flex-config.xml wordt gebruikt wanneer u mxmlc uitvoert.

De waarden van de standaardconfiguratie zijn geschikt om te ontdekken hoe Flex en AIR werken, maar wanneer u aan een echt project begint, moet u de beschikbare opties beter bestuderen. U kunt projectspecifieke waarden voor de compileropties instellen in een lokaal configuratiebestand dat voorrang krijgt boven de algemene waarden voor een bepaald project.

Opmerking: er zijn geen compilatieopties die specifiek voor AIR-toepassingen worden gebruikt, maar u moet naar de AIR-bibliotheken verwijzen wanneer u een AIR-toepassing compileert. Naar deze bibliotheken wordt meestal verwezen in een configuratiebestand op projectniveau, in een bestand voor een ontwikkelprogramma zoals Ant, of rechtstreeks op de opdrachtregel.

MXML- en ActionScript-bronbestanden voor AIR compileren

U kunt de Adobe® ActionScript® 3.0- en MXML-elementen van uw AIR-toepassing compileren met de opdrachtregelcompiler MXML (amxmlc). (Bij toepassingen op HTML-basis is compileren niet nodig. Als u een SWF in Flash Professional wilt compileren, hoeft u alleen de film naar een SWF-bestand te publiceren.)

Het basisopdrachtregelpatroon voor het gebruik van amxmlc is:

amxmlc [compiler options] -- MyAIRApp.mxml

waarbij [compiler options] de opdrachtregelopties bepaalt waarmee uw AIR-toepassing wordt gecompileerd.

De opdracht amxmlc roept de standaardcompiler mxmlc van Flex op met een extra parameter, +configname=air . Met deze parameter krijgt de compiler de opdracht om het bestand air-config.xml te gebruiken in plaats van het bestand flex-config.xml. Het gebruik van amxmlc is verder identiek aan het gebruik van mxmlc.

De compiler laadt het configuratiebestand air-config.xml waarin de AIR- en Flex-bibliotheken zijn opgegeven die gewoonlijk zijn vereist om een AIR-toepassing te compileren. U kunt ook een lokaal, projectgebonden configuratiebestand gebruiken om opties in de globale configuratie te overschrijven of daaraan toe te voegen. U kunt een lokaal configuratiebestand vaak het eenvoudigst maken door een kopie van het globale bestand te bewerken. U kunt het lokale bestand laden met de optie -load-config :

-load-config=project-config.xml Hiermee overschrijft u globale opties.

-load-config+=project-config.xml Hiermee voegt u extra waarden toe aan globale opties die meerdere waarden gebruiken, zoals de optie -library-path . Globale opties die slechts één waarde gebruiken, worden overschreven.

Als u een speciale naamgevingsconventie gebruikt voor het lokale configuratiebestand, laadt de compiler amxmlc het lokale bestand automatisch. Als het MXML-hoofdbestand bijvoorbeeld RunningMan.mxml is, geeft u het lokale configuratiebestand de volgende naam: RunningMan-config.xml . U hoeft nu alleen het volgende te typen om de toepassing te compileren:

amxmlc RunningMan.mxml

RunningMan-config.xml wordt automatisch geladen omdat de bestandsnaam overeenkomt met het gecompileerde MXML-bestand.

amxmlc, voorbeelden

In de volgende voorbeelden ziet u hoe u de compiler amxmlc gebruikt. (Alleen de ActionScript- en MXML-assets van uw toepassing hoeven te worden gecompileerd.)

Een AIR MXML-bestand compileren:

amxmlc myApp.mxml

De uitvoernaam compileren en instellen:

amxmlc –output anApp.swf -- myApp.mxml

Een AIR ActionScript-bestand compileren:

amxmlc myApp.as

Een configuratiebestand voor de compiler opgeven:

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

Extra opties toevoegen uit een ander configuratiebestand:

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

Bibliotheken toevoegen op de opdrachtregel (naast de bibliotheken die al in het configuratiebestand staan):

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

Een AIR MXML-bestand compileren zonder een configuratiebestand te gebruiken (Windows):

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

Een AIR MXML-bestand compileren zonder een configuratiebestand te gebruiken (Mac OS X of 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

Een AIR MXML-bestand compileren voor het gebruik van een gedeelde runtimebibliotheek:

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

Een AIR MXML-bestand compileren voor het gebruik van een ANE (gebruik ‑external‑library‑path voor ANE):

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

Compileren vanuit Java (waarbij mxmlc.jar is opgenomen in het klassepad):

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

Met de optie flexlib bepaalt u de locatie van de map frameworks van de SDK van Flex, zodat de compiler het bestand flex_config.xml kan vinden.

Compileren vanuit Java (waarbij het klassepad niet is ingesteld):

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

De compiler met Apache Ant aanroepen (in het voorbeeld wordt een Java-taak gebruik om mxmlc.jar uit te voeren):

<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>

AIR-componenten of codebibliotheken compileren (Flex)

Gebruik de componentencompiler acompc om AIR-bibliotheken en onafhankelijke componenten te compileren. De componentencompiler acompc werkt zoals de compiler amxmlc, met de volgende uitzonderingen:

  • U moet opgeven welke klassen in de basiscode worden opgenomen in de bibliotheek of component.

  • Acompc zoekt niet automatisch naar een lokaal configuratiebestand. Als u een projectgebonden configuratiebestand wilt gebruiken, moet u de optie –load-config gebruiken.

De opdracht acompc roept de standaard componentencompiler compc van Flex op, maar laadt de configuratieopties vanuit het bestand air-config.xml in plaats vanuit het bestand flex-config.xml .

Configuratiebestand van componentencompiler

Gebruik een lokaal configuratiebestand om te zorgen dat u het bronpad en de klassennamen niet op de opdrachtregel hoeft te typen (en daarbij typefouten maakt). Voeg de optie -load-config aan de opdrachtregel van acompc toe om het lokale configuratiebestand te laden.

In het volgende voorbeeld ziet u een configuratie voor het bouwen van een bibliotheek met twee klassen, ParticleManager en Particle, die beide aanwezig zijn in het pakket: com.adobe.samples.particles . De klassebestanden bevinden zich in de map 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>

Als u de bibliotheek wilt compileren met het configuratiebestand met de naam ParticleLib-config.xml , typt u:

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

Als u dezelfde opdracht volledig vanaf de opdrachtregel wilt uitvoeren, typt u:

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

(Typ de volledige opdracht op één regel of gebruik het regelvervolgteken voor uw opdrachtshell.)

Voorbeelden van acompc

In deze voorbeelden wordt aangenomen dat u een configuratiebestand met de naam myLib-config.xml gebruikt.

Een AIR-component of -bibliotheek compileren:

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

Een gedeelde runtimebibliotheek compileren:

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

(Let erop dat de map lib bestaat en leeg is voordat u de opdracht uitvoert.)