
Es steht fest: Die FFK09 findet vom 27. bis zum 30. April 2009 erneut im Komed in Köln statt. Und getreu dem Motto „Der frühe Vogel fängt den Wurm“ hoffen Marc Thiele und ich, dass du dir schon jetzt den Termin rot im Kalender markierst. Für die Konferenz am 28. und 29. April 2009 soll das Programm noch abwechslungsreicher werden als bisher! Schwerpunkt der Veranstaltung ist das Thema Web-Anwendungen (Rich Applications) mit Flash, Flex, AIR und Silverlight. Verstärkt sind auch wieder Themen für Designer dabei. Außerdem gibt es im Vorfeld am 27. April einführende Workshops sowie im Anschluss an die Konferenz am 30 April vertiefende Workshops. Wer einen Vortrag halten möchte oder eine Partnerschaft anstrebt, soll sich gerne bei mir melden. Kritik sowie Vorschläge zur Konferenz sind natürlich ebenfalls jederzeit willkommen.
Tag Archive for 'Flex'
ActionScript ist mit Flash CS4 Professional trotz der in den Medien kursierenden Diskussionen rund um die ActionScript-Basis ECMAScript 4 weiter gewachsen (http://www.flashforum.de/forum/showthread.php?t=257795 und http://blogs.adobe.com/open/2008/08/blog_entry_dated_81408_715_pm.html). Die spektakulärste Neuerung aus Sicht von Programmierern könnte dabei der neue Datentype Vector sein. Dieser erlaubt erstmals typisierte und damit typsichere Listen. Die Verwendung geschieht analog zur Klasse Array. Einzig die Typisierung und das Erstellen bedürfen einer neuen Schreibweise mit Angabe des Typs in spitzen Klammern getrennt durch einen Punkt:
1 2 | var v:Vector.<String>; v = new Vector.<String>(); |
Zu den Neuerungen gehören außerdem die Klassen rund um Text, Pixel Bender (Codename Hydra), 3D und inverse Kinematik. Außerdem kann man nun Sounds zur Laufzeit erzeugen, primitive Formen leichter mit der Graphics-Klasse zeichnen und Dateien auch aus dem Browser heraus per FileReferenc lokal laden und speichern. Und in der Bibliothek ist endlich sichtbar, ob es sich um einen MovieClip, ein Sprite oder ein mit dem Flex Integration Kit für Flash aufbereitetes Symbol handelt. Bei der Zusammenarbeit mit Flex hilft es außerdem sehr, dass Flash nun endlich auch Metadaten wie AccessibilityClass, ResourceBundle, Style, Embed und SWF versteht – nicht nur in Klassen sogar in Bildskripts. Gerade Embed ist auch in reinen Flash Projekten durchaus nützlich, um Inhalte allein durch die Programmierung und ohne den Umweg über die Bibliothek zu nutzen.
Die Einstellungsmöglichkeiten von ActionScript umfassen nicht mehr nur eine Sammlung von Klassenpfaden sondern sind ähnlich wie bei Flex in Quellcode-Pfade, externe Bibliotheken zur Laufzeit (Runtime Shared Libraries) und Bibliohtekspfade zur Kompilierzeit unterteilt. Hinter den ActionScript-Einstellungen im Register Flash der Einstellungen für das Veröffentlichen im Menü Datei verbergen sich nicht nur die Klassenpfade. Dort können auch Konstanten angelegt werden, die wie normale Variablen in ActionScript zu nutzen sind. Außerdem erlauben diese auch eine bedingte Kompilierung, wenn der relevante Code hinter der Konstante in geschweiften Klammern steht:
1 2 3 4 | CONFIG::FLASH_AUTHORING { trace("Foo"); } trace(CONFIG::FLASH_AUTHORING); |
Für Anwendungen im Internet zählt Flex zur bevorzugten Plattform vieler Agenturen und Auftraggeber. Flex spricht dabei nicht nur Flash Programmierer an. Auch Java-Entwickler kommen dank Eclipse basierter Entwicklungsumgebung schnell zu ansprechenden Ergebnissen. Für alle, die einen schnellen Einstieg suchen, haben wir im Flashforum rund drei Stunden Flex Videos ins Netz gestellt. Wer nach diesem Crashkurs mehr zu Flex erfahren möchte, der findet in meinem neunstündigen Videotraining zu Flex 3 eine grundlegende und umfassende Einführung mit vielen Praxistipps.
AIR bringt das Web auf den Desktop: So stehen die Möglichkeiten des Desktops auch für Webtechnologien wie HTML, JavaScript, Flash und Flex zur Verfügung. Und bei Bedarf kommunizieren diese Lightweight Desktop Applications bei bestehender Internetverbindung wie Rich-Internet-Applications (RIA) mit einem entfernten Webserver. Wer mehr darüber wissen möchte, erhält im Flashforum unter http://www.flashforum.de/video-trainings?product_id=119 eine kostenlose Video-Einführung in das Thema. Und wem dieser Teil gefällt, der kann ja auch gleich noch einen Blick auf das zugehörige komplette Flex 3 Training von mir werfen.
English: The following article describes the ActionScript 3 metadata framefactory and its usage for creating a preloader.
Deutsch: Zahlreiche Wege führen zu einer Flash-Anwendung. Und der Weg über reinen Code ganz ohne Zeitleiste erfreut sich dabei zunehmender Beliebtheit – zumal mit dem Flash Development Toolkit (FDT) und dem Flex Builder zwei Eclipse basierte Entwicklungsumgebungen bereitstehen, die dem im Flash enthaltenen Editor Lichtjahre voraus sind. Doch diese Herangehensweise hat auch ein paar Tücken. Eine davon ist der Preloader, der bei größeren Anwendungen den Ladeprozess ansprechend visualisiert.
In klassischen Flash-Anwendungen wird vielfach die Zeitleiste für den Preloader missbraucht, indem am Anfang die Wiedergabe stoppt, bis der restliche Inhalt geladen ist – dafür muss natürlich sichergestellt sein, dass so viel Inhalt wie möglich erst in den späteren Bereichen der SWF-Datei liegt (was sich übrigens gut mit dem Bandbreiten-Profiler in Flash prüfen lässt). So ganz ohne Zeitleiste klappt das mit FDT oder dem Flex Builder natürlich erst einmal nicht. Doch ein Blick in das Flex Framework zeigt, dass dort eine Lösung namens Framefactory exisitert. Denn das Metadata [Frame(factoryClass=”Class”)] erlaubt es, Code explizit an den Anfang der SWF-Datei zu legen und diesen z. B. für einen Preloader zu nutzen, bevor der restliche davon unabhängige Inhalt geladen wird.
1 2 3 4 5 6 7 | package { import flash.display.MovieClip; [Frame(factoryClass="biz.wolter.app.manager.SystemManager")] [SWF(width="800", height="600", frameRate="24", backgroundColor="#999999", pageTitle="My Rich Application")] public class Application extends MovieClip { } } |
Die in der Framefactory referenzierte Klasse (hier analog zu Flex der SystemManager) enthält nun allen Code für den Preloader und die Initialisierung der Anwendung. Letzteres darf aber nicht durch eine „konkrete“ Referenzierung erfolgen, da ja dann der zugehörige Code mit dem SystemManager an den Anfang der SWF-Datei gepackt würde. Deshalb kommt hier nach einem erfolgreichen Ladevorgang die Methode getDefinitionByName zum Einsatz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package biz.wolter.app.manager { import biz.wolter.app.controls.Preloader; import flash.display.DisplayObject; import flash.display.MovieClip; import flash.events.Event; import flash.utils.getDefinitionByName; public class SystemManager extends MovieClip { public function SystemManager() { stop(); stage.addEventListener(Event.ENTER_FRAME, onEnterFrame); // Custom Preloader Preloader.show(); } /* * Handle the loading progress */ public function onEnterFrame(event:Event):void { if(framesLoaded == totalFrames) { stage.removeEventListener(Event.ENTER_FRAME, onEnterFrame); Preloader.hide(); nextFrame(); create(); } else { // nothing, cause Preloader handles itself } } /* * Finally create the application */ private function create():void { var mainClass:Class = Class(getDefinitionByName("Application")); var app:Object = new mainClass(); addChildAt(app as DisplayObject,0); } } } |
