AS 3.0 Workflow-Special - Erzeugung von SWF-Dateien
Nachdem wir zuletzt jede Menge Plug-ins installiert haben, werde ich heute die gängigsten Möglichkeiten zur Erzeugung von SWF-Dateien vorstellen und für heute auch lediglich aus der Sicht eines Entwicklers.
In einem der folgenden Beiträgen werde ich auch auf die Verknüpfung von Actionscript-Code mit Grafik eingehen. Ein ganz wichtiger Themenkomplex wird dabei die Zusammenarbeit zwischen Flashdesigner/Motiondesigner und Flashentwickler sein.
Möglichkeit 1: Flash IDE
- man verwendet den internen Editor zum Erstellen von AS 3.0 Klassen
- mit der Flash IDE wird auch kompiliert
Vorteil:
- außer Flash CS 3 muss man keine Software installiert haben
- auch Flashdesigner können die Anwendung kompilieren
- die Erstellung des Größenberichts ist möglich
Nachteil:
- allgemein der langsamste Workflow
Möglichkeit 2: Externer Editor und Flash IDE
- man verwendet einen externen Actionscript-Editor, z.B. FDT oder Flex Builder für die Erstellung von AS 3.0 Klassen
- es wird wieder mit der Flash IDE kompiliert
Vorteil:
- auch Flashdesigner können die Anwendung kompilieren
- Erstellung des Größenberichts möglich
Nachteil:
- je nach Größe der Bibliothek in der Haupt FLA-Datei kann der Kompiliervorgang sehr viel Zeit in Anspruch nehmen
- ständiger Wechsel zwischen Editor und IDE
Möglichkeit 3: Externer Editor und Flex SDK
- man benötigt nicht zwingend die Flash IDE
- Grafiken, Movieclips und Schriften können per EMBED-Tag in die SWF eingebettet werden
Vorteil:
- kein Wechsel zwischen IDE und Editor nötig
- schnellerer Kompiliervorgang
Nachteil:
- Flashdesigner können die Anwendung nicht mit der Flash IDE kompilieren
- Grafischer Editor fehlt, alles muss per Actionscript erzeugt werden
Fazit
Möglichkeit eins scheidet für mich komplett aus, weil diese keinerlei Übersicht über die Klassen/Packages bietet und auch sonst der Editor nur einen ungenügenden Funktionsumfang bietet. In den beiden kommenden Beiträgen werde ich dann detailliert auf die Möglichkeiten zwei und drei eingehen, wobei ich als externen Editor FDT nutzen werde.
Natürlich gibt es neben den drei bekanntesten Wegen auch noch weitere Wege, um SWF-Dateien zu erzeugen, aber dazu später mehr.
24. October 2007
Abgelegt unter: Design, Flash, Publikationen, Technik Allgemein
19 Comments Add your own
1. Sebastian | October 24th, 2007 at 12:46 pm
Für mich persönlich ist die letzte Variante die mit Abstand beste. Das mit dem fehlenden grafischen Editor stimmt ja auch nur bedingt. Man kann ja trotzdem die Assets in Flash anlegen, nur der Kompiliervorgang (des Codes) ist halt ein anderer.
Leider ist es wirklich so, dass nach wie vor viele Flasher erwarten, dass sie eine Fla öffnen und dann einfach STRG+Enter drücken müssen um alles zu erzeugen.
Danke für einen weiteren Beitrag
2. Administrator | October 24th, 2007 at 12:55 pm
Hej Sebastian,
geht mir ähnlich. Leider schließt man damit viele Designer und auch einige Flasher aufgrund des fehlenden Know-Hows oder fehlender Software aus.
Aber wir sind ja erst am Anfang des Specials … und ich habe ein Ziel.
3. peyman | October 24th, 2007 at 1:58 pm
für mich wäre es sehr interesannt, zu erfahren wie man Möglichkeit 3 effektiv nutzen kann. Wie kann ich denn Timeline-animationen die ich sonst in die Library gelegt habe und mit einem Linkage versehen habe ohne Flash IDE weiterhin erstellen und nutzen?
4. Administrator | October 24th, 2007 at 2:18 pm
Hej Peyman,
genau das ist der spannende Punkt und genau darauf werde ich noch eingehen. Versprochen!
5. Tim | October 24th, 2007 at 4:16 pm
Wobei ich den Nachteil ?- Grafischer Editor fehlt, alles muss per Actionscript erzeugt werden? unter Möglichkeit 3 schon schwerer gewichten würde.
Nicht ohne Grund gibt es z.B. im Flex Builder einen ?grafischen Editor? . Den im schlimmsten Fall artet es OHNE grafischen Editor in endlosen Tests a la
- Code ändern
- Kompilieren
- Code ändern
- Kompilieren
… aus.
Und im Flex Builder und Flash kann man sich die einzelnen Views schön ?zusammenklicken?. Mit der richtigen Struktur kann man damit dann auch mehr anfangen als mit Klassen, wo zig mal addChild() steht um einen View zu erstellen.
Die Lösung dass man die Inhalte von der Flash Bibliothek einbettet, wie Sebastian es erwähnt, ist ja erstmal schön und gut, hat natürlich wieder den Nachteil dass man, je nach Umfang der Inhalte (z.B. ganze Views), bei der Bearbeitung wieder zwischen den IDEs wechseln muss.
Ob das aber wirklich so ein großer Nachteil ist sei mal dahingestellt.
Darüberhinaus bietet Flash die Möglichkeit grafische Elemente zu erstellen, zwar eher rudimentär, aber bei Möglichkeit 3 bräuchte man immer ein ?Grafikprogramm?. Wenn wir mal ganz streng die Vor- und Nachteile abwiegen.
Der wirkliche Vorteil des Entwickeln mit FDT und dem Flex 2 SDK ist doch erstmal das vorhandene Flex 2 Framework und eventuell das es kostenlos ist.
Der Einstieg ist erstmal ein wenig kostengünstiger und bietet Entwicklern genug Funktionalitäten um direkt mit der Erstellung von Anwendungen zu starten. Flash bietet mit den mitgelieferten Komponenten nicht soviel Funktionalität.
Aber wenn wir jetzt die Beta des ?Flex Builder 3? betrachten und vom zukünftigen Preis mal absehen, kommt noch zusätzliche ?Konkurrenz? für die Möglichkeit 3 auf dem Markt die man trotz den Features von FDT 3.0 nicht unterschätzen sollte.
Darum hinkt meiner Meinung nach die Möglichkeit 3 ein wenig der Zeit hinterher und ich finde die Lösung 2 (mit Flash bzw. Flex Builder) am besten. Grafische Editoren haben immer mehr Einzug in die Programmierung und erleichtern meiner Meinung nach sehr das Programmiererleben. Das nun jeder, egal bei welcher Skript-oder Programmiersprache, über Drag & Drop ?Anwendungen? erstellen kann, ist für mich noch nie ein Nachteil gewesen. Denn Sicherheit, Usability, Kompatibilität und Wiederverwendbarkeit kann man nicht so einfach einfügen. Auch das ?Aus-, Verbessern? vom automatisch erstellten Code ist nicht mehr so schlimm, wie es manche noch immer verbreiten.
Nicht außer Acht lassen sollte auch man die Erstellung von Anwendungen nur mit dem Flex Builder, was meiner Meinung nach ein sehr annehmbare Kombination aus Möglichkeit 2 und 3 ist.
Also ich bin gespannt auf die weiteren Artikel.
PS:
Und ich gebe zu das ich Dateien über Drag&Drop - Operationen kopiere/verschiebe/löschen und es nicht über die Kommandozeile machen. Ihr könnt mich dafür ruhig steinigen.
@peyman: Als SWF exportieren und über [Embed] einbetten. Hier einfach mal ein paar Beispiele:
http://www.adobe.com/devnet/flex/quickstart/embedding_assets/
6. Jojo | October 24th, 2007 at 5:03 pm
Mich interessiert auch der Punkt 3. Wie man diesen in Verbindung mit AS3 effektiv nutzen kann, da es ja nicht mehr diese geniale Möglichkeit wie mit MTASC gibt.
7. Administrator | October 24th, 2007 at 5:48 pm
Hallo Tim,
danke für deinen sehr ausführlichen und guten Kommentar. Interessante Ansichten.
Wobei ich den Nachteil “- Grafischer Editor fehlt, alles muss per Actionscript erzeugt werden” unter Möglichkeit 3 schon schwerer gewichten würde.
Da folge ich Dir. In meinem Beitrag stand bis dato auch nichts von Gewichtung.
Magst Du mir verraten, für welche Zwecke Du das Flex-Framework in reinen Actionscript-Projekten einsetzt?
Grafische Editoren haben immer mehr Einzug in die Programmierung und erleichtern meiner Meinung nach sehr das Programmiererleben.
Sieht man ja auch an den Bemühungen von Adobe Thermo. Bei der Lösung 3 ist übrigens der Einsatz der Flash IDE nicht zwigend ausgeschlossen. Für was nutzt Du die Design View des Flex Builders bei reinen Actionscript-Projekten?
8. Johannes | October 24th, 2007 at 5:57 pm
Mich persönlich interessiert die Variante ausserhalb der Flash IDE, in diesem Fall die Variante Nr. 3, da ich bis vor kurzem in Verbindung mit der Flash IDE gearbeitet habe was die Einbindug von Graphiken angeht. Nun möchte ich mich komplett von der Flash IDE lösen.
Aus diesem Grund freue ich mich über weitere Posts.
Viele Grüße
Johannes
9. Sebastian | October 24th, 2007 at 7:18 pm
Nette Diskussion
Die Design Ansicht im Flex Builder und Thermo sind ja sicher feine Sachen, aber eben nur wenn man mit Flex arbeitet. Und Flex bietet sich eben wirklich in erster Linie nur bei Datenverarbeitung und -visualisierung an. Für meine Tätigkeiten beispielsweise überhaupt nicht und so ist es auch bei vielen anderen. Mein Fazit also: Flex Builder ist für Flex Entwicklung sehr vorteilhaft (klar), FDT für reine ActionScript Entwicklung jedoch besser. Schließe mich da also Jens’ Hinterfragung an.
Ich finde auch, dass man eben Design und Code soweit wie möglich trennen sollte. Wer will schon einen Designer im Code rumfuschen lassen (der Designer will das sicher genau so wenig)
Entsprechend platziere ich nur das per Code, was dynamisch platziert werden muss. Alles andere kann schön in Flash angelegt werden und im Idealfall muss man anschließend gar nicht mehr an die Datei heran. Ich sehe das aus Erfahrung relativ unproblematisch.
Hier gibt es halt erst dann das von Jens als Nachteil angesprochene ?Problem?, wenn der Designer den Code selbst aus Flash heraus kompilieren möchte. Zukünftig kann man dann auf dieses Blog verweisen und hat seine Ruhe
viele grüße, sebastian
10. peyman | October 25th, 2007 at 8:54 am
klar ist es Möglich Animationen die man ansonsten in der Flash IDE in einen linked MovieCLip in die Library gelegt hat, bei Variante 3 (ohne Flash IDE) in eine swf zu exportieren und per [EMBED] zu laden. Doch ich sehe da eher einen Nachteil, als einen Vorteil. Denn man benötigt ja immer noch die Flash IDE zume rstellen der Animationen –> SWF. Außerdem steigt die Anzahl der zu ladenden / einzubindenden SWF Files. Ich finde das es dadurch bei großeren Projekten sehr unübersichtlich werden kann. bei komplexen Projekten sehe ich es dann als einfacher an, auf die Library zugreifen zu können.
11. Administrator | October 25th, 2007 at 9:13 am
Hej peyman,
wieso steigt die Anzahl der zu ladenden SWF-Dateien? Ich kann doch auch in einer einzigen SWF alle Assets ( Animationen ) verwalten.
Dank EMBED-Tags lässt sich auf jeden Fall schneller kompilieren, als mit der Flash IDE. Aber ich werde die Tage noch eine bessere Variante als die EMBED-Tags vorstellen - jedenfalls aus meiner persönlichen Sicht.
12. Daniel | October 25th, 2007 at 10:29 am
Ich denke mal, du spielst da auf SWC an. Gibt es dabei eine Möglichkeit, im Nachhinein ?Display-Klassen? an die jeweiligen MC’s zu binden? Also ähnlich wie bei MTASC und AS2 (Code Injection). Ansonsten müsste ich ja bei jeder Änderung einer UI-Klasse (die zu einem Asset in meiner Library gehört) beides kompilieren: Die Assets und das ganze Projekt.
Ich bin schon sehr gespannt auf die weiteren Kapitel. Den Austausch zu diesem extrem wichtigen und spannenden Thema finde ich super - Weiter so!
13. peyman | October 25th, 2007 at 3:52 pm
Aber ist es nicht so, bitte korigiere mich wenn ich mich irre, dass man durch den Embed Tag eine swf, quasi in einen neu generierende swf mit einbindet? Die einzubindende SWF übernimmt dann die Aufgabe der Library. So gesehen habe ich eine SWF für die Library und eine SWF für die Applikation selbst.
oder liege ich da falsch?
14. Administrator | October 25th, 2007 at 4:20 pm
Hej Peyman,
das ist richtig. Du hast zwei SWF-Dateien, aber ausliefern musst Du nur die, die Du mit Flex kompilierst. Die Asset-SWF der Flash IDE dient nur zum Erzeugen der auslieferbaren SWF.
Meine Aussage bezog sich auf:
Außerdem steigt die Anzahl der zu ladenden / einzubindenden SWF Files. Ich finde das es dadurch bei großeren Projekten sehr unübersichtlich werden kann.
15. Jojo | October 25th, 2007 at 4:40 pm
Gibt es dabei eine Möglichkeit, im Nachhinein “Display-Klassen” an die jeweiligen MC’s zu binden? Also ähnlich wie bei MTASC und AS2 (Code Injection). Ansonsten müsste ich ja bei jeder Änderung einer UI-Klasse (die zu einem Asset in meiner Library gehört) beides kompilieren: Die Assets und das ganze Projekt.
Genau das interessiert mich auch brennend.
Also bitte bei dieses Thema sehr ausführlich behandeln
16. Administrator | October 25th, 2007 at 6:39 pm
Hej,
am Anfang der nächsten Woche werde ich auf das Thema eingehen.
17. Sebastian | October 25th, 2007 at 7:48 pm
Ich finde es auch nicht problematisch, wenn man trotzdem die Flash IDE benötigt. Für mich ist die Flash IDE(!) mittlerweile in erster Linie ein Animationsprogramm, also im Grunde das, was es in den ersten Versionen war. Man sieht das ja auch an den Weiterentwicklungen - verbessertes Vektorwerkzeug und ein PSD Import sind reine grafische Erweiterungen. Der Editor hat sich zwar auch verbessert, aber kann mit vielen externen Editoren bei Weitem nicht mithalten.
PS: Und Komposition ist sowieso besser *g
18. peyman | October 26th, 2007 at 9:14 am
Also um die Flash IDE kommt man ja eh nicht herum. Denn Assets musst du ja weiterhin durch die IDE erstellen. Ichbin echt gespannt wie der Workflow mit FDT und dem Flex Compiler funktioniert und wo die Vorteile gegenüber dem Flash Compiler sind.
19. Sebastian | October 27th, 2007 at 8:56 am
Mit der Flex SDK kannst du halt per Kommandozeile kompilieren. Bei der Flash IDE musst du Flash bzw. die Datei öffnen und musst im Programm veröffentlichen. Und das Kompilieren an sich dauert auch länger. Es gibt zwar auch ein FDT-ANT Task, der das automatisiert (im Hintergrund öffnet und kompiliert), aber Spaß macht das nicht…
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed