26.2 Flash MX 2004, Version 7.2
Bei der Entwicklung des Updates auf Flash MX 2004 Version 7.2 (Codename Ellipsis) hat Macromedia sich angenehm offen gezeigt und die Entwickler mit einbezogen, um so möglichst viele Versäumnisse der ersten Versionen auszuräumen. Das Update auf die Version 7.2 der Flash-Entwicklungsumgebung hat Änderungen und Fehlerbeseitigungen in vielen Bereichen zur Folge (http://www.macromedia.com/...): Zum einen haben sich Dokumentation, Performance, Ressourcenhunger und Stabilität deutlich verbessert. Und zum anderen hat Macromedia die mitgelieferten Komponenten erweitert. Eine umfangreiche Liste der Änderungen aller Flash-Versionen seit MX 2004 findet sich in den englischsprachigen Versionshinweisen unter http://www.macromedia.com/support/documentation/en/flash/mx2004/releasenotes.html.
Deutsche Version meist später verfügbar
Die deutsche Version des Updates ist zwar ebenfalls mittlerweile erhältlich, doch leider mussten sich deutschsprachige Entwickler wieder etwas mehr gedulden als die Anwender der englischen Version. Und außerdem fehlen einige Erweiterungen in der Dokumentation. Sollten Sie aus diesem Grund in Zukunft mit der englischen Version arbeiten wollen, dann reicht es momentan aus,
1. |
die aktuelle Version zu deaktivieren, |
|
|
2. |
die aktuelle Version zu deinstallieren, |
|
|
3. |
die gewünschte Version als Testversion von der Macromedia-Website kostenlos zu laden, |
|
|
4. |
die gewünschte Version zu installieren |
|
|
5. |
und abschließend die Testversion mit der Original-Seriennummer zu aktivieren (diese wird dann wieder zu einer Vollversion). |
|
|
Zwar funktionierte dieses Vorgehen im Test problemlos, doch sind die Angaben ohne Gewähr. Außerdem kann keine Garantie dafür übernommen werden, dass dieses Vorgehen den Lizenzbedingungen entspricht.
26.2.1 Komponenten
Das offensichtlichste Ergebnis dieses Update-Prozesses ist die von vielen Entwicklern schmerzlich vermisste Scrollbalken-Komponente (engl. Scrollbar). Diese bietet wie das Pendant aus Flash MX sowohl horizontale als auch vertikale Rollbalken für Texte und lässt sich einfach per Drag and Drop auf Textfelder ziehen (natürlich ist auch die Nutzung per Programmierung erlaubt).
Hier klicken, um das Bild zu Vergrößern
Abbildung 26.4
Der neue Scrollbar erlaubt es, Inhalte mit einem Rollbalken in Flash-Anwendungen hin und her zu schieben.
Aber auch sonst war das amerikanische Softwarehaus fleißig und hat noch weitere 40 Mal den Fehlerteufel erfolgreich bekämpft, darunter so populäre Probleme wie bei der Eigenschaft _targetInstanceName, die nun auch bei kompilierten Komponenten richtig gesetzt wird (http://www.flashforum.de/forum/showthread.php?t=118563). Und Komponenten funktionieren nun auch ohne Nebeneffekte in dynamisch geladenen SWF-Dateien, unabhängig davon, ob _lockroot genutzt wird oder nicht. Ebenfalls sehr nützlich ist, dass Alert- bzw. Windows-Komponenten sich nun nicht mehr so aus dem sichtbaren Bereich verschieben lassen, dass der Anwender sie nicht mehr zurückholen kann.
Die Verbesserung der momentan mangelnden Performance und die Vereinfachung der bisweilen schwierigen Anpassung der Komponenten hat Macromedia aber leider auf die nächste Flash-Version vertagt, die laut eigener Aussagen erst später im nächsten Jahr folgen soll.
26.2.2 Stabilität und Werkzeuge
Ab und an ist es mit den vorherigen Versionen von Flash passiert, dass sich nach längerer Benutzung andere Anwendungen nicht mehr öffnen ließen oder dass Flash den Bildschirm in eigenartiger Weise neu zeichnete. Diese Probleme sollen nun der Vergangenheit angehören, da Macromedia den Ressourcenhunger von Flash stark reduzieren konnte. Dies hat ebenfalls verbesserte Startzeiten zur Folge. Interessant für Netzwerkadministratoren ist, dass Macromedia die anwenderabhängigen Konfigurationseinstellungen von mehr als 75 Megabyte deutlich verringert hat, wodurch sich nun auch Mehrbenutzerinstallationen durchführen lassen, ohne Gigabytes an Konfigurationseinstellungen speichern zu müssen.
Tabelle 26.2
Konfigurationsordner von Flash MX 2004, Version 7.2
Ordner
|
Ort
|
Änderung in Version 7.2
|
ActionsPanel
|
Anwenderordner
|
|
Behaviors
|
Anwenderordner
|
|
Classes
|
Anwenderordner
|
|
Color Sets
|
Anwenderordner
|
|
Commands
|
Anwenderordner
|
|
ComponentFLA
|
Programmverzeichnis
|
Verschoben
|
Components
|
Programmverzeichnis
|
Verschoben
|
Data
|
Anwenderordner
|
|
DataTypes
|
Anwenderordner
|
|
Detection
|
Anwenderordner
|
|
Effects
|
Anwenderordner
|
|
Encoders
|
Anwenderordner
|
|
External Libraries
|
Anwenderordner
|
|
FontEmbedding
|
Anwenderordner
|
|
Formatters
|
Anwenderordner
|
|
HelpPanel
|
Programmverzeichnis
|
Verschoben
|
HTML
|
Anwenderordner
|
|
Importers
|
Programmverzeichnis
|
Verschoben
|
Include
|
Anwenderordner
|
|
Keyboard Shortcuts
|
Anwenderordner
|
|
Kinds
|
Anwenderordner
|
|
Libraries
|
Programmverzeichnis
|
Verschoben
|
Panel Sets
|
Anwenderordner
|
|
Players
|
Anwenderordner
|
|
Publish Profiles
|
Anwenderordner
|
|
Samples
|
Programmverzeichnis
|
Verschoben
|
Screen Types
|
Anwenderordner
|
|
StartPage
|
Anwenderordner
|
|
Templates
|
Programmverzeichnis
|
Verschoben
|
Tools
|
Anwenderordner
|
|
Video
|
Anwenderordner
|
|
WebServices
|
Anwenderordner
|
|
WindowSWF
|
Anwenderordner
|
|
Aber auch sonst hat Macromedia ganze Arbeit geleistet und viele ärgerliche Verhalten ausgemerzt. Das mehrfache Drücken des Test Projekt-Buttons im Projekt-Bedienfeld hat nun ebenso wenig einen Absturz zur Folge wie das Kopieren von Texten zwischen Flash MX und Flash MX 2004. Insbesondere Macintosh-Liebhaber profitieren von vielen weiteren Reparaturen, die Abstürze verhindern.
26.2.3 Werkzeuge und Bedienung
Die Stabilität eines Produktes macht nur einen Teil der Zufriedenheit mit einem Programm aus. Der Bedienkomfort und die verfügbaren Werkzeuge tun ihr Übriges dazu. So hat es Macromedia nicht versäumt, Fehlverhalten der Bedienfelder und Werkzeuge zu reparieren. Und für die nächste Flash-Version wurde sogar ein komplett überarbeitetes Bedienfeldmanagement versprochen, da selbst dieses Update nicht alle Ärgernisse beheben kann.
Immerhin ist leichter erkennbar, ob das ActionScript-Bedienfeld den Fokus hat oder nicht. Und das Komponenten-Bedienfeld merkt sich seine Position und öffnet sich nicht mehr ständig von alleine. Außerdem bleiben die Einstellungen für die Stricheigenschaften nun erhalten und müssen bei Werkzeugwechseln nicht neu angegeben werden.
Hier klicken, um das Bild zu Vergrößern
Abbildung 26.5
Alzheimer geheilt: Flash vergisst die Einstellungen verschiedener Werkzeuge nun nicht mehr ständig.
26.2.4 Dokumentation
Bemerkenswert sind die Erweiterungen der Dokumentation, die ohnehin verglichen mit manch anderen Produkten ganz passabel war. Mehr als vierhundert neue Programmierbeispiele führen dazu, dass es laut Macromedia nun zu 98 Prozent aller Einträge erläuternde Beispiele gibt (vorher waren es gerade einmal knapp 43 Prozent). Diese Beispiele unterstützt Macromedia mit mehr als 20 neuen Beispieldateien und zwei kompletten Beispielprojekten (http://www.macromedia.com/devnet/mx/flash/sample_files/).
Innerhalb der Dokumentation hat Macromedia laut eigener Angaben über 2000 Fehler ausgemerzt und zusätzlich die Typinformationen ergänzt. Außerdem sind neue Kapitel im Bereich der Komponenten entstanden, die sich mit dem Verwalten von Komponentenereignissen und dem Erstellen von kompletten Anwendungen beschäftigen. Die vorher alles andere als gelungenen Kapitel zur Anpassung von Komponenten durch Stile und Skins hat Macromedia komplett überarbeitet, so dass es nun auch durchschnittlichen Entwicklern gelingen sollte, Komponenten erfolgreich optisch anzupassen.
26.2.5 ActionScript
Für Anwendungsprogrammierer nützlich sind die erhöhte Geschwindigkeit des ActionScript-Compilers und die neuen ASO Cache-Befehle, die unter http://www.macromedia.com/cfusion/exchange/index.cfm?extid=1016963&view=sn111 kostenlos erhältlich sind. Als ASO-Dateien bezeichnet Macromedia vorkompilierte ActionScript-Dateien, die zur Geschwindigkeitssteigerung in einem Cache abgelegt und so nicht jedes Mal neu kompiliert werden. Die ASO Cache-Befehle erlauben es, diese Dateien zu löschen, um eine neue Kompilierung unabhängig vom Status der Klassen zu erzwingen. Nach erfolgreicher Installation rufen Sie diese Funktionen im Befehle-Menü auf.
Eine einfache Klasse zum Delegieren von Ereignissen ist ebenfalls neu hinzugefügt worden. Angelehnt an das entsprechende Entwurfsmuster trägt diese den Namen Delegate und versteckt sich innerhalb des Klassenordners im Verzeichnis mx.utils (http://www.macromedia.com/devnet/mx/flash/articles/eventproxy.html). Mit Hilfe dieser Klasse ist es nun auf einfache Art und Weise möglich, Ereignisse einer Komponente an ein anderes beliebiges Objekt zu senden:
// Die Button-Komponente muss in der Bibliothek dieser Anwendung liegen
import mx.utils.Delegate;
import mx.controls.Button;
var my_button:Button;
var my_target:Object;
var my_delegation:Function;
var my_function:Function;
my_button = createObject("Button", "my_button", 1);
my_target = new Object();
my_function = function () {
trace("Ich tue was!");
};
my_delegation = Delegate.create(my_target, my_function);
my_button.addEventListener("click", my_delegation);
Die Intrinsic-Klassen, durch die Macromedia die bereits im Flash Player eingebauten Kernbestandteile von Flash beschreibt, sind nun an einigen Stellen korrigiert. Dies erlaubt es bei typisierter Programmierung, dass eine fehlerhafte Anweisung mit falschen Eigenschaften, Methoden und Parametern bereits frühzeitig durch den Compiler erkannt werden kann.
Wo finde ich die Intrinsic-Klassen?
Die Intrinsic-Klassen sind innerhalb des classes-Ordners im Konfigurationsverzeichnis von Flash definiert, der meist unter C:\Dokumente und Einstellungen\[Benutzername]\Lokale Einstellungen\Anwendungsdaten\Macromedia\Flash MX 2004\[Sprache]\Configuration liegt.
26.2.6 JavaScript API
Als Grundlage der ASO Cache-Befehle dient die neue JavaScript Flash File API (http://www.macromedia.com/devnet/mx/flash/articles/jsapi.html). Insgesamt stehen mit dem FLfile genannten Objekt so 14 Methoden zur Verfügung. Diese erlauben es Flash-Entwicklern, selber entwickelte Erweiterungen für die Flash-Entwicklungsumgebung zu schreiben, die Dateien und Ordner auf dem lokalen Dateisystem verwalten, anlegen und ändern können. Die folgenden Anweisungen zum Beispiel sammeln alle SWF-Dateien auf dem Desktop und speichern diese in einer Textdatei in einem neuen Ordner:
var files;
var success;
files = FLfile.listFolder("file:///C:/Dokumente und Einstellungen/Sascha Wolter/Desktop/*.swf");
fl.outputPanel.trace("Ermittel Dateien: "+String(files.length));
success = FLfile.createFolder("file:///C:/Mein Ordner");
fl.outputPanel.trace("Erstelle Verzeichnis: "+String(success));
success = FLfile.write("file:///C:/Mein Ordner/ergebnis.txt", files.join("\n"));
fl.outputPanel.trace("Schreibe Ergebnis: "+String(success));
Tabelle 26.3
Statische Methoden des FLfile-Objektes
Methode
|
Bemerkung
|
Anwendung
|
FLfile.copy(dateiURI:String,kopieURI:String):Boolean
|
|
Kopieren einer Datei
|
FLfile.createFolder(dateiURI:String):Boolean
|
|
Erstellen eines Ordners
|
FLfile.exists(dateiURI:String):Boolean
|
|
Überprüfen, ob eine Datei oder
ein Ordner existieren
|
Methode
|
Bemerkung
|
Anwendung
|
FLfile.getAttributes(dateiURI):String
|
Gibt beim Fehlschlagen null zurück, sonst eine Sammlung der folgenden Zeichen für die gesetzten Attribute: R(ead only), D(irectory), H(idden), S(ystem), A(rchiving).
|
Ermitteln der Attribute einer Datei oder eines Ordners
|
FLfile.getCreationDate
(dateiURI:String):String
|
|
Ermitteln des Erstellungsdatums einer Datei oder eines Ordners
|
FLfile.getCreationDateObj
(dateiURI:String):Date
|
|
Ermitteln des Erstellungsdatums einer Datei oder eines Ordners
|
FLfile.getModificationDate(
dateiURI:String):String
|
|
Ermitteln des Änderungsdatums einer Datei oder eines Ordners
|
FLfile.getModificationDateObj
(dateiURI:String):Date
|
|
Ermitteln des Änderungsdatums einer Datei oder eines Ordners
|
FLfile.getSize(dateiURI:String):Number
|
Gibt beim Fehlschlagen 0 zurück.
|
Ermitteln der Größe einer Datei
|
FLfile.listFolder(dateiURI:String,einschraenken:String):Array
|
Der zweite einschraenken-Parameter ist optional und kann die Werte »files« oder »directories« erhalten, falls nur Dateien bzw. Ordner berücksichtigt werden sollen. Die Funktion gibt eine Liste mit den Dateien und Ordnern im angegebenen Verzeichnis zurück.
|
Ermitteln des Inhaltes eines Ordners
|
FLfile.read(dateiURI:String):String
|
Gibt beim Fehlschlagen null zurück.
|
Lesen einer Datei
|
FLfile.remove(dateiURI:String):Boolean
|
|
Löschen einer Datei oder eines Ordners
|
FLfile.setAttributes(dateiURI:String,attribute:String):Boolean
|
Der Parameter attribute kann aus den folgenden Zeichen bestehen: R(ead only), W(riteable), H(idden), V(isible).
|
Ändern der Attribute einer Datei oder eines Ordners
|
FLfile.write(dateiURI:String,ausgabe:String, anfuegen:String):Boolean
|
Der dritte Parameter ist optional und kann den Wert »append« erhalten, falls eine existierende Datei nicht überschrieben, sondern erweitert werden soll.
|
Erzeugen oder Überschreiben einer Datei bzw. Anfügen an eine Datei
|
JavaScript Flash API nutzen
Am einfachsten erstellen und nutzen Sie eine JavaScript Flash-Datei (*.jsfl), indem Sie zuerst die entsprechende Datei programmieren und diese dann in den Commands-Ordner von Flash kopieren. Diesen finden Sie normalerweise unter C:\Dokumente und Einstellungen\[Benutzer]\Lokale Einstellungen\Anwendungsdaten\Macromedia\Flash MX 2004\[Sprache]\Configuration\Commands. Spätestens nach dem nächsten Neustart von Flash sollte die neue Erweiterung dann im Befehle-Menü von Flash erscheinen.
|