Textmate und Adobe AIR

Als Ergänzung zum vorigen Beitrag Textmate: Flex und ActionScript 3 Bundle zeige ich kurz, wie man mit diesen Bundles Textmate zum Erstellen von Adobe AIR Anwendungen nutzen kann.

Adobe AIR Hello World

Hinweis: Vorraussetzung ist die aktuelle Version des Flex SDK (Beta 2), die bis Ende Januar 2008 gültig ist.

Neues Flex-Projekt

Man erstellt ein neues Flex-Project („File > New from Template > Flex > Project MXML“) und speichert dieses unter dem Namen AIRHelloWorld ab.

AIRHelloWorld.mxml

Das Projekt öffnet sich. Man sieht die Datei AIRHelloWorld.mxml und ersetzt den bestehenden Quellcode der Anwendung vollständig durch den folgenden:

[xml]




[/xml]

Application Descriptor app.xml

Jetzt benötigt man den Application Descriptor von AIR. Es handelt sich um eine XML-Datei, die die Eigenschaften der Anwendung beschreibt.

Dazu erstellt man eine neue Datei (File > New), kopiert den nachstehenden Inhalt hinein und speichert sie im Unterverzeichnis deploy des Projektverzeichnises ab. Der Dateiname lautet app.xml, der Pfad also …/AIRHelloWorld/deploy/app.xml.

Application Descriptor

[xml]


AppName
A test AIR application.
2007

AIRHelloWorld.swf
none
true true


[/xml]

Wichtig: Diese Datei hat sich im Vergleich zur letzten Beta von AIR geändert. Zum einen kennzeichnet das Kürzel M5 (zuvor M4) in der zweiten Zeile die neue Version von AIR. Zum anderen hat sich auch der Aufbau der XML-Datei geändert, denn der Tag initialWindow hieß zuvor rootContent.

Build AIR

Das Projekt ist nun soweit erstellt. Jetzt muss eine kleine Anpassung an dem ActionScript 3 Bundle vorgenommen werden.

Man öffnet den Bundle Editor mit „Bundles > Bundle Editor > Show Bundle Editor“, wählt das ActionScript 3 Bundle aus und markiert den Befehl „Build“. Mit dem Plus-Symbol unten dupliziert man den „Build“ und nennt den neuen Befehl „Build AIR“.

Adobe AIR Bundle

Man passt zwei Stellen im Text an (siehe Abbildung). Zum einen heißt der Compiler statt mxmlc (für Flex) jetzt amxmlc (für AIR). Zum anderen soll mit adl (=AIR Debug Launcher) die Anwendung gestartet werden. Hier der entsprechenden Abschnitt:

[xml]
amxmlc \
-sp+=$TM_AS3_LIB_PATH \
-file-specs=“$TM_FLEX_FILE_SPECS“ \
-output=“$TM_FLEX_OUTPUT“ \
-incremental=true \
-optimize=true 2>&1 | parse_mxmlc_out.py;

if [ „$?“ == „0“ ]; then

echo „

open $TM_FLEX_OUTPUT

„;
adl $TM_PROJECT_DIR/deploy/app.xml;
[/xml]

Pfad zum Compiler

Damit der Compiler von Textmate gefunden wird, sollte man den Pfad in die Voreinstellungen für Bash-Skripte eintragen. Man startet das Terminal von Mac OS X. Der Befehl „mate .profile“ öffnet (bzw. erstellt, falls nicht vorhanden) die entsprechende Datei im Home-Verzeichnis des Users. Hier trägt man den Pfad ein und speichert. Im meinem Fall ist das Flex SDK in /Applications/Flex/ abgelegt. Die Compiler sind dann im Unterverzeichnis bin.

[xml]export PATH=$PATH:/Applications/Flex/bin/[/xml]

Fertig

Jetzt sollte man mit „Build AIR“ die AIR Anwendung kompilieren und anschließend betrachten können.

[ad]

4 Gedanken zu „Textmate und Adobe AIR“

  1. mate ~/.bash_profile
    If a file in TextMate opens, then we’re good. Otherwise, you need to first install the mate tool from within TextMate (Help -> Terminal Usage… ). Start a new Terminal window after you do that.

  2. Perfekt. Mit der neuen Beta von Adobe Air hat sich die app.xml geändert.


    <?xml version="1.0" encoding="utf-8" ?>
    <application xmlns="http://ns.adobe.com/air/application/1.0.M6">
    <id>SampleApp</id>
    <version>1.2</version>
    <filename>Sample</filename>
    <description>Sample app description</description>
    <copyright>Sample app copyright information</copyright>
    <name>Sample Application </name>
    <initialWindow>
    <title>Main Window</title>
    <content>AIRHelloWorld.swf</content>
    <systemChrome>standard</systemChrome>
    <transparent>false</transparent>
    <visible>true</visible>
    <minimizable>true</minimizable>
    <maximizable>true</maximizable>
    <resizable>true</resizable>
    <width>800</width>
    <height>600</height>
    <x>150</x>
    <y>150</y>
    </initialWindow>
    <fileTypes>
    <fileType>
    <name>AIR.TextFile</name>
    <extension>aptxt</extension>
    <description>AIR Text File</description>
    <contentType>application/vnd.AIR.text-file</contentType>
    <icon>
    <image16x16>icons/Doc1/txt_16.png</image16x16>
    <image32x32>icons/Doc1/txt_32.png</image32x32>
    <image48x48>icons/Doc1/txt_48.png</image48x48>
    <image128x128>icons/Doc1/txt_128.png</image128x128>
    </icon>
    </fileType>
    <fileType>
    <name>AIR.ImageFile</name>
    <extension>apimg</extension>
    <description>AIR Image File</description>
    <contentType>application/vnd.AIR.image-file</contentType>
    <icon>
    <image16x16>icons/Doc2/ft_16_16.png</image16x16>
    <image32x32>icons/Doc2/ft_32_32.png</image32x32>
    <image48x48>icons/Doc2/ft_48_48.png</image48x48>
    <image128x128>icons/Doc2/ft_128_128.png</image128x128>
    </icon>
    </fileType>
    </fileTypes>
    </application>

  3. Hier eine XML-Datei aus der finalen Version 1.0 von Adobe AIR:

    <?xml version ="1.0" encoding="utf-8" ?>
    <application xmlns="http://ns.adobe.com/air/application/1.0">
    <id>com.adobe.example.air-drag-drop</id>
    <version>1.0</version>
    <filename>air-drag-drop</filename>
    <description></description>
    <name>air-drag-drop</name>
    <copyright></copyright>
    <initialWindow>
    <content>air-drag-drop%20.swf</content>
    <systemChrome>standard</systemChrome>
    <transparent>false</transparent>
    <visible>true</visible>
    </initialWindow>
    <customUpdateUI>false</customUpdateUI>
    <allowBrowserInvocation>false</allowBrowserInvocation>
    <icon>
    <image16x16>AppIconsForAIRPublish/AirApp_16.png</image16x16><image32x32>AppIconsForAIRPublish/AirApp_32.png</image32x32><image48x48>AppIconsForAIRPublish/AirApp_48.png</image48x48><image128x128>AppIconsForAIRPublish/AirApp_128.png</image128x128></icon>
    </application>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert