09.02.2012
MXP Extensions für Flash CS5 selber erstellen
Die letzten Tage habe ich mich mal wieder mit der erstellung von MXP Extensions beschäftigt, das letzte mal, dass ich das getan habe, liegt schon ein paar Jahre zurück. Ein paar interessante Dinge haben sich geändert:
Neues Format
Neben “MXP” gibt es nun auch “ZXP” Extensions, der einzige Unterschied ist aber, dass man dort eine digitale Signatur zur Identifizierung des Herausgebers integrieren kann
(Einigermaßen) automatische Updates
In dem MXI File, welches die Basis für die Erstellung der Extension darstellt, kann auch eine URL zum Aktualisieren der Extension hinterlegt werden. Allerdings muss man immer der Extension-Manager explizit starten um zu sehen, ob von einer Extension ein Update verfügbar ist. Lieder meldet sich die Extension nicht von alleine, wenn eine Aktualisierung zur Verfügung steht.
Mit diesem Wissen habe ich mich nun an eine konkrete Aufgabe gemacht: Eine Extension entwickeln, die bei der Erstellung von Online-Kampagnen für einen expliziten Kunden helfen soll. Was gehört also alles dazu?
- Template FLA Dateien
- Vordefinierte Filter
- Schriftarten
- eine Handvoll Klassen
Fangen wir mal von Vorne an. Zuerst benötigen wir einen Ordner, in dem wir alle Daten für die Extension sammeln wollen, den lege ich mir der Einfachheit halber auf dem Desktop an. Dort lege ich schon mal eine Kopie von einem Beispiel MXI-File rein, das ist das XML-Dokument, in dem meine Extension beschrieben wird. Eine Vorlage befindet sich im “Samples” Folder des Extension Managers.
Jetzt zu den Templates. Jeses FLA kann über “File > Save as Template…” gespeichert werden, die Datei landet dann in dem Benutzer-Ordner unter “Templates” (am Mac unter “<HardDisk>/Users/<userName>/Library/Application Support/Adobe/Flash CS5/<language>/Configuration/Templates/”, unter Windows XP unter “C:\Documents and Settings\<userName>\Local Settings\Application Data\Adobe\Flash CS5\<language>\Configuration\Templates\”, ab Vista “C:\Users\<userName>\AppData\Local\Adobe\Flash CS5\<language>\Configuration\Templates\”). Genau dort kopiere ich später die Teamplates mit Hilfe des MXP wieder hin, ich erstelle die FLAs aber trotzdem alle über “Save as Teamplate…”, weil man so noch eine Description in die Metadaten der Datei schreiben kann, die später im Dialog wieder angezeigt wird, wenn man eine neue Datei auf Basis dieses Teamplates erstellt. Also erst mal alle notwendigen Teamplates erstellen und dann in den selbern Ordner verschieben, in dem schon das MXI File liegt.
In den FLAs hatte ich übrigens Filter verwendet und diese über die Option “Presets > Save as…” im Filters-Panel gespeichert. Jeder auf diese Art gespeicherte Filter landet als XML Datei im Ordner “Filters” im oben beschriebenen “Configuration” Ordners, also direkt neben den Templates. Diese XML Dateien habe ich nun ebenfalls in den Ordner zum MXI File verschoben.
Alle Schriftarten, die in den Teamplates verwendet werden, kopiere ich ebenfalls in den Ordner zum MXI, außerdem noch den Ordner, in dem sich meine ActionScript Klassen befinden. Und genau hier habe ich besonders lange nach einer guten Lösung gesucht, denn es gibt leider keine Möglichkeit bei der Installation eines MXP automatisch einen neuen Classpath zu Flash hinzu zu fügen, also habe ich mich dazu entschieden, in den Templates selber einen Filebased-Classpath zu hinterlegen. Also alle Templates noch mal öffnen und unter “File > ActionScript Settings…” unter “Source path” den Eintrag “$(LocalData)/Classes/myClasses/” hinzu gefügt. Flash sucht die Klassen dann automatisch, je nach System, wieder in dem weiter oben beschriebenen “Cofigurations” Folder.
So. Jetzt sind alle Dateien schon mal vorbereitet und müssen vom MXP nur noch an die richtigen Stelle verschoben werden. Und das sieht im MXI so aus:
<files>
<file name=”My first Template.fla” destination=”$flash/Templates/My own Template Subfolder” />
<file name=”My Custom Filter.xml” destination=”$flash/Filters” />
<file name=”com” destination=”$flash/Classes/myClasses” />
<file name=”myFont.otf” destination=”$Fonts” />
</files>
Das war’s schon, jetzt noch schnell die Update-Funktion einbauen
<update url=”http://www.example.com/update.xml” />
Und folgendes in die update.xml auf dem Webserver schreiben:
<ExtensionUpdateInformation>
<version>1.5.0</version>
<download>http://www.example.com/myExtension.mxp</download>
<description url=”http://www.example.com/myDescription/”>
<![CDATA[The 1.5 version fixes known problems.<br>
New features include the ability to download updates.
]]>
</description>
</ExtensionUpdateInformation>
Im Extension-Manager muss man nun nur noch “File > Package MXP Extension” anklicken und das zuvor erstellte MXI File auswählen – fertig ist die eigene Extension. Dieses PDF hat mir bei meiner Arbeit an der Extension sehr geholfen:
http://help.adobe.com/en_US/extensionmanager/cs/using/MXI_tech_note.pdf
Eins noch: Problematisch wird’s, wenn Bestriebssystem und Flash nicht die selbe Sprache haben. Wenn z.B. das OS deutsch ist und Flash englisch, werden bei der Installation die Template-FLAs in den Ordner “de_DE” statt “en_US” kopiert (siehe oben bei der Beschreibung des Configuration-Folders der Platzhalter “<language>”) und daher in Flash nicht angezeigt. Eine Lösung für dieses Problem gibt es offenbar leider noch nicht.