Tobias Hauser, Armin Kappler, Christian Wenz

Das Praxisbuch ActionScript 3 Aktuell zu Adobe Flash CS5

Galileo Press

Auf einen Blick TEILI

Einfacher Einstieg

25

TEIL II

ActionScript

89

TEIL IM

Filme steuern

173

TEIL IV

Ein-und Ausgabe

221

TEILV

Animation

315

TEIL VI

Multimedia

377

TEIL VII

Formulare und Ul

489

TEIL VIII

Kommunikation

555

TEIL IX

Praxis

653

Inhalt Vorwort

19

TEIL I Einfacher Einstieg 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8

Flash für ActionScript

27

Zeitleiste Symbole Koordinatensystem und Bühne Verhalten Codefragmente Veröffentlichen und testen Flash-Versionen Aktionen-Bedienfeld 1.8.1 Werkzeugleiste 1.8.2 Menü Skriptbedienfeld für externe Klassen Hilfe Einstellungen 1.11.1 ActionScript-Voreinstellungen 1.11.2 Auto-Format-Optionen 1.11.3 ActionScript-3.0-Einstellungen beim Veröffentlichen

27 28 32 36 36 38 40 42 45 50 52 53 54 54 56 57

2

ActionScript in Flash

59

2.1

Wo ist 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11

59 61 65 66 67 68 70 71 71 72 72 72

1.9 1.10 1.11

ActionScript möglich? Ein einfaches Beispiel Mausereignisse Allgemeine Ereignisse Anonyme Funktionen Event-Bubbling und Ziele Event-Phasen Standardverhalten Weitere Parameter von addEventListenerO Mehrere Event-Listener Event-Listener entfernen Eigene Ereignisse erzeugen

Inhalt

2.2

Was lässt sich mit ActionScript steuern? 2.2.1 Anzeigehierarchie 2.2.2 Zugriff auf Elemente 2.2.3 Zugriff auf Bühne und Hauptfilm 2.2.4 Movieclips und Schaltflächen Unterschiede und Gemeinsamkeiten

74 75 76 78

3

CS5 und ActionScript 3 - die Neuerungen

81

3.1

ActionScript 3 vs. ActionScript 1 und 2 3.1.1 Sprachkern 3.1.2 Objektorientierung 3.1.3 Ereignisse 3.1.4 Zugriff auf Elemente 3.1.5 Funktionale Neuerungen in ActionScript 3 Neue Funktionen in CS5

81 83 84 85 86 86 88

3.2

78

TEIL II ActionScript 4

Grundlagen der Programmierung

4.1

Variablen 4.1.1 Variablennamen 4.1.2 Datentyp 4.1.3 Codehinweise für Datentypen 4.1.4 Datentyp feststellen und wechseln 4.1.5 Standardwerte 4.1.6 Kurzformen für Variablen 4.1.7 Gültigkeit von Variablen Kommentare Operatoren 4.3.1 Arithmetische Operatoren 4.3.2 Vergleichsoperatoren 4.3.3 Logische Operatoren 4.3.4 Bitweise Operatoren 4.3.5 Operatorpräferenz Fallunterscheidungen 4.4.1 if-Fallunterscheidung 4.4.2 switch-case-Fallunterscheidung Schleifen 4.5.1 for-Schleife

4.2 4.3

4.4

4.5

91 91 94 97 99 101 103 103 104 104 105 105 107 108 109 111 112 113 118 120 121

Inhalt

4.6

4.7

4.8

4.9 5 5.1 5.2

5.3

5.4

5.5 5.6 5.7

4.5.2 while-Schleife 4.5.3 do-while-Schleife Funktionen 4.6.1 Parameter 4.6.2 Rückgabewerte 4.6.3 Gültigkeitsbereich 4.6.4 Rekursive Funktionen 4.6.5 Standardwerte und unbekannte Parametermenge 4.6.6 Fertige Funktionen in ActionScript Strings und ihre Besonderheiten 4.7.1 Sonderzeichen 4.7.2 Strings zusammenfügen 4.7.3 Strings vergleichen Arrays 4.8.1 Datentypen und Arrays 4.8.2 Mit Arrays arbeiten 4.8.3 Schleifen und Arrays 4.8.4 Assoziative Arrays 4.8.5 Multidimensionale Arrays Vector-Datentyp , Objektorientierung

122 125 126 128 129 131 132 133 134 134 136 137 138 139 140 141 143 145 146 147 149

Grundlagen Klassen und Pakete 5.2.1 Eine erste Klasse 5.2.2 Klassenpfad

149 153 153 155

5.2.3

158

Pakete

5.2.4 Dokumentklasse Besondere Methoden 5.3.1 Konstruktor 5.3.2 get-und set-Methode Vererbung 5.4.1 Ein einfaches Beispiel 5.4.2 Mehrere Klassen in einer Datei und Überschreiben Sichtbarkeit Dynamische und versiegelte Klassen Schnittstellen

159 161 161 162 163 164 165 167 169 170

Inhalt

TEIL III Filme steuern 6

Einfache Filmsteuerung

175

6.1

6.3 6.4

Einfache Navigation 6.1.1 Bildmarkierungen 6.1.2 Aktuelles Bild und aktuelle Markierung Szenen 6.2.1 Weniger Code 6.2.2 Scene-Klasse Auswahl treffen Movieclips steuern

175 181 182 182 185 186 188 190

7

Bildschirme und Präsentationen

195

7.1

7.2

Bildschirme in ActionScript 7.1.1 Name und Zugriff auf Folien 7.1.2 Hierarchie und Verschachtelung 7.1.3 Verhalten 7.1.4 Präsentieren in wenigen Schritten Präsentationen ohne Bildschirme

195 196 198 200 202 204

8

Drucken und das Kontextmenü

207

8.1

Drucken - die Grundfunktionen 8.1.1 Druckoptionen für addPageO 8.1.2 Papierformat und -große Drucken auf Knopfdruck Kontextmenü steuern 8.3.1 Kein Drucken im Kontextmenü 8.3.2 Kontextmenü sperren 8.3.3 Kontextmenü sperren - mit ActionScript 8.3.4 ContextMenu-Klasse Kontextmenü erweitern

207 208 209 210 212 213 214 215 215 217

6.2

8.2 8.3

8.4

TEIL IV Ein- und Ausgabe 9

Textfelder

223

9.1

Textfelder und ActionScript 9.1.1 Dynamische Textfelder 9.1.2 Eingabefelder

223 224 226

Inhalt

9.7

9.1.3 Textfelder dynamisch generieren Textfeldinhalte von klassischen Textfeldern Klassische Textfelder formatieren und verändern 9.3.1 Inhalt des Textfelds 9.3.2 DisplayObject-Eigenschaften 9.3.3 Formatierungsoptionen für Textfelder 9.3.4 Text formatieren 9.3.5 Stylesheets Text Layout Framework Scrollbarer Text Inhalte überprüfen 9.6.1 Ereignis für Textfelder 9.6.2 Eigenschaften 9.6.3 Reguläre Ausdrücke Blocktext einsetzen

227 227 230 232 235 236 240 243 246 250 254 254 255 257 260

10

Tasten

263

10.1 10.2 10.3

Grundlagen Ein Quiz mit Tastatursteuerung Spielerische Tastensteuerung 10.3.1 Movieclips steuern - ein Beispiel 10.3.2 Gedrückt halten und mehrere Tasten drücken

263 267 272 272 278

11

Datum und Zeit

283

11.1

11.2 11.3

Gegenwart, Vergangenheit und Zukunft 11.1.1 Deutsches Datum 11.1.2 Eigene Datumswerte 11.1.3 Eigenschaften Zeit und Uhr Countdown

283 285 287 287 288 291

12

Rechnen

297

12.1 12.2

Einfache Rechenhilfen Bögen und Trigonometrie 12.2.1 Trigonometrie - am Einheitskreis erklärt 12.2.2 Trigonometrie in ActionScript Zufall und Runden 12.3.1 Runden und Artverwandtes 12.3.2 Beliebige Zufallszahlen

298 299 299 301 304 304 305

9.2 9.3

9.4 9.5 9.6

12.3

Inhalt

TEIL V Animation 13

Grundlagen und nützliche Helfer

317

13.1

(

Regelmäßige Veränderung 13.1.1 setlntervalO 13.1.2 ENTER_FRAME 13.1.3 Timer Tweens 13.2.1 Tween-Klassen 13.2.2 Transitions 13.2.3 Tweens kopieren Dynamische Anzeigeobjekte 13.3.1 Dynamisch erstellt-aus der Bibliothek 13.3.2 Dynamisch erstellt-Zeichen-API 13.3.3 Wichtige Methoden für die Anzeigeliste Masken 13.4.1 Maske für einen Movieclip 13.4.2 Masken-Ebenen

317 318 320 322 323 324 326 327 330 331 335 336 340 340 341

14

Drag & Drop und Transformationen

343

14.1

14.2 14.3

Wechselspiele 14.1.1 Farben zuweisen - ein Beispiel 14.1.2 Einzelne Farbwerte verändern 14.1.3 Matrix und Geometrie Drag& Drop Schieberegler

343 345 349 350 352 355

15

Kollisionstest und Mausverfolgung

361

15.1

Kollisionen abfangen 15.1.1 hitTestObjectO im Test 15.1.2 Handgeschriebene Lösungen und hitTestPoint() 15.1.3 HitArea-Kollision für Schaltflächen-Movieclips Aus Kollisionen wird eine Anwendung Mausbewegungen verfolgen

361 362 363 368 369 374

13.2

13.3

13.4

15.2 15.3

10

Inhalt

TEIL VI Multimedia 16

Sound

379

16.1

Externen Sound laden 16.1.1 ID3-Tags auslesen

380 385

16.3 16.4 16.5

16.1.2 Weiteresteuerungsmöglichkeiten Sound importieren 16.2.1 In Bühne importieren 16.2.2 In Bibliothek importieren Mehrere Sounds und Soundtransformation Equalizer und Soundrohdaten Mikrofon

387 388 388 389 390 396 402

17

Video

407

17.1

17.3 17.4

Videos in Flash importieren 17.1.1 Von einem Webserver herunterladen (externe FLV-Datei) 17.1.2 Videoseinbetten Videos mit ActionScript steuern 17.2.1 Externe FLV-Dateien mit FLVPlayback steuern 17.2.2 Externes FLV mit NetStream und NetConnection steuern 17.2.3 Eingebettete Videos steuern Cue Points Webcams

407 410 411 412 413 416 418 419 422

17.5

Videos bearbeiten

423

18

Externe Filme

427

18.1 18.2

Externe Filme laden Externe Bilder

427 432

19

Vorladen und Player erkennen

435

19.1

Vorladen 19.1.1 Eigene Ladeleiste

435 435

19.2

19.1.2 ProgressBar-Komponente Player-Erkennung

440 442

20

Bitmaps, Filter und Pixel Bender

445

20.1

Auf Pixelebene arbeiten 20.1.1 Ein Beispiel 20.1.2 Dynamisch erstellen und umfärben

445 446 448

16.2

17.2

11

Inhalt

20.2

20.3

Filter 20.2.1 Filter auf Bilder anwenden 20.2.2 FileReference - auf lokale Dateien zugreifen Pixel Bender

449 450 454 456

21

Inverse Kinematik, Zeichnen und 3D

463

21.1 21.2

Inverse Kinematik Zeichnen 21.2.1 drawPathO 21.2.2 drawGraphicsDataO 21.2.3 drawTrianglesO 21.3 3D 21.3.1 z-Achse und 3D-Transformationen 21.3.2 Perspektivische Projektion 21.3.3 Triangles für 3D und Texture Mapping

463 465 466 469 471 474 474 478 481

TEIL VII Formulare und Ul 22

Formulare und Ul-Komponenten

491

22.1

22.2

Ul-Komponenten 22.1.1 Textfelder 22.1.2 Mehrzelliges Textfeld 22.1.3 Checkbox 22.1.4 Radiobutton 22.1.5 Auswahlliste 22.1.6 Schaltfläche Beispielanwendung

491 494 498 500 501 504 508 509

23

Komponenten anpassen

517

23.1 23.2 23.3

Komponenten dynamisch hinzufügen Komponenten anpassen Praxisbeispiel: Fonts vergleichen

518 526 529

24

Formulare und Daten versenden

539

24.1 24.2 24.3

Daten versenden und austauschen Kontaktformular Datenaustausch

540 545 551

12

Inhalt

TEIL VIII Kommunikation 25

XML

557

25.1 25.2 25.3

Was istXML? Mit XML per DOM arbeiten Neue XML-Features von ActionScript 3

557 559 561

26

Webservices

571

26.1

Standards 26.1.1 Datenübertragung mit SOAP 26.1.2 Dienstauskunft mit WSDL 26.1.3 Simpel und elegant mit REST 26.2 Einen SOAP-Service nutzen 26.3 Einen REST-Service nutzen 26.4 Kommunikation mit JavaScript

572 572 574 579 579 585 590

27

Remoting

599

27.1 27.2

Flash Remoting und AMF AMFPHP

600 600

28

Flex

607

28.1

Hintergrund 28.1.1 Geschichte 28.1.2 Workflow 28.2 Installation 28.3 Beispielanwendung

607 608 609 609 610

29

AIR

621

29.1 29.2

Die Funktionen Ein Beispiel

622 630

30

Sicherheit

637

30.1 30.2

Angriffswege Eine Anwendung, viele Fehler 30.2.1 Der PHP-Code 30.2.2 Der ActionScript-Code 30.2.3 SQL Injection

638 640 641 643 645

Inhalt

30.2.4 Cross-Site Scripting 30.2.5 Weitere Fehler

647 649

TEIL IX Praxis 31

Warenkorb

655

31.1 Vo rü berlegungen 31.2 Artikelseiten 31.3 Der Warenkorb 31.4 Lieferdaten und Bestätigung

656 656 661 665

32

671

Fehler finden

32.1 Testen 32.2 traceO und die Ausgabe 32.3 Debugger

671 672 673

33

675

Barrierefreiheit

33.1 Was ist Barrierefreiheit? 33.2 Barrierefreies Flash 33.3 Barrierefreie Komponenten

675 678 680

Anhang A B Index

14

Websites und interessante Quellen Die DVD zum Buch

685 689 691

Workshops ActionScript in Flash • Event-Listener erstellen

62

Grundlagen der Programmierung • Variablenwerte ändern • Einen Funktionsaufruf testen

92 127

Objektorientierung • Eine'eigene Klasse

153

Einfache Filmsteuerung • • • •

Einfache Filmsteuerung Szenenwechsel Ein Bild auswählen Umfärben mit Filmsteuerung

177 184 188 191

Bildschirme und Präsentationen • Verhalten einsetzen • Präsentieren mit Folien

201 203

Drucken und das Kontextmenü • Drucken mit Schaltfläche • Kontextmenü steuern • Eigene Elemente im Kontextmenü

210 216 218

Textfelder • Textfelder zum Leben erwecken

228

Tasten • • • •

Quiz mit Tastaturereignissen Kransteuerung Kransteuerung II Kransteuerung III

267 273 276 277

Workshops

Datum und Zeit • Eine analoge Uhr mit ActionScript • Flexibler Countdown

289 292

Rechnen • Schaukelstuhl mit Pendelbewegung • »17 und 4«

302 307

Grundlagen und nützliche Helfer Drag & Drop und Transformationen • Chamäleon umfärben • Drag & Drop der Farbenpalette • Schieberegler

346 353 356

Kollisionstest und Mausverfolgung •

Friseur per Kollisionstest

370

Sound • Ein eigener MP3-Player • Ein kleiner Mixer • Lautstärkemessung mit dem Mikrofon

381 391 403

Video • Videoplayer mit Soundsteuerung • Mit Cue Points arbeiten • Kamera einrichten

414 420 422

Externe Filme • Mit externen Filmen arbeiten • Externe Bilder laden

429 432

Vorladen und Player erkennen • Preloader mit eigener Ladeleiste • ProgressBar-Komponente einsetzen

16

436 440

Bitmaps, Filter und Pixel Bender • Pixel auslesen • Bitmap-Funktionen einsetzen • Pixel Bender im Einsatz

446 451 458

Inverse Kinematik, Zeichnen und 3D • Mit der 3D-Matrix transformieren

476

Formulare und U l - K o m p o n e n t e n • • • • • • • •

Textfelder einsetzen I Textfelder einsetzen II Mehrzellige Textfelder einsetzen Checkboxen einsetzen Radiobuttons einsetzen Eine einfache Auswahlliste Eine Mehrfach-Auswahlliste MMS-Geschenkservice mit Flash CS5 und ActionScript 3

496 497 499 500 502 505 506 510

Komponenten anpassen • Stile erzeugen und zuweisen

526

Formulare und Daten versenden • Ein Kontaktformular erstellen

545

AIR • Eine AIR-Anwendung erstellen

631

Warenkorb • • • • •

Navigation der Artikelseiten Farbschaltflächen programmieren Warenkorb-Funktionalität Lieferdaten aufnehmen Bestätigungsseite implementieren

658 658 661 666 668

17

Video-Lektionen

Video-Lektionen auf der Buch-DVD Kapitel 1: Grundkurs »Objektorientierung«

1.1 Eigene Klassen erzeugen (19:57 Min.) 1.2 Pakete und Klassenpfade (09:36 Min.) 1.3 Die Klassenvererbung (11:14 Min.) Kapitel 2: Ereignisbehandlung und Instantiierung

2.1 Der Event-Listener (12:21 Min.) 2.2 Dynamische Instanzen (10:09 Min.)