Blog von Jens Franke » 2007 » November

Archiv für November, 2007

AS 3.0 Workflow-Special - FDT Formatter

Es ist an der Zeit einzelne Features von FDT hervorzuheben. Besonders gefällt mir der Formatter.

2007_11_26_fdt_formatter.jpg

Wie der Name schon erahnen lässt kann man damit Source-Code formatieren. Den entsprechenden Menü-Eintrag findet man im Rechts-Klick Menü unter SOURCE | FORMAT. Der nützliche Shortcut liegt auf CMD + SHIFT + F.

Klasse ist, dass man die Formatierung sowohl global als auch für jedes einzelne Projekt definieren kann. Die globalen Einstellungen findet man unter ECLIPSE | PREFERENCES | FDT | PREFERENCES | CODE STYLE | FORMATTER und die projektspezifische in den Projekt-Properties unter FDT FORMATTER.

Das tollste ist, dass die Einstellungen der vier Reiter in dem Ordner .settings in der Datei com.powerflasher.fdt.core.formatter.prefs gespeichert werden, die man somit perfekt im Team austauschen kann, um auf den gleichen Standards zu arbeiten.

In der neusten Version von FDT (3.0.0.1039) ist es jetzt sogar möglich nicht nur einzelne Dateien zu formatieren, sondern auch ganze Source-Ordner. Dazu wählt man einfach den Ordner aus und nutzt den bekannten Shortcut oder den Eintrag im Rechts-Klick Menü.

Kommentar hinzufügen 26. November 2007

firstborn

2007_11_21.jpg

firstborn hat eine neue Seite, die nicht nur optisch und inhaltlich sehr lecker ist, sondern sich auch super bedienen lässt und technisch verdammt gut realisiert wurde. Ganz toll.

Kommentar hinzufügen 21. November 2007

AS 3.0 Workflow-Special - Integration von Assets Teil 3

4. Wir gehen in die SWF und legen auf der Zeitleiste des MovieClips “MovieClipExamples” zwei Labels mit den Namen “in” und “out” an und exportieren erneut die SWC-Datei.

5. Um zu erfahren, wie viele Labels sich auf der Zeitleiste befinden, bedienen wir uns der MovieClip-Eigenschaft currentLabels. Der Rückgabewert ist ein Array mit zwei Objekten des Typs FrameLabel.

Das Objekt FrameLabel wiederum besteht aus den Eigenschaften frame (int) und name (string). Die Information ist schön und gut, aber am besten wäre ja, wenn man per Event benachrichtigt wird, sobald auf der Zeitleiste ein Frame mit Label erreicht wird.

Hier kommt die undokumentierte Methode addFrameScript ins Spiel. Mit dieser Methode injizieren wir auf allen Frames mit Labels automatisch eine Event-Methode, die uns den Namen des Labels mitteilt.

Diese Events fangen wir außerhalb der MovieClip-Klasse (MovieClipExample) ab und können nun nach Belieben weitere Prozesse ausführen.

2007_11_13_assets_1.jpg
ExtendedMovieClip, Basis-Klasse für MovieClipExample
[as]
package de.jefr.display
{
import flash.display.FrameLabel;
import flash.display.MovieClip;

import de.jefr.events.FrameEvent;

public class ExtendedMovieClip extends MovieClip
{

public function ExtendedMovieClip()
{
init( );
}

private function init() : void
{
var labelList : Array = currentLabels;
var labelAmount : int = labelList.length;

for( var i : int = 0; i < labelAmount ; i ++ )
{
var currentFrameLabel : FrameLabel = labelList[i];

addFrameScript( currentFrameLabel.frame , _onFrameLabel );
}
}

private function _onFrameLabel() : void
{
switch( currentLabel )
{
case 'in':
dispatchEvent( new FrameEvent( FrameEvent.IN , false , false ) );
break;
case 'out':
dispatchEvent( new FrameEvent( FrameEvent.OUT , false , false ) );
break;
}
}
}
}
[/as]

FrameEvent-Klasse
[as]
package de.jefr.events
{
import flash.events.Event;

public class FrameEvent extends Event
{

public static const IN : String = ‘de.jefr.events.FrameEvent.IN’;
public static const OUT : String = ‘de.jefr.events.FrameEvent.OUT’;

public function FrameEvent(type : String, bubbles : Boolean = false, cancelable : Boolean = false)
{
super( type , bubbles , cancelable );
}
}
}

[/as]

Main-Klasse

[as]
package
{
import de.jefr.events.FrameEvent;

import flash.display.Sprite;

public class Main extends Sprite
{

private var _mc : MovieClipExample;

public function Main()
{

_mc = new MovieClipExample( );

_mc.addEventListener( FrameEvent .OUT , mcIsOut );

addChild( _mc );
}

private function mcIsOut( e : FrameEvent ) : void
{
trace( ‘mcIsOut’ );
}
}
}
[/as]
Gesamtfazit:

Klasse Sache. Die Designer sind wieder glücklich, dass sie weiterhin Animationen auf der Zeitleiste erstellen können und Entwickler sind froh, dass sie keinen ActionScript-Code auf der Zeitleiste platzieren müssen. Als Interface kommen einfach die guten alten Labels auf der Zeitleiste zum Einsatz und schon gestaltet sich der Workflow um einiges angenehmer.

Bis dato konnte man das Projekt lediglich mit der Flex SDK kompilieren, was natürlich die Designer ausschliesst. Damit man jetzt die Anwendung auch mit der Flash IDE kompilieren kann, definiert man als Document-Class der Asset-FLA die Startklasse (Main.as) des Projektes. Der Kompilierungsvorgang mit der Flash IDE benötigt zwar mehr Zeit, aber das werden die Designer ohne Frage in Kauf nehmen.

Hiermit schließe ich das Kapitel über die Integration von Assets. Ich hoffe Ihr konntet etwas für die Optimierung Eures Workflows mitnehmen. Wie immer bin ich sehr an Eurer Meinung interessiert und fände es natürlich spannend zu hören, wie Ihr Assets in Eure Flashprojekte integriert.

26 Kommentare 13. November 2007

AS 3.0 Workflow-Special - Integration von Assets Teil 2

Zwar klappte der erste Weg bei zwei ActionScript 3.0 Projekten recht gut, aber auf Dauer muss auch gewährleistet sein, dass Designer Animationen auf der Zeitleiste anlegen können und man diese von außen steuern kann.

Nach einigen Recherchen sieht mein aktueller Workflow wie folgt aus:

1. Man hat eine FLA-Datei (Asset.fla), die als Asset-Bibliothek dient. Als Beispiel legt man in der Bibliothek einen MovieClip an und definiert als Linkage-Class “MovieClipExample”. In den Publish Settings aktiviert man “Export SWC” und kompiliert die Asset-Bibliothek.

2007_11_13_assets_1.jpg

2. Nun folgt im Flash Explorer von FDT ein Rechts-Klick auf das Projekt. Hier wählt man NEW | LINKED LIBRARIES aus. In der Folge definiert man eine Pfad-Variable und selektiert die exportierte SWC-Datei.

3. FDT bietet jetzt die Möglichkeit SWC zu durchsuchen und somit kann man im Ordner Linked SWCs, die verknüpfte SWC aufklappen und sieht als Inhalt eine Klasse mit dem Namen MovieClipExample.

2007_11_13_assets_2.jpg

Zwischenfazit Teil 2:

Mit dieser Lösung hat man die Möglichkeit, schon einmal auf die Schnelle zu sehen, welche Assets sich in der SWF befinden und man kann zudem auf die Eigenschaften (z.B. alpha) und Methoden (z.B. gotoAndPlay) der Assets zugreifen.

Toll wäre jetzt noch, wenn man auf einem bestimmten Frame einer Animationen ActionScript-Code ausführen kann, der idealerweise nicht auf der Zeitleiste liegt, sondern in einer externen Klasse.

-> Hier geht es zum dritten und letzten Teil

11 Kommentare 13. November 2007

AS 3.0 Workflow-Special - Integration von Assets Teil 1

Nach der “Flash on the Beach”-Pause werde ich heute einige Ansätze für die Integration von Assets vorstellen.

Ich habe den Themenkomplex in drei Abschnitte aufgeteilt:

1. EMBED-Tags
2. SWCs
3. currentLabels & addFrameScript

Mit Hilfe des Flex EMBED-Tags hat man die Möglichkeit Assets direkt in eine SWF zu kompilieren.

Grafik-Einbindung (PNG, JPG und GIF):

[as]
[ Embed( source = ‘assets/img/example.png’ ) ]
public static const ImgExample : Class;
[/as]

SWF-Einbindung :

[as]
[ Embed( source = ‘assets/swf/example.swf’ ) ]
public static const SWFExample : Class;[/as]

Wichtig: Ein direkter Zugriff auf die Eigenschaften und Methoden der eingebetteten SWF ist nicht möglich. Kommunikation ist lediglich via LocalConnection möglich.

Asset aus SWF-Bibliothek:

[as]
[ Embed( source = ‘assets/swf/example.swf’, symbol=’MovieClipExample’ ) ]
public static const MovieClipExample : Class;
[/as]

Font-Einbindung:

[as][ Embed( source = ‘assets/font/example.ttf’, fontName=’ExampleFont’, unicodeRange = ‘U+0020,U+00A1-U+00FF,U+2000-U+206F,U+20A0-U+20CF,U+2100-U+2183, U+0020-U+002F,U+003A-U+0040,U+005B-U+0060,U+007B-U+007E, U+0041-U+005A, U+0061-U+007A, U+0030-U+0039′, mimeType = ‘application/x-font’ )]
public static const FontExample : Class;
[/as]

Zwischenfazit Teil 1:

Was auf den ersten Blick toll klingt, hat auch einige Nachteile. Man muss immer manuell den Pfad zu den Assets schreiben, vorausgesetzt man weiß überhaupt, dass es neue Assets gibt. Und ein weiteres großes Problem ist, dass man nur über Umwege auf die Zeitleiste eingebetteter MovieClips zugreifen kann.

Weitere Informationen zu den verschiedenen EMBED-Tags findet man hier.

Hier geht es zum zweiten Teil.

9 Kommentare 13. November 2007

Flash on the Beach - Kurzbericht

Ich bin zurück vom Strand und kann nur sagen, dass Flash on the Beach absolut großartig war.

Im Vergleich zu anderen Flash-Konferenzen waren viele Vorträge dabei (Eric Natzke, GMUNK, Robert Hodgin, Craig Swann, Joshau Davis, Marcos Weskamp, Brendan Dawsen), die stark visuell geprägt waren. Es zeigte sich immer wieder, dass der spielerische und leidenschaftliche Einsatz von Technik zu sehr sehenswerten grafischen Werken führen kann. Somit konnte man sich auch oft zurücklehnen und die herrlichen Werke auf sich wirken lassen.

Die wenigen technikorientierten Vorträge (Tink, Carla Diana, Kristin Henry) die ich gesehen habe, fand ich hingegen eher mau. Sie kratzten lediglich an der Oberfläche oder verfehlten aus meiner Sicht das Thema. Aber es kann natürlich auch daran liegen, dass man bei vielen Themen schon selber tief in der Materie steckt. Aber dennoch ist Flash on the Beach für mich die beste Konferenz zum Thema Flash, die ich bis dato besucht habe.

An dieser Stelle auch vielen Dank für die interessanten Gespräche während der Konferenz. Ich freu mich jetzt schon auf die dritte Flash on the Beach.

Kommentar hinzufügen 9. November 2007

Flash on the Beach

Morgen früh geht es für drei Tage nach Brighton zu der "Flash on the Beach"-Konferenz. Das Line-Up klingt ausgezeichnet und natürlich freu ich mich auch schon auf viele interessante Gespräche.

Das Actionscript 3.0 Workflow Special macht somit eine kleine Pause. Kommt gut in die neue Woche.

Kommentar hinzufügen 4. November 2007

AS 3.0 Workflow-Special - Buchtipps

2007_11_01_buchtipps.jpg

Die Grundlagen für eine solide Arbeitsumgebung stehen, aber für das erste Projekt fehlt noch das nötige Know-How in Sachen AS 3.0? Da ich bekanntlich “nur” auf Workflow-Themen eingehe und keinen Actionscript 3.0 Workshop abhalte, dachte ich mir, dass eine Liste mit Buchtipps nicht schaden kann.

Essential ActionScript 3.0

Braucht man nicht viel zu sagen. Die Bibel für Actionscript-Entwickler. -> Amazon

ActionScript 3.0 Cookbook

Wie der Name schon sagt, eine Quelle an Codebeispielen für die Probleme des Alltags. Kann man immer mal gebrauchen. -> Amazon

ActionScript 3.0 DVD

Wer lieber in gesprochener Form Actionscript 3.0 lernen möchte, für den ist die DVD von Saban Ünlü die erste Wahl. -> Amazon

ActionScript 3.0 Animation

Wer wissen will, wie man mit ActionScript Objekten Leben einhauchen kann, der sollte sich das Werk von Keith Peters zu Gemüte führen. -> Amazon

Flash Math Creativity

Zwar nicht das neueste Buch, aber immer noch sehr inspirierend - vor allem, wenn man in Sachen Mathe nicht so fit ist. -> Amazon

Flash Video

Ohne Frage ist Video-Content ein immer wichtigeres Element bei Flash-Projekten. Wer mehr über Video- und Audioproblem, Komprimierung und Encodierung erfahren möchte, wird in diesem Buch fündig. -> Amazon

Actionscript 3.0 Design Patterns

Design Patterns sind extrem nützliche Helfer im Programmieralltag. Wer die Verwendung von Design Patterns in Actionscript 3.0 erlernen will, der wird seine wahre Freude mit diesem Buch haben. Eine Alternative zu dem Werk von O’Reilly ist das Buch “Advanced ActionScript 3 with Design Patterns” von den bekannten Autoren Joey Lott und Danny Pattersion. -> Amazon

Head First Design Patterns

Wem der Klassiker der Gang of Four zu trocken ist, für den ist das Buch “Head First Design Patterns” genau richtig. Sehr gute Ergänzung zum oben genannten Werk von O’Reilly. -> Amazon

Refactoring

Nachdem in FDT und Flex Builder erste Ansätze für Refactoring vorhanden sind, sollte man sich auch langsam mit dem Thema befassen. Die passende Fachliteratur dafür ist der Klassiker von Martin Fowler. -> Amazon

Beautiful Code

Hervorragendes Buch in dem mehrere Experten viele interessante Denkanstösse für Entwickler zum Besten geben. -> Amazon

Code Complete

Ein sehr lehrreiches Buch zum Thema Codedesign, wobei ich leider bis dato noch nicht mehr als 100 Seiten geschafft habe. -> Amazon

Folgende Bücher habe ich nicht, machen aber einen interessanten Eindruck:

- Learning ActionScript 3.0
- ActionScript 3.0 Game Programming University 
- Object Oriented ActionScript 3

Welche Bücher könnt Ihr empfehlen? Wie immer würde ich mich über eure Tipps sehr freuen.

4 Kommentare 1. November 2007

AS 3.0 Workflow-Special - fcsh, der Turbo für die Flex SDK

Der Kompiliervorgang mit der Flex SDK ist ohne Frage spürbar schneller abgeschlossen als mit der Flash IDE. Aber es geht noch schneller. Dazu muss man lediglich die Flex Compiler Shell (fcsh) installieren. Dazu entpackt man die Zip-Datei und kopiert den Inhalt des bin- und des lib-Ordners in die jeweiligen Ordner der vorhandenen SDK und schon ist der Turbo einsatzbereit.

Zum Hintergrund:

Im Gegensatz zum mxmlc (Standard-Kompilier) überprüft fcsh, welche Dateien seit dem letzten Kompiliervorgang geändert wurden, und bezieht unveränderte Dateien direkt aus dem Speicher. Der Adobe Flex Builder bedient sich dieser Technik bereits von Haus aus.

6 Kommentare 1. November 2007

Kalender

November 2007
M T W T F S S
« Oct   Dec »
 1234
567891011
12131415161718
19202122232425
2627282930  

Posts nach Monat

Posts nach Kategorie