Simon Widjaja
Adobe Flex 4
Inhalt
6
Vorwort
14
1 Einstieg in Flex 4.0
20
1.1 Next Generation Internet
20
1.1.1 Die Flash Platform
21
1.1.2 Die Protagonisten
21
1.2 Die Bestandteile von Flex 4
22
1.3 Entwicklung und Aufbau einer Flex-Anwendung
24
1.4 Flex für den Desktop: Adobe AIR
25
2 Die Entwicklungsumgebung:Flash Builder 4
26
2.1 Die verschiedenen Projektarten
30
2.2 Ein neues Projekt anlegen und ausführen
30
3 MXML
32
3.1 Struktur und Syntax
32
3.1.1 MXML-Grundgerüst und Zeichenkodierung
33
3.1.2 Kommentare in MXML
34
3.1.3 Platzieren von Komponenten
36
3.1.4 MXML-Dateinamen
36
3.1.5 Aufbau von MXML-Dokumenten
37
4 ActionScript
42
4.1 Einführung
42
4.1.1 Über ActionScript
42
4.1.2 ActionScript im Umfeld von Flex
44
4.1.3 Spuren legen mit trace()
45
4.1.4 Kommentare in ActionScript
46
4.2 Einsatz von ActionScript
47
4.2.1 Inline: Innerhalb von MXML-Tag-Attributen
48
4.2.2 Nested: verschachtelt in MXML-Tags
49
4.2.3 Block: MXML Script Blocks
49
4.2.4 Ausgelagert: ActionScript in separater Datei
51
4.2.5 Klassen: Externe Definitionsdateien
53
4.3 ActionScript 3.0 im Vergleich
54
4.3.1 Was gibt es Neues in ActionScript 3.0
54
4.4 Sprachelemente und Syntax
58
4.4.1 Variablen und Datentypen
58
4.4.2 Klassen, Eigenschaften und Methoden
62
4.5 Interfaces programmieren
64
4.6 Vergleich: ActionScript, PHP und Java
68
5 Das Event-Modell von Flex
70
5.1 Einführung
70
5.1.1 Ereignisfluss: das Event-Modell verstehen
71
5.2 Event-Handler
72
5.2.1 Events in MXML abfangen
72
5.2.2 Events in ActionScript abfangen
75
5.2.3 Welche Events sind verfügbar?
77
5.2.4 Die Event-Klasse
78
5.3 Event Propagation
80
5.3.1 Unterschied zwischen target und currentTarget
81
5.3.2 Die addEventListener()-Methode
83
5.3.3 Priorität von Events
84
5.3.4 Propagation in Event-Kette stoppen
85
5.4 Event-Unterklassen
86
5.4.1 MouseEvent
88
5.4.2 KeyboardEvent
90
5.4.3 Gesten und ihre Events
92
5.5 Events für Fortgeschrittene
93
5.5.1 Eigene Event-Klasse erstellen
93
5.5.2 Events manuell feuern
94
6 Die Flex-Bausteine:Komponenten
98
6.1 Komponenten
98
6.1.1 Controls
99
6.1.2 Layout-Container
113
6.1.3 Navigators
114
6.2 Textkomponenten
118
6.2.1 Flash Text Engine (ab Flash Player 10)
118
6.2.2 Text Layout Framework (TLF)
119
6.2.3 Die Text-Komponenten
119
6.2.4 Das Text-Objektmodell
120
6.2.5 Einfachen Text in MXML
121
6.2.6 Eingabe von Text (TextInput und TextArea)
123
6.2.7 Texteingabe und die relevanten Events
124
6.2.8 Textformatierung in ActionScript (TextFlow)
126
6.2.9 Templates: TextFlow und Datenbindung
127
6.2.10 Mehrspaltiger Text
128
6.2.11 Formatierten Text importieren (importFromXML undimportFromString)
129
6.2.12 TextFlow exportieren
130
6.3 List-basierte Komponenten
131
6.3.1 List
132
6.3.2 Tree (Halo)
137
6.3.3 DataGrid
140
6.3.4 AdvancedDataGrid
142
6.3.5 ItemRenderer
142
6.3.6 ItemEditor
146
6.3.7 DropDownList und ComboBox
150
6.3.8 DataGroup und SkinnableDataContainer
152
6.4 Layout
153
6.4.1 Die möglichen Layouts
155
6.4.2 Absolute Positionierung (BasicLayout)
156
6.4.3 Constraint-based Layout (BasicLayout)
157
6.4.4 TileBasedLayout
158
6.4.5 Verschachteln von Containern
159
6.4.6 Rahmen und Abstand
161
6.4.7 Scrollbalken
162
7 Medienintegration
166
7.1 Einführung
166
7.2 Grafiken und Bilder laden
168
7.2.1 SWF-Animationen und Skripte laden
173
7.2.2 Ladevorgang überwachen
177
7.3 Einbinden von Sound
178
7.4 Einbinden von Video
180
7.5 Restriktionen beim Laden externer Medien
182
8 Anpassen der Benutzeroberfläche
184
8.1 Einleitung
184
8.2 Styles
185
8.2.1 Instance/ Inline Style
186
8.2.2 CSS: Class Styles und Type Styles
187
8.2.3 CSS-Syntax
188
8.2.4 CSS in Flex und die allgemeine CSS-Spezifikation
191
8.2.5 Globale Styles
192
8.2.6 Einsatz von Styles in MXML und externen CSS-Dateien
193
8.2.7 Einsatz von Styles in ActionScript
194
8.2.8 Verfügbare Style-Eigenschaften
197
8.2.9 Formate von Style-Eigenschaften
198
8.2.10 Vererbung und Dominanz
200
8.3 Component Skinning
203
8.3.1 Beispiel
204
8.4 Skinning mit Flash Catalyst
211
8.4.1 Die Designvorgabe und das Artwork (Photoshop)
212
8.4.2 Die Komponente in Flash Catalyst zum Leben erwecken
212
8.4.3 Import in Flash Builder
213
8.5 Fonts
215
8.5.1 Fonts nutzen und einbetten
216
8.5.2 Probleme beim Nutzen und Einbetten von Fonts
219
8.5.3 Problembehandlung bei Halo-Komponenten
221
8.5.4 Die Bereiche der Zeichensätze anpassen
222
8.6 Runtime CSS
224
9 States, Effects und Transitions
228
9.1 States
228
9.1.1 Mit States arbeiten (MXML)
230
9.1.2 Mögliche Modifikationen innerhalb eines States
233
9.1.3 States ableiten
241
9.1.4 States in Komponenten und Modulen
242
9.1.5 States und ihre Events
243
9.1.6 States verfeinern
243
9.2 Effects
243
9.2.1 Effects erstellen und anwenden
244
9.2.2 Die Trickkiste: Übersicht der verfügbaren Effects undTrigger
248
9.2.3 Effects kombinieren
249
9.2.4 Effects und ihre Events
251
9.2.5 Sonderfälle
253
9.3 Transitions
260
9.3.1 Transitions mit States verknüpfen
260
9.3.2 Event-Kette von States und Transitions
266
9.3.3 Eins nach dem anderen: Action Effects
268
9.3.4 Fine-Tuning: Filter
270
10 Weitere Werkzeuge desFlex-Frameworks
274
10.1 PopUp
274
10.2 Drag and Drop
276
10.2.1 Events einer Drag-and-Drop-Operation
277
10.2.2 Custom Drag and Drop (für nicht List-basierte Komponenten)
280
10.3 Drucken in Flex
283
10.3.1 Einfaches Drucken
283
10.3.2 Drucken eines DataGrids mit Druckvorlage
285
11 Umgang mit lokalen Daten
288
11.1 Einführung
288
11.1.1 Daten aktuell halten: Datenbindung (Data Binding)
288
11.1.2 Daten richtig strukturieren und bereitstellen: Data Model
290
11.1.3 Daten aufbereiten und formatieren: Data Formatter
292
11.1.4 Daten auf Gültigkeit überprüfen: Data Validation
293
11.1.5 Datenfluss
295
11.2 Data Binding
296
11.2.1 Uni- und bidirektionale Inline-Datenbindung
297
11.2.2 Die Tag-Variante für die Datenbindung
300
11.2.3 Datenbindungen mit ActionScript realisieren
302
11.2.4 Eigene Objekteigenschaften für Datenbindungenaktivieren
307
11.2.5 ActionScript innerhalb einer Datenbindung
314
11.3 Data Model
315
11.3.1 Model, View und Controller (MVC)
316
11.3.2 Data Model in Flex
318
11.4 Data Formatting
333
11.4.1 Formatter in MXML anlegen
334
11.4.2 Formatter in ActionScript realisieren
336
11.4.3 Fehler in Formatter abfangen
337
11.4.4 Übersicht der Formatter-Klassen von Flex
339
11.4.5 Custom Formatter programmieren
342
11.5 Data Validation
344
11.5.1 Validator in MXML anlegen
346
11.5.2 Validator in ActionScript realisieren
347
11.5.3 Übersicht der Validator-Klassen von Flex
348
11.5.4 Pflichtfelder
361
11.5.5 Manuelles Auslösen eines Validators
362
11.5.6 Fehlermeldungen anpassen
366
11.5.7 Custom Validator programmieren
366
11.6 LocalConnection
369
12 Externe Datenquellen undData Centric Development
378
12.1 Einleitung
378
12.2 HTTP-basierte Kommunikation
380
12.2.1 HTTPService
381
12.2.2 WebService
389
12.2.3 RemoteObject
398
12.3 Data Centric Development
399
12.3.1 Codegenerierung
401
12.3.2 CallResponder
402
12.3.3 Fiber Model
402
12.4 PHP und ZendAMF
405
12.4.1 Voraussetzungen
405
12.4.2 Ausgangspunkt PHP
406
12.4.3 Ausgangspunkt Flex
416
12.5 Ein unschlagbares Team: Flex, Java, BlazeDS undHibernate
436
12.5.1 Die Serverseite
438
12.5.2 Flex-Client: Manager
455
12.5.3 Flex-Client: Frontend
462
12.5.4 Zusammenfassung
467
12.6 Messaging mit BlazeDS
467
12.6.1 Chat-Anwendung mit mehreren Themen
468
13 Komponenten und Moduleentwickeln
476
13.1 Einleitung
476
13.1.1 Vorteile der modularen Entwicklung
476
13.1.2 Komponenten
478
13.1.3 Module
479
13.1.4 Komponenten vs. Module
480
13.1.5 Workflow und Aufbau einer modularen Flex-Anwendung
480
13.2 Eigene Komponenten entwickeln
481
13.2.1 Composite Components (MXML)
482
13.2.2 Extended Components (ActionScript)
492
13.2.3 Template Components (MXML)
505
13.2.4 Komponentenentwicklung für Fortgeschrittene
510
13.2.5 Component Lifecycle – Darstellung und Aktualisierungsprozessvon Komponenten
514
13.2.6 Eine Custom Component entwickeln
548
13.2.7 Komponenten kompilieren und verteilen
562
13.3 Module
570
13.3.1 ModuleLoader
571
13.3.2 ModuleManager
574
13.3.3 Kommunikation mit Modulen
575
13.3.4 Application Domain vs. Module Domain
581
14 Gute Programmierung,schlechte Programmierung
584
14.1 So nicht: eng gekoppelte Programmierung
585
14.2 Lose gekoppelte Programmierung
589
15 Flex für den Desktop(Adobe AIR)
596
15.1 Einführung in Adobe AIR
596
15.2 Entwicklung einer AIR-Anwendung
597
15.2.1 AIR-Projekt im Flash Builder erstellen
597
15.2.2 Die AIR-Komponenten
598
15.2.3 Spezielle AIR-Funktionen und nicht sichtbareKomponenten
603
15.2.4 Veröffentlichung von AIR-Anwendungen
609
15.2.5 Exportieren von AIR-Anwendungen
609
15.3 Beispielanwendungen
610
Register
614
© 2009-2023 ciando GmbH