ADOBE FLEX MXML, ACTIONSCRIPT, CSS // KOMPONENTEN UND MODULE // DATA CENTRIC DEVELOPMENT MIT PHP UND JAVA // ADOBE AIR



Ähnliche Dokumente
Inhaltsverzeichnis. Simon Widjaja. Adobe Flex 4 ISBN: Weitere Informationen oder Bestellungen unter

Vorwort. Simon Widjaja. Adobe Flex 4 ISBN: Weitere Informationen oder Bestellungen unter.

Rich Internet Applications mit Adobe Flex 3

Rich Internet Applications mit Adobe Flex 3

Rich Internet Applications mit Adobe Flex 3

Scholz (Hrsg.) / Krämer / Schollmayer / Völcker. Android-Apps. Konzeption, Programmierung und Vermarktung

Website. zur eigenen. Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht. Websites. erstellen

Leseprobe. Thomas Hummel, Christian Malorny. Total Quality Management. Tipps für die Einführung. ISBN (Buch):

Templates für Joomla! 1.6

Rich Internet Applications mit Adobe Flex 3

SEMINAR Modifikation für die Nutzung des Community Builders

objectif Import von Excel-Daten Bei Fragen nutzen Sie bitte unseren Support: Telefon: +49 (30)

Kill Keyword Density. Weshalb die Keyword Density blanker Unsinn ist.

SEO Strategie, Taktik und Technik

POCKET POWER. Wissensmanagement. 4. Auflage

Präsentation Von Laura Baake und Janina Schwemer

3D-Architektur-Visualisierung

Design for Six Sigma umsetzen POCKET POWER

Seniorenbüros im Land Brandenburg

Interaktive Whiteboards im Unterricht

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

Copyright (C) Open Source Press

Installation der kostenlosen Testversion

Gelassenheit gewinnen 30 Bilder für ein starkes Selbst

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

POCKET POWER. Change Management. 4. Auflage

Audiospektrum- Analyse mit Mikrocontrollern

Die Lernumgebung des Projekts Informationskompetenz

LEAN MANUFACTURING. Teil 7 Lean und Six Sigma. Ein Quick Guide für den schnellen Einstieg in die Möglichkeiten der Lean Philosophie.

Avira Support Collector. Kurzanleitung

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Rüdiger Zarnekow Lutz Kolbe. Green IT. Erkenntnisse und Best Practices aus Fallstudien

Human Capital Management

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Einleitung. Für wen ist dieses Buch

Thema: Microsoft Project online Welche Version benötigen Sie?

Kurzanleitung WebSphere MQ Funktionen

Geld Geld verdienen im Web 2.0

K. Hartmann-Consulting. Schulungsunterlage Outlook 2013 Kompakt Teil 1

SF-RB. Modul Provisionsabrechnung & Planung Reiseagentenprovisionsabrechnung & Planung. SF-Software Touristiksoftware

SIX SIGMA TEIL 2: DIE DEFINE PHASE DMAIC MARTIN ZANDER. Green Belt Level

Anleitung für die Umstellung auf das plus Verfahren mit manueller und optischer Übertragung

Christina Janning. Change Management. Möglichkeiten der Kommunikation zur Reduzierung innerbetrieblicher Widerstände. Diplomarbeit

Projektanleitung zum

Christian Kremer. Kennzahlensysteme für Social Media Marketing. Ein strategischer Ansatz zur Erfolgsmessung. Diplomica Verlag

Industrie 4.0 in Produktion, Automatisierung und Logistik

Samsung Galaxy S4 Buch

Content Management System mit INTREXX 2002.

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

TFS Funktionen Kurzanleitung

Revit Modelle in der Cloud: Autodesk 360 Mobile

Task: Nmap Skripte ausführen

Apollo Überblick. Klaus Kurz. Manager Business Development Adobe Systems Incorporated. All Rights Reserved.

Dokumentation QHMI Plug-In Manager

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

DER SELBST-CHECK FÜR IHR PROJEKT

Di 8.4. Silverlight: Windows Presentation Foundation für s Web. Christian Wenz

Dokumentation QuickHMI Runtime Manager

INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Adobe Encore Einfaches Erstellen einer DVD

PHPNuke Quick & Dirty

Windows 8. Tipps & Tricks. Das Franzis Praxisbuch. 288 Seiten Windows-8- Insiderwissen. Christian Immler. Schnelle Lösungen für Windows-8-Probleme

Danke, dass sie sich für die Infoliste der Moodleveranstaltung eingetragen haben.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

Übung: Verwendung von Java-Threads

Das Handbuch zu KAppTemplate. Anne-Marie Mahfouf Übersetzung: Burkhard Lück

ABACONNECT VERWENDUNG VON APACHE TCPMON UTILITY MIT ABACONNECT WEBSERVICES

Lehrer: Einschreibemethoden

:: Anleitung Hosting Server 1cloud.ch ::

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Nie wieder eine Sitzung verpassen unser neuer Service für Sie!

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Call Center Lexikon. Die wichtigsten Fachbegriffe der Branche verständlich erklärt

Systemvoraussetzungen

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Eine Anwendung mit InstantRails 1.7

Filmpraxis: Offline-Aktivierung für Edius

FTP-Server einrichten mit automatischem Datenupload für

Installationsanleitung dateiagent Pro

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

! " # $ " % & Nicki Wruck worldwidewruck

EIDAMO Webshop-Lösung - White Paper

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

arbeitete im Max-Planck-Institut und an der Uni Köln. Von ihm sind bereits mehrere Bücher zu Webthemen erschienen.

Anleitung BFV-Widget-Generator

Die Wasser App.

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Anleitung zur Erstellung des bootfähigen Reddoxx USB-Sticks. versionsunabhängig.

Outlook Erstellen einer aus einer HTML - Vorlage INHALT

Thomas Meuser Hrsg. Promo-Viren. Zur Behandlung promotionaler Infekte und chronischer Doktoritis 3., kurierte Auflage

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Transkript:

simon WIDJAJA ADOBE FLEX 4 MXML, ACTIONSCRIPT, CSS // KOMPONENTEN UND MODULE // DATA CENTRIC DEVELOPMENT MIT PHP UND JAVA // ADOBE AIR

Simon Widjaja Adobe Flex 4 vbleiben Sie einfach auf dem Laufenden: www.hanser.de/newsletter Sofort anmelden und Monat für Monat die neuesten Infos und Updates erhalten.

Simon Widjaja Adobe Flex 4

Der Autor: Simon Widjaja, trendspurt GmbH, Köln Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht. Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Bibliografische Information Der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) auch nicht für Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. 2010 Carl Hanser Verlag München Gesamtlektorat: Fernando Schneider Sprachlektorat: Sandra Gottmann, Münster-Nienberge Herstellung: Stefanie König Coverconcept: Marc Müller-Bremer, www.rebranding.de, München Coverrealisierung: Stephan Rönigk Datenbelichtung, Druck und Bindung: Kösel, Krugzell Ausstattung patentrechtlich geschützt. Kösel FD 351, Patent-Nr. 0748702 Printed in Germany ISBN 978-3-446-42268-1 www.hanser.de/computer

1 Inhalt 1 Einstieg in Flex 4.0 1 1.1 Next Generation Internet 1 1.1.1 Die Flash Platform 2 1.1.2 Die Protagonisten 2 1.2 Die Bestandteile von Flex 4 3 1.3 Entwicklung und Aufbau einer Flex-Anwendung 5 1.4 Flex für den Desktop: Adobe AIR 6 2 Die Entwicklungsumgebung: Flash Builder 4 7 2.1 Die verschiedenen Projektarten 11 2.2 Ein neues Projekt anlegen und ausführen 11 3 MXML 13 3.1 Struktur und Syntax 13 3.1.1 MXML-Grundgerüst und Zeichenkodierung 14 3.1.2 Kommentare in MXML 15 3.1.3 Platzieren von Komponenten 17 3.1.4 MXML-Dateinamen 17 3.1.5 Aufbau von MXML-Dokumenten 18 3.2 MXML und ActionScript 20 4 ActionScript 23 4.1 Einführung 23 4.1.1 Über ActionScript 23 V

Inhalt 4.1.2 ActionScript im Umfeld von Flex 25 4.1.3 Spuren legen mit trace() 26 4.1.4 Kommentare in ActionScript 27 4.2 Einsatz von ActionScript 28 4.2.1 Inline: Innerhalb von MXML-Tag-Attributen 29 4.2.2 Nested: verschachtelt in MXML-Tags 30 4.2.3 Block: MXML Script Blocks 30 4.2.4 Ausgelagert: ActionScript in separater Datei 32 4.2.5 Klassen: Externe Definitionsdateien 34 4.3 ActionScript 3.0 im Vergleich 35 4.3.1 Was gibt es Neues in ActionScript 3.0 35 4.4 Sprachelemente und Syntax 39 4.4.1 Variablen und Datentypen 39 4.4.2 Klassen, Eigenschaften und Methoden 43 4.5 Interfaces programmieren 45 4.6 Vergleich: ActionScript, PHP und Java 49 5 Das Event-Modell von Flex 51 5.1 Einführung 51 5.1.1 Ereignisfluss: das Event-Modell verstehen 52 5.2 Event-Handler 53 5.2.1 Events in MXML abfangen 53 5.2.2 Events in ActionScript abfangen 56 5.2.3 Welche Events sind verfügbar? 58 5.2.4 Die Event-Klasse 59 5.3 Event Propagation 61 5.3.1 Unterschied zwischen target und currenttarget 62 5.3.2 Die addeventlistener()-methode 64 5.3.3 Priorität von Events 65 5.3.4 Propagation in Event-Kette stoppen 66 5.4 Event-Unterklassen 67 5.4.1 MouseEvent 69 5.4.2 KeyboardEvent 71 5.4.3 Gesten und ihre Events 73 VI

Inhalt 5.5 Events für Fortgeschrittene 74 5.5.1 Eigene Event-Klasse erstellen 74 5.5.2 Events manuell feuern 75 6 Die Flex-Bausteine: Komponenten 79 6.1 Komponenten 79 6.1.1 Controls 80 6.1.2 Layout-Container 94 6.1.3 Navigators 95 6.2 Textkomponenten 99 6.2.1 Flash Text Engine (ab Flash Player 10) 99 6.2.2 Text Layout Framework (TLF) 100 6.2.3 Die Text-Komponenten 100 6.2.4 Das Text-Objektmodell 101 6.2.5 Einfachen Text in MXML 102 6.2.6 Eingabe von Text (TextInput und TextArea) 104 6.2.7 Texteingabe und die relevanten Events 105 6.2.8 Textformatierung in ActionScript (TextFlow) 107 6.2.9 Templates: TextFlow und Datenbindung 108 6.2.10 Mehrspaltiger Text 109 6.2.11 Formatierten Text importieren (importfromxml und importfromstring) 110 6.2.12 TextFlow exportieren 111 6.3 List-basierte Komponenten 112 6.3.1 List 113 6.3.2 Tree (Halo) 118 6.3.3 DataGrid 121 6.3.4 AdvancedDataGrid 123 6.3.5 ItemRenderer 123 6.3.6 ItemEditor 127 6.3.7 DropDownList und ComboBox 131 6.3.8 DataGroup und SkinnableDataContainer 133 6.4 Layout 134 6.4.1 Die möglichen Layouts 136 6.4.2 Absolute Positionierung (BasicLayout) 137 6.4.3 Constraint-based Layout (BasicLayout) 138 VII

Inhalt 6.4.4 TileBasedLayout 139 6.4.5 Verschachteln von Containern 140 6.4.6 Rahmen und Abstand 142 6.4.7 Scrollbalken 143 7 Medienintegration 147 7.1 Einführung 147 7.2 Grafiken und Bilder laden 149 7.2.1 SWF-Animationen und Skripte laden 154 7.2.2 Ladevorgang überwachen 158 7.3 Einbinden von Sound 159 7.4 Einbinden von Video 161 7.5 Restriktionen beim Laden externer Medien 163 8 Anpassen der Benutzeroberfläche 165 8.1 Einleitung 165 8.2 Styles 166 8.2.1 Instance/ Inline Style 167 8.2.2 CSS: Class Styles und Type Styles 168 8.2.3 CSS-Syntax 169 8.2.4 CSS in Flex und die allgemeine CSS-Spezifikation 172 8.2.5 Globale Styles 173 8.2.6 Einsatz von Styles in MXML und externen CSS-Dateien 174 8.2.7 Einsatz von Styles in ActionScript 175 8.2.8 Verfügbare Style-Eigenschaften 178 8.2.9 Formate von Style-Eigenschaften 179 8.2.10 Vererbung und Dominanz 181 8.3 Component Skinning 184 8.3.1 Beispiel 185 8.4 Skinning mit Flash Catalyst 192 8.4.1 Die Designvorgabe und das Artwork (Photoshop) 193 8.4.2 Die Komponente in Flash Catalyst zum Leben erwecken 193 8.4.3 Import in Flash Builder 194 8.5 Fonts 196 8.5.1 Fonts nutzen und einbetten 197 8.5.2 Probleme beim Nutzen und Einbetten von Fonts 200 VIII

Inhalt 8.5.3 Problembehandlung bei Halo-Komponenten 202 8.5.4 Die Bereiche der Zeichensätze anpassen 203 8.6 Runtime CSS 205 9 States, Effects und Transitions 209 9.1 States 209 9.1.1 Mit States arbeiten (MXML) 211 9.1.2 Mögliche Modifikationen innerhalb eines States 214 9.1.3 States ableiten 222 9.1.4 States in Komponenten und Modulen 223 9.1.5 States und ihre Events 224 9.1.6 States verfeinern 224 9.2 Effects 224 9.2.1 Effects erstellen und anwenden 225 9.2.2 Die Trickkiste: Übersicht der verfügbaren Effects und Trigger 229 9.2.3 Effects kombinieren 230 9.2.4 Effects und ihre Events 232 9.2.5 Sonderfälle 234 9.3 Transitions 241 9.3.1 Transitions mit States verknüpfen 241 9.3.2 Event-Kette von States und Transitions 247 9.3.3 Eins nach dem anderen: Action Effects 249 9.3.4 Fine-Tuning: Filter 251 10 Weitere Werkzeuge des Flex-Frameworks 255 10.1 PopUp 255 10.2 Drag and Drop 257 10.2.1 Events einer Drag-and-Drop-Operation 258 10.2.2 Custom Drag and Drop (für nicht List-basierte Komponenten) 261 10.3 Drucken in Flex 264 10.3.1 Einfaches Drucken 264 10.3.2 Drucken eines DataGrids mit Druckvorlage 266 11 Umgang mit lokalen Daten 269 11.1 Einführung 269 11.1.1 Daten aktuell halten: Datenbindung (Data Binding) 269 11.1.2 Daten richtig strukturieren und bereitstellen: Data Model 271 IX

Inhalt 11.1.3 Daten aufbereiten und formatieren: Data Formatter 273 11.1.4 Daten auf Gültigkeit überprüfen: Data Validation 274 11.1.5 Datenfluss 276 11.2 Data Binding 277 11.2.1 Uni- und bidirektionale Inline-Datenbindung 278 11.2.2 Die Tag-Variante für die Datenbindung 281 11.2.3 Datenbindungen mit ActionScript realisieren 283 11.2.4 Eigene Objekteigenschaften für Datenbindungen aktivieren 288 11.2.5 ActionScript innerhalb einer Datenbindung 295 11.3 Data Model 296 11.3.1 Model, View und Controller (MVC) 297 11.3.2 Data Model in Flex 299 11.4 Data Formatting 314 11.4.1 Formatter in MXML anlegen 315 11.4.2 Formatter in ActionScript realisieren 317 11.4.3 Fehler in Formatter abfangen 318 11.4.4 Übersicht der Formatter-Klassen von Flex 320 11.4.5 Custom Formatter programmieren 323 11.5 Data Validation 325 11.5.1 Validator in MXML anlegen 327 11.5.2 Validator in ActionScript realisieren 328 11.5.3 Übersicht der Validator-Klassen von Flex 329 11.5.4 Pflichtfelder 342 11.5.5 Manuelles Auslösen eines Validators 343 11.5.6 Fehlermeldungen anpassen 347 11.5.7 Custom Validator programmieren 347 11.6 LocalConnection 350 12 Externe Datenquellen und Data Centric Development 359 12.1 Einleitung 359 12.2 HTTP-basierte Kommunikation 361 12.2.1 HTTPService 362 12.2.2 WebService 370 12.2.3 RemoteObject 379 12.3 Data Centric Development 380 12.3.1 Codegenerierung 382 X

Inhalt 12.3.2 CallResponder 383 12.3.3 Fiber Model 383 12.4 PHP und ZendAMF 386 12.4.1 Voraussetzungen 386 12.4.2 Ausgangspunkt PHP 387 12.4.3 Ausgangspunkt Flex 397 12.5 Ein unschlagbares Team: Flex, Java, BlazeDS und Hibernate 417 12.5.1 Die Serverseite 419 12.5.2 Flex-Client: Manager 436 12.5.3 Flex-Client: Frontend 443 12.5.4 Zusammenfassung 448 12.6 Messaging mit BlazeDS 448 12.6.1 Chat-Anwendung mit mehreren Themen 449 13 Komponenten und Module entwickeln 457 13.1 Einleitung 457 13.1.1 Vorteile der modularen Entwicklung 457 13.1.2 Komponenten 459 13.1.3 Module 460 13.1.4 Komponenten vs. Module 461 13.1.5 Workflow und Aufbau einer modularen Flex-Anwendung 461 13.2 Eigene Komponenten entwickeln 462 13.2.1 Composite Components (MXML) 463 13.2.2 Extended Components (ActionScript) 473 13.2.3 Template Components (MXML) 486 13.2.4 Komponentenentwicklung für Fortgeschrittene 491 13.2.5 Component Lifecycle Darstellung und Aktualisierungsprozess von Komponenten 495 13.2.6 Eine Custom Component entwickeln 529 13.2.7 Komponenten kompilieren und verteilen 543 13.3 Module 551 13.3.1 ModuleLoader 552 13.3.2 ModuleManager 555 13.3.3 Kommunikation mit Modulen 556 13.3.4 Application Domain vs. Module Domain 562 XI

Inhalt 14 Gute Programmierung, schlechte Programmierung 565 14.1 So nicht: eng gekoppelte Programmierung 566 14.2 Lose gekoppelte Programmierung 570 15 Flex für den Desktop (Adobe AIR) 577 15.1 Einführung in Adobe AIR 577 15.2 Entwicklung einer AIR-Anwendung 578 15.2.1 AIR-Projekt im Flash Builder erstellen 578 15.2.2 Die AIR-Komponenten 579 15.2.3 Spezielle AIR-Funktionen und nicht sichtbare Komponenten 584 15.2.4 Veröffentlichung von AIR-Anwendungen 590 15.2.5 Exportieren von AIR-Anwendungen 590 15.3 Beispielanwendungen 591 XII

Vorwort Flex ist das kostenlose Open-Source-Framework zur Entwicklung von anspruchsvollen, interaktiven Anwendungen und somit das Herzstück der neuen Produktlinie Flash Platform aus dem Hause Adobe. Die Flash Platform vereint bewährte Technologie, Webinnovation, integrierte Produktlösungen für optimale Workflows zwischen Entwicklern, Designern und Konzeptern, sowie ein umfassendes Community- und Partnernetzwerk. Flex-Anwendungen lassen sich in den beiden Laufzeitumgebungen der Flash Platform ausführen: Adobe Flash Player und Adobe Integrated Runtime (AIR). Während der Flash Player primär im Web zum Einsatz kommt, können Flex- Anwendungen ohne große Modifikationen auch in der AIR-Laufzeitumgebung auf dem Desktop ausgeführt werden. Hier steht dem Entwickler ein erweiterter Befehlssatz zur Verfügung, der beispielsweise den Zugriff auf das lokale Dateisystem oder auf native Prozesse ermöglicht. Außerdem erobert die Flash Platform gerade, während ich dieses Buch verfasse, die Welt der mobilen Endgeräte. So stehen mobile Versionen von beiden Laufzeitumgebungen kurz vor dem ersten Release, so dass 2010 wohl mitunter das Jahr der Smartphones und Slades bzw. Handhelds wird. Besonders in der Welt von Android wird Flash und Flex eine wichtige Rolle spielen. An dieser Stelle darf der Hinweis auf das von Adobe initiierte Open Screen Project natürlich nicht fehlen. Unter www.openscreenproject.org erfahren Sie, wie Adobe mit einer beeindruckenden Allianz (u.a. Google, HTC, nvidia etc.) die Flash Platform für Mobile Endgeräte und sogar Fernseher optimieren wird und welche Wege in den kommenden Jahren eingeschlagen werden. Doch schauen wir uns ersteinmal den beeindruckenden Lebenslauf von Flex an. Als Flex 1.0 im März 2004 als reiner Präsentationsserver auf den Markt geworfen wurde, konnte das Interesse der breiten Masse an Webentwicklern nicht wirklich geweckt werden. Dies lag zum einen daran, dass der Flash Player zu dem Zeitpunkt noch nicht die heutige hohe Akzeptanz und Verbreitung aufwies, und hing zum anderen damit zusammen, dass die erste Generation von Flex mit hohen Investitionen verbunden war. XIII

Vorwort Mit Flex 2.0 und der Übernahme von Macromedia durch Adobe wurde ein neuer Kurs eingeschlagen: Das Flex-SDK zur Erstellung von Flex-basierten Client-Anwendungen wurde kostenlos bereitgestellt, eine kostenpflichtige Serverkomponente war nicht länger notwendig. Es war also erstmals möglich, ohne jegliche Investition die vielseitigen Vorteile von Flex nutzen zu können. Das Problem war jedoch, dass kaum ein Webentwickler diese Veränderung wahrgenommen hat. So wurde die Flash-Technologie samt Entwicklungsumgebung nach wie vor von vielen Entwicklern als zu grafikorientiert und für ernstzunehmende Anwendungen ungeeignet verspottet, und die Flex-Technologie wurde nicht selten als unbezahlbar und für kleine und mittelgroße Projekte uninteressant beschrieben und ignoriert. Als leidenschaftlicher Flasher und PHP-Entwickler habe ich die Diskussionen aufmerksam verfolgt und auch selbst eine größer werdende Skepsis entwickelt. Als jedoch Flex 2.0 gerade erschienen war und ich aufgrund eines Projektpitches einen Blick darauf werfen musste, hat es mich in kürzester Zeit überzeugt. Die Begeisterung war so groß, dass ich die folgende Nacht gänzlich auf Schlaf verzichtet habe, um die Vielseitigkeit und Vorteile von MXML, ActionScript 3.0 und den Flex-Komponenten zu erforschen. Obwohl die deklarative MXML-Sprache völlig neu für mich war, ist es mir in den wenigen Stunden gelungen, eine erste kleine Anwendung zu schreiben, die nahtlos via AMFPHP an mein eigenes PHP-Framework angebunden werden konnte. Nach dieser Erfahrung und der erfolgreichen Umsetzung des besagten Projekts war mir schnell klar, dass die Flex-Technologie längst nicht mehr das war, was in den Köpfen vieler Webentwickler herumspukte. Nachdem ich nach wie vor über Blogund Forenbeiträge gestolpert bin, die weiterhin die Flex-Technologie in völlig falschem Licht erscheinen ließen, war es letztlich ein Gespräch mit dem Chefentwickler einer anderen Internetagentur, das mich darin bestärkt hat, ein wenig Aufklärungsarbeit leisten zu wollen. Auch in diesem Gespräch musste ich feststellen, dass die Flex- Technologie keineswegs in Betracht gezogen wurde und stattdessen auf herkömmlicher Flash-Basis entwickelt werden sollte obwohl genau sie die Entwickler bei den anstehenden Aufgaben vor einige Probleme gestellt hätte: Neben einem komplexen Fenstersystem sollten datenlastige DataGrids eingesetzt werden, und die entstehende Anwendung sollte sich in Höhe und Breite stets dem Player-Fenster anpassen. Zudem sollten zahlreiche Module entwickelt werden, die von verschiedenen Teams umgesetzt werden sollten. Nach meinen bisherigen Erfahrungen mit Flash und Flex war mir schnell klar, dass Flex in diesem Fall genau die richtige Wahl wäre. Doch auch hier war das Argument, dass Flex ja eine Servertechnologie und eben viel zu teuer sei. In einem ca. sechsstündigen Workshop konnte ich jedoch alle beteiligten Entwickler davon überzeugen, dass Flex heiß ist und genau das richtige Werkzeug für die anstehenden Aufgaben darstellt. Die beteiligten Entwickler berichteten mir später, dass auch Sie die Erfahrung gemacht haben, dass der Einstieg viel einfacher und schneller war als erwartet: XIV

Vorwort Der ehemalige Flex Builder (heue Flash Builder) basiert auf Eclipse, das viele bereits aus Java oder PHP kennen, und MXML ist für jeden HTML-Programmierer relativ schnell nachvollziehbar. Während dieser Diskussionen und dem daraus resultierenden kleinen Einsteiger- Workshop entstand die Idee, diese Art der Aufklärungsarbeit im größeren Stile zu betreiben. Aus diesem Gedanken entwickelte sich schließlich die Idee, gemeinsam mit dem ebenfalls engagierten Flexer Johannes Boyne eine erste deutsche Flex User Group in Köln zu gründen (www.flexug.de), um unsere Erfahrungen rund um Flex mit anderen zu teilen, und eben auch die Idee zu diesem Buch. Sie werden in diesem Buch sicherlich nicht alles finden, was Adobe Flex 4 zu bieten hat. Aber Sie erhalten mit diesem Buch einen optimalen Einstieg in die relevanten Themen, die Sie benötigen, um mit Flex ebenfalls durchstarten zu können. Ein besonderes Augenmerk erhalten die im Rahmen der vierten Version des Flex Frameworks eingeführten neuen Spark-Komponenten und das Data Centric Development, das Sie bei der Zusammenarbeit mit verschiedenen Backend-Technologien unterstützt. Interessieren Sie sich darüber hinaus auch für die anderen Protagonisten der Flash Platform (Flash Catalyst, Flash Professional etc.), so lade ich Sie herzlichst auf meinen Blog unter www.flashplatform.de ein. Hier erwarten Sie aktuelle Informationen, interessante Denkanstöße und hilfreiche Anleitungen. Themenspektrum Dieses Buch führt Sie schrittweise an die Entwicklung komplexer Rich Internet Applications (RIA) mit dem Flex Framework heran. Dabei werden die wichtigsten Aspekte wie folgt behandelt: In den ersten vier Kapiteln erhalten Sie eine kurze Einführung in die Flex-Technologie, der Entwicklungsumgebung sowie der Bestandteile von Flex 4 (MXML, ActionScript etc.). Kapitel 5 ist dem Event-Modell von Flex gewidmet. Dieses Thema wird recht ausführlich behandelt, da es bei der Entwicklung von RIA eine sehr zentrale Rolle spielt und für das tiefere Verständnis von Flex notwendig ist. Das sechste Kapitel gibt Ihnen eine Übersicht über die enthaltenen Flex-Komponenten und zeigt Ihnen, wie Sie die verschiedenen Komponentenarten für die Erstellung einer Benutzeroberfläche nutzen können. Kapitel 7-10 vertieft die Thematik der Erstellung von Benutzeroberflächen. Hier erfahren Sie, wie Medien (Bilder, Videos und Sounds) verwendet und eingebettet und wie das Look & Feel der Anwendung mit Hilfe von CSS, Skins, States, Effects und Transitions anpassen werden können. Kapitel 11 bringt Ihnen den Umgang mit lokalen Daten näher (Datenmodellierung, Datenbindungen, Formatieren und Validieren von Daten). XV

Vorwort Kapitel 12 befasst sich mit dem Einbinden externer Datenquellen. Hier werden Sie neben dem HTTPService, WebService und dem RemoteObject noch das so genannte Data Centric Development kennenlernen, das Sie bei der Zusammenarbeit mit verschiedenen Servertechnologien wie Java oder PHP unterstützt. In Kapitel 13 erfahren Sie, wie Sie eigene Komponenten und Module erstellen. Dabei lernen Sie, bestehende Komponenten zu erweitern und eigene von Grund auf selbst zu entwickeln. Zusätzlich wird in diesem Kapitel der Ansatz der Runtime Shared Library vorgestellt, mit dem Sie die Datengröße der entstehenden SWF-Dateien optimieren können. Nachdem Sie die verschiedenen Bestandteile von Flex kennengelernt haben und so über die nötigen Grundlagen verfügen, zeigt Kapitel 14 auf, wie Sie modulare und skalierbare Anwendungen entwickeln und welche Ansätze der Architektur hilfreich sind. Das letzte Kapitel 15 ist der neuesten Technologie im Flex Umfeld gewidmet: Adobe AIR. Hier erfahren Sie, wie Sie mit Hilfe von Flex ausführbare Desktopanwendungen entwickeln können. Die Website zum Buch In Zeiten von Internet, Web und DSL erschien dem Verlag und mir eine CD-ROM zum Buch, die die Beispiele und anderes Begleitmaterial enthält, allein schon deswegen unzeitgemäß, weil sie recht schnell veraltet. Daher haben wir uns dafür entschieden, Ihnen dieses Material auf einer Website bereitzustellen. Deren URL lautet www.flexbuch.de Dort finden Sie neben den Quelltexten dieses Buches noch weitere Informationen über Flex sowie einen Blog rund um die Flex-Technologie. Danksagung An dieser Stelle möchte ich mich recht herzlich bei allen Personen bedanken, die zum Entstehen dieses Buches beigetragen haben, insbesondere bei meinem wundervollen Team, dass mich tatkräftig unterstützt hat. Besonders bei Janina Werner möchte ich mich nicht nur für den kompetenten Support und die Koordination bedanken, sondern auch für die vielen lustigen und motivierenden Gespräche während der gesamten Produktion über. Desweiteren möchte ich mich bei meinem Weggefährten und guten Freund Johannes Boyne bedanken, der die ein oder andere Zeile dieses Buches beigesteuert hat. Außerdem noch einen großen Dank an Mike Rösgen, auf dessen Unterstützung ich an der einen oder anderen Stelle ebenfalls zurückgreifen durfte. In so einem Team macht das Flexen wirklich Spaß! Last but not least möchte ich mich bei Fernando Schneider für die professionelle und inspirierende Zusammenarbeit, sowie Stefanie König vom Hanser Verlag und Sandra Gottmann bedanken, ohne die Sie dieses Buch nicht in den Händen halten würden. XVI

Vorwort Feedback Wenn Sie Vorschläge oder Fragen zum Buch haben, können Sie mich selbstverständlich direkt kontaktieren: mail@simonwidjaja.com Bleibt mir zu guter Letzt nur noch, Ihnen viel Spaß und Erfolg bei Ihrer Reise durch die spannende Welt von Adobe Flex zu wünschen! Happy Coding! Köln, im Mai 2010 Simon Widjaja Webentwickler aus Leidenschaft XVII

1 1 Einstieg in Flex 4.0 1.1 Next Generation Internet Adobe positioniert seine Webtechnologien neu, und neben den Major Releases der bekannten Produkte wurde auch ein völlig neues Werkzeug namens Flash Catalyst gerade erst veröffentlicht. Allerhöchste Zeit, einmal einen Blick in die Glaskugel zu werfen, um zu schauen, wie der ambitionierte Flash-Entwickler von morgen seine Rich Internet Applications entwickeln wird... Nachdem sich die aktuelle Version des Adobe Flash Players so schnell verbreitet hat wie kein Browser-Plugin zuvor und seitdem sich Flash-basierte Anwendungen dank der Adobe Integrated Runtime (kurz AIR) plattformübergreifend auf den gängigen Betriebssystemen und sogar mobilen Endgeräten nativ ausführen lassen, gilt Flash wohl als eine der interessantesten und zukunftsweisenden Technologien der Internetentwicklung. Mit Microsofts Silverlight, JavaFX und HTML 5 hat der Konkurrenzkampf bereits begonnen, und im Kontext von Flash betreten immer mehr Protagonisten aus dem Hause Adobe den Ring. Mit Produktnamen wie Flex, Flash Builder, Flash Catalyst und LiveCycle etabliert Adobe ein komplettes Ecosystem zur Erstellung von hippen Webseiten und anspruchsvollen Rich Internet Applications. Das vorliegende Buch bringt Ihnen das Herzstück dieses Ecosystems näher: das Flex Framework. Sie werden erfahren, wie Sie Komponenten einsetzen, modifizieren und selbst erstellen können, und Einblicke in die verschiedenen Bereiche der RIA-Entwicklung mit dem Flex Framework erhalten. Doch eins nach dem anderen. Schauen wir uns doch zuerst einmal die Flash Platform ein wenig näher an... 1