FlashDevelop ist eine Open Source Entwicklungsumgebung (IDE) für Flash, Flex und AIR. Die fabelhafte dritte Version hat gerade das Betastadium verlassen — Grund genug, die kostenlose Software ausführlich vorzustellen.
Der Artikel umfasst die Installation von FlashDevelop und die Erstellung eines Flex-Projekts. Außerdem gibt’s hilfreiche Tipps und Tricks (z.B. Codevervollständigund und -generierung), die auch in einem kurzen Video gezeigt werden.
Um FlashDevelop kurz zu präsentieren, einige der Highlights im Überblick:
- unterstützt ActionScript 2, ActionScript 3, MXML und HaXe
- Codevervollständigung und -generierung für ActionScript, XML, MXML und HTML
- Integration des Flex SDK und Zusammenarbeit mit der Flash IDE
- Projekt- und Dateiverwaltung
Somit ist FlashDevelop zum einen eine interessante Alternative zum Flex Builder (aufgrund der MXML-Fähigkeiten). Zum anderen eine sinnvolle Ergänzung zur Flash IDE und dem dort integrierten „rudimentären” Codeeditor.
FlashDevelop herunterladen und installieren
Für eine Installation von FlashDevelop wird sowohl die Java-Runtime (www.java.com/download) als auch die .NET-Laufzeitumgebung (.NET 2.0) benötigt. Entsprechende Hinweise beim Starten des FlashDevelop-Installers geben Auskunft, falls diese nicht vorhanden sein sollten. FlashDevelop läuft zurzeit leider nur auf Window (sehr schade für Mac-Nutzer, aber evtl. ändert sich dies mit FD4).
FlashDevelop selbst kann hier heruntergeladen werden: FlashDevelop Downloadseite. Ganz oben findet man die neueste Version.
Selbstverständlich sollte man auch den aktuellen Flash Player (ActiveX im Internet Explorer) haben. Dieser liegt sowieso dem Flex SDK bei, das bekanntlich Open Source ist und ebenfalls noch heruntergeladen werden muss. Man entpackt es einfach und legt es irgendwo ab.
Die Standardinstallation ist schnell durchgeführt – auf dem Desktop liegt danach ein Icon zum Starten von FlashDevelop.
FlashDevelop einrichten
Zuerst bringt man FlashDevelop bei, wo das Flex SDK auf der Festplatte liegt. Im Menu „Tools > Programm Settings” findet man eine Reihe Einstellungsmöglichkeiten. In der linken Spalte wählt man „AS3Context”, worauf in der rechten Hälfte die Option „Flex SDK Location” erscheint. Hier wählt den Pfad, wo zuvor das Flex SDK abgelegt wurde.
Tipp: Wer mehrere Flex SDKs hat (z.B. Version 3 und 4), stellt hier die Version ein, die am häufigsten genutzt wird. Die Einstellung lässt sich unabhängig davon für einzelne Projekte überschreiben, wenn ein anderes SDK gewünscht ist.
Das erste Projekt
Jetzt geht’s los. Über „Project > New Project” können ganz unterschiedliche Arten von Projekten angelegt werden. Sie sind unterteilt in ActionScript 2, ActionScript 3 und HaXe und werden jeweils kurz beschrieben.
Um eine Flex-Anwendung zu erstellen, ist „Flex 3 Project” die richtige Wahl. Das erste Projekt soll außerdem FlexFlashDevelopDemo
heißen. Über „Location” legt man z.B. einen Ordner auf dem Desktop an und wählt diesen aus (alternativ: „Create directory for project” aktivieren). Nach einem Klick auf OK wird das Projekt dann dort erstellt.
Die Frage nach dem Autor dient lediglich dazu, damit beim Erstellen von Klassen direkt der Namen des Entwicklers in den Metadaten steht.
Werfen wir zunächst einen Blick auf die Projektverwaltung.
Projektverwaltung
Das Fenster am rechten Rand zeigt und verwaltet die Dateien des Projekts. Es kann wie der Windows Explorer z.B. zum Öffnen, Kopieren, Duplizieren oder Löschen von Dateien genutzt werden.
Der src
-Ordner (src wie Source) beinhaltet alle Quelldateien, im konkreten Fall bisher nur die Datei Main.mxml
. Am kleinen grünen Pfeil auf dem Dateiicon ist zu erkennen, dass es sich um die Hauptdatei handelt, die kompiliert werden soll (Falls es einmal eine andere Datei sein soll: Rechtsklick auf die neue Datei und „Always compile” auswählen).
Im lib
-Verzeichnis können Libraries (.swc) platziert werden. Diese müssen über das Menü „Project > Properties > Compiler options” dann noch eingebunden werden. In den anderen Reitern dieses Menü findet man auch zahlreiche weitere Einstellungsmöglichkeiten, z.B. die Flash Player Version, Breite und Höhe der SWF, Hintergrundfarbe, etc.
Die fertige SWF-Datei landet im bin
-Verzeichnis. Dort ist bereits alles vorhanden, was benötigt wird, um das Ergebnis ins Netz zu stellen. Dazu gehört eine HTML-Seite und das JavaScript SWFObject (Einbindung von Flash in HTML) incl. Express-Installation, falls der Flash Player veraltet ist.
MXML-Datei editieren
Nach dem Öffnen von Main.mxml
sieht man, dass bereits einige Zeilen Code vorhanden sind. Es handelt sich um das Grundgerüst einer leeren Flex-Applikation. Um z.B. einen Button zu erzeugen, fügt man <mx:Button label="Mein Button" />
in die leere Zeile ein.
An dieser Stelle wird deutlich: Was (im Vergleich zum Flex Builder) fehlt, ist eine Designview, wo die MXML-Komponenten grafisch angezeigt und positioniert werden können.
Kompilieren
Mit dem Befehl „Project > Test Movie”, der sich am schnellsten über die F5-Taste ausführen lässt, wird die Anwendung kompiliert und gestartet. Beim ersten Mal dauert dies etwas länger, da die komplette Anwendung kompiliert wird. Beim jedem weiteren Aufruf geht’s wesentlich schneller, da dann das Caching des Compilers greift (fcsh).
Unten im „Output“-Fenster sieht man beim Kompilieren die Informationen des Kompilers. Enthält der Quelltext einen Fehler, wird dies dort angezeigt. Außerdem wird dann zusätzlich das Result-Fenster aufgeklappt, in dem man den Fehler anklicken kann oder direkt zur fehlerhaften Stelle im Quelltext gelangt.
Möchte man die Anwendung lediglich kompilieren, nicht jedoch starten, lautet der passende Befehl „Project > Build Project” (F8). Wie oben bereits erwähnt, liegt die fertige SWF-Datei dann im bin
-Verzeichnis.
Tastaturbefehle: F5 (= Kompilieren und Ausführen) und F8 (nur Kompilieren)
Tipps und Tricks
Hier zunächst einmal ein kurzer Screencast (ohne Ton), der zahlreiche hilfreiche Features von FlashDevelop in Aktion zeigt. Im Anschluss werden die Features erklärt.
Autovervollständigen (Code completion)
FlashDevelop kann alle möglichen Begriffe wie Klassennamen, Eigenschaften,etc. automatisch vervollständigen. Sobald ein paar Buchstaben eingetippt sind, schlägt FlashDevelop die passenden Begriffe vor. Dabei kennt es sowohl die Klassen von Flash/Flex als auch eigene Klassen, die im Projekt verwendet werden.
Möchte man die Autovervollständigen-Funktion manuell auslösen, geht dies mit „Ctrl + Leertaste”. Um das Feature auszublenden, einfach Escape drücken.
Automatischer Import
[ad]Beim Importieren von Klassen unterstützt FlashDevelop, indem es die verfügbaren Klassen anzeigt. Dadurch kann man per Klick einfach die gewünschte Klasse auswählen. Man muss dabei nicht einmal das Paket (package) kennen, aus dem die Klasse stammt – es reicht der Klassenname.
Wie im Video zu sehen: Man kann Variablen definieren, deren Klassen noch nicht importiert ist, woraufhin FlashDevelop automatisch den entsprechenden Import-Befehl hinzufügt. Das spart Zeit.
Event Handler erstellen
Ebenfalls nützlich: Event Handler, z.B. für Mausklicks auf einen Button, können per „Ctrl+Shift+1” generiert werden. Dazu schreibt einfach den Funktionsnamen in den Eventlistener und drückt die Tastenkombination.
Getter und Setter
Auch Getter und Setter funktionieren mit Ctrl+Shift+1. Man definiert ganz gewöhnlich eine Variable. FlashDevelop ändert dann sowohl den Variablennamen (Unterstrich als Präfix) und erstellt die get- und set-Funktion.
Snippets
FlashDevelop beinhaltet so genannte Snippets (Codeschnippsel). Das können Befehl inklusive Syntax wie for
, switch
, catch
sein. Der Befehl auf der Tastatur lautet „Ctrl + b” oder auf die Tab-Taste benutzen.
Kommentare (ASDocs)
Um die Dokumentation des Quellcodes zu erleichtern, gibt man vor einer Funktion die Zeichen /**
ein. Es erscheint „Method details” als Vorschlag. Ein Klick darauf liefert die ASDoc-kompatiblen Kommentare. Enthält die Funktion Parameter, stehen diese bereits da.
Die wichtigsten Tastaturbefehle findet man auch auf der Startseite von FlashDevelop. Diese sind vor allem: „Ctrl + Leertaste” für Autovervollständigen und „Ctrl + Shift + 1” für die Codegenerierung. „Ctrl + b” oder Tab für die Snippets. F4 bzw. Shift+F4 um zu einer Deklaration zu springen (bzw. wieder zurück).
Fazit
FlashDevelop ist ein absolut gelungenes Tool. Ich nutze es schon lange auf einem Rechner, wo kein Flex Builder (Flash Builder) installiert und kann nur sagen: Empfehlenswert!
Nutzt ihr Flash Develop? Kennt ihr noch weitere Tipps oder Tricks? Was gefällt euch am besten? Über Kommentare würde ich mich freuen.
Hi,
ich finde dieses Tool auch super klasse. Wenn man nicht grade einen live MXML-Editor benötigt, dann ist es unschlagbar. Seit dem aktuellen Release gibt es auch bei mir keine Exceptions mehr und man kann schneller arbeiten, als in Eclipse (persönliches Empfinden). Fd sei auch allen empfohlen, die mit AS2 arbeiten. MTask ist in integriert, somit brauch man nicht mal mehr Flash8 als Code-Compiler.
Ich hoffe, dass in Zukunft die Community um das Programm größer wird und es noch mehr Plugins gibt.
Meine Empfehlungen:
Sourcecode-Statistics
http://www.flashdevelop.org/community/viewtopic.php?f=4&t=4167
und Highlight-Plugin:
http://www.flashdevelop.org/community/viewtopic.php?f=4&t=4005
Hi Chris,
danke für den Plugin-Tipp. Ich wußte nicht einmal, dass es überhaupt Plugins für FlashDevelop gibt.
Tipp:
Klassen des Flex 4 SDK (Gumbo) für die Code completion hinzufügen:
1) "Project > Project settings > Compiler options > Intrinsic Libraries"
2) Dort den Pfad …\frameworks\projects\flex4\src eintragen (z.B. C:\Program Files\Adobe\FlexSDK\frameworks\projects\flex4\src)
Funktioniert dann bei für ActionScript, leider jedoch nicht in MXML. Vielleicht kann noch jmd weiterhelfen?
Es gibt übrigens auch ein Plugin für eine Designview, also um MXML grafisch zu erstellen (wie Flash Builder).
Allerdings ist es erst in der Alpha-Phase.
Post FlexDesignView Plugin – Alpha
http://www.flashdevelop.org/community/viewtopic.php?f=4&t=3727
Ein komplette FlashDevelop-Plugin-Liste gibt es hier:
http://www.flashdevelop.org/wikidocs/index.php?title=3rd_Party_Plugins
Hallo zusammen,
dieses Posting hat mir den Tag gerettet ;-). Ich dachte schon ich müsste riesig in Adobe Flash investieren um mal was in AS3 zu machen. Ich werde Flashdevelop gleich mal testen.
Hier ein Tipp, wie man eines neues Klassentemplate (custom template) anlegt, z.B. ein Klasse mit Singleton.
In Flash Develop "Tools > Application Files" aufrufen, der Explorer kommt. Dort in Templates/ProjectFiles/AS3Project den folgenden Inhalt mit dem Namen "Singleton.as.fdt" abspeichern. Jetzt kann man bequem im Project-Fenster über rechte Maustaste "Add" ein Singleton hinzufügen.
package $(Package) {
/**
$(CBI)* …
$(CBI)* @author $(DefaultUser)
$(CBI)*/
public class $(FileName) {
private static var instance:$(FileName);
private static var allowInstantiation:Boolean;
public static function getInstance():$(FileName) {
if (instance == null) {
allowInstantiation = true;
instance = new $(FileName)();
allowInstantiation = false;
}
return instance;
}
public function $(FileName) ():void {
if (!allowInstantiation) {
throw new Error("Error: Instantiation failed: Use $(FileName).getInstance() instead of new.");
}
}
$(EntryPoint)
}
}
(Klasse von hier: http://209.85.129.132/search?q=cache:iqqzsKdHgCIJ:mugur.com/2009/01/as3-singleton-the-flashdevelop-template/+flashdevelop+singleton&hl=de&client=firefox-a&gl=de&strip=1 )
Ich nutze FD sehr gerne, z.Zt. hauptsächlich mit der Flash-IDE für Non-Flex-Projekte. Der Screencast gibt m.E. nach schon die wichtigsten Features wieder, wobei es noch viele zahlreiche weitere hilfreiche Funktionen gibt, wie z.B. das Outline-Panel, das man nach eigenen Kriterien sortieren kann und Methoden und Eigenschaften anspringen kann. Sehr hilfreich bei Klassen mit vielen Codezeilen.
Was mir bisher fehlt ist eine 'Refactor' Funktion, wie man sie aus FDT kennt, d.h. dass ich bspw. den Namen einer Eigenschaft ändern kann und das projektübergreifend übernommen wird, oder hab ich das übersehen?
Hi Nick,
guter Hinweis mit dem Outline-Panel.
Meines Wissens gibt es kein Refactoring in FlashDevelop. Das wäre manchmal schon praktisch …
Irgendwo habe ich mal von einem Plugin gelesen, aber das scheint nie das Licht der Welt erbklickt zu haben.
Hier ein Tipp zu Modulen:
"Compiling Module SWFs Using FlashDevelop"
http://ghostwire.com/blog/archives/compiling-module-swfs-using-flashdevelop/
Configure FlashDevelop Code Autocompletion For AIR API
http://shang-liang.com/blog/update-configure-flashdevelop-code-autocompletion-for-air-api/
Ein weiterer Tipp zu FlashDevelop, der zeigt, wie man FlexPMD in FlashDevelop einbindet.
http://www.swfgeek.net/2009/09/18/using-flex-pmd-in-flashdevelop-3/
Wie kann man eigene Compiler Optionen in FlashDevelop anlegen?
Die Standard-Compiler-Optionen liegen im Ordner "obj" eines jeden Projekts. Dieser werden allerdings bei jedem Kompilieren überschrieben. Eine Änderungen bringt also nichts.
Dsehalb legt man die Optionen in einem neuen, eigenen XML-File ab.
Beispiel:
<?xml version="1.0" encoding="utf-8"?>
<flex-config>
<compiler>
<define>
<name>CONFIG::LOGGING</name>
<value>false</value>
</define>
</compiler>
</flex-config>
Unter "Project > Properties > Compiler Options" gibt es "Additional Compiler Options". Dort die Datei hinzufügen -load-config+=obj\custom.xml
That's it.