Nick Weschkalnies, Rojahn Ahmadi, Ilya Shabanov

Adobe Flash CS6 Das umfassende Handbuch Auf einen Blick

Teil I Grundlagen ...... 23

Teil II Anwendung ...... 65

Teil III ActionScript ...... 335

Teil IV Multimedia und dynamische Inhalte ...... 543

Teil V Weitere Einsatzgebiete ...... 817 Inhalt

Inhalt

TEIL I Grundlagen

1 Was ist Flash?

1.1 Flash-Historie ...... 25 1.2 Entwicklungsumgebung, Player und Projektor ...... 25 1.3 Vektoren und Pixel ...... 27 1.4 Anwendungsbereiche ...... 28 1.5 Neues in Flash CS5.5 und CS6 ...... 34 Neues in Flash CS5.5 ...... 34 Neuerungen von Flash CS6 ...... 39

2 Arbeitsumgebung

2.1 Begrüßungsbildschirm ...... 45 2.2 Die Entwicklungsumgebung ...... 46 2.3 Die Menüleiste ...... 47 2.4 Die Werkzeugleiste ...... 52 2.5 Die Zeitleiste ...... 54 2.6 Die Bühne ...... 55 2.7 Entwicklungsumgebung anpassen ...... 58 2.8 Tastaturkurzbefehle ...... 63

TEIL II Anwendung

3 Zeichnen

3.1 Zeichenmodi ...... 67 3.2 Zeichenwerkzeuge ...... 68 Strich- und Füllfarbe ...... 68 Farbpalette bearbeiten ...... 69

4 Inhalt

Kuler-Bedienfeld ...... 71 Linienwerkzeug ...... 72 Eigenschaften ändern ...... 73 Stricheigenschaften ...... 73 Freihandwerkzeug ...... 76 Pinselwerkzeug ...... 77 Sprühen-Werkzeug ...... 79 Deko-Werkzeug ...... 80 Radiergummiwerkzeug ...... 91 Rechteckwerkzeug ...... 93 Werkzeug für Rechteckgrundform ...... 94 Ellipsenwerkzeug ...... 95 Werkzeug für Ellipsengrundform ...... 96 Polysternwerkzeug ...... 97 Stiftwerkzeug ...... 97 3.3 Objekte auswählen und bearbeiten ...... 99 Auswahlwerkzeug ...... 99 Unterauswahlwerkzeug ...... 100 Lassowerkzeug ...... 101 3.4 Transformationen ...... 104 Frei-transformieren-Werkzeug ...... 105 3D-Drehungswerkzeug ...... 106 3D-Versetzungswerkzeug ...... 107 Fluchtpunkt und Perspektive ...... 108 3.5 Farben und Farbverläufe erstellen ...... 110 Tintenfass- und Farbeimerwerkzeug ...... 110 Pipette ...... 111 Farbverläufe ...... 112 Bitmap-Füllung ...... 113 Farbverlaufwerkzeug ...... 114 3.6 Hilfswerkzeuge ...... 115 Skalierung mit dem 9-teiligen Segmentraster ...... 115 Objekte gruppieren und anordnen ...... 117 Handwerkzeug ...... 118 Zoomwerkzeug ...... 119 Lineale ...... 119 Hilfslinien ...... 120 Raster ...... 122

5 Inhalt

4 Symbole, Instanzen und die Bibliothek

4.1 Symbole ...... 123 4.2 Symbole erstellen ...... 124 4.3 Symbolinstanzen ...... 126 4.4 Schaltflächen ...... 132 4.5 Bibliothek ...... 137 Bibliothekselemente löschen ...... 137 Ordnung und Struktur in der Bibliothek ...... 138 4.6 Gemeinsame Nutzung von Bibliothekselementen ...... 141 Gemeinsam genutzte Bibliothek zur Laufzeit ­ (Runtime Shared Library) ...... 142 Gemeinsam genutzte Symbole zur Authoring-Zeit (Flash-Projekt) ..... 146 Gemeinsam genutzte Bibliothek zur Authoring-Zeit (SWC) ...... 150 Fazit ...... 151

5 Animation

5.1 Zeitleiste ...... 153 Ebenenmodell ...... 154 Mit Ebenen arbeiten ...... 154 Bilder und Schlüsselbilder auf der Zeitleiste ...... 159 Darstellungsoptionen der Zeitleiste ...... 162 Zeitleiste steuern ...... 163 Szenen und Bildbezeichner ...... 163 5.2 Bild-für-Bild-Animation ...... 166 5.3 Zwiebelschaleneffekt ...... 176 5.4 Tweens ...... 178 Bewegungs-Tween erstellen ...... 179 Eigenschaften animieren ...... 179 Pfad eines Bewegungs-Tween ...... 184 Bewegungs-Editor ...... 190 Bewegungsvoreinstellungen ...... 202 Animation kopieren und einfügen ...... 203 5.5 Klassische Tweens ...... 204 Klassische Tweens an Pfad ausrichten ...... 205 Timing ...... 209 5.6 Weitere Eigenschaften animieren ...... 216

6 Inhalt

5.7 Form-Tweens ...... 220 Bitmaps in Vektoren umwandeln ...... 220 Formmarken einsetzen ...... 223 5.8 Masken ...... 225 5.9 Verschachtelung ...... 231 5.10 Inverse Kinematik ...... 237 Bone-Werkzeug ...... 239 Bindungswerkzeug ...... 248 Steuerungspunkte ausrichten ...... 250

6 Text

6.1 Klassische Texterstellung in Flash ...... 251 Textbreite anpassen ...... 253 Text transformieren ...... 253 6.2 Textfeld-Eigenschaften ...... 255 Textfeld-Typen ...... 255 Text formatieren ...... 256 Schriftart, -größe und -farbe ...... 256 Auszeichnungen ...... 258 Ausrichtung ...... 260 Zeilenabstand, Zeilenlänge und Zeichenabstand ...... 261 Textrichtung ...... 263 Text mit URL verknüpfen ...... 264 Auswählbarer Text ...... 265 6.3 Darstellung von Schrift ...... 266 Geräteschriftarten ...... 267 Maskierung von Geräteschriftarten ...... 268 Eingebettete Schriften ...... 272 Bitmap-Text ...... 273 Text als Grafik einfügen ...... 274 Pixelfonts ...... 275 Fehlende Schriften ersetzen ...... 278 6.4 TLF-Texterstellung in Flash ...... 279 TLF-Textfeld-Eigenschaften ...... 280 TLF-Textfeld formatieren ...... 280 TLF-Textfeld-Eigenschaften »Erweitert – Zeichen« ...... 282 TLF-Textfeld-Eigenschaften »Absatz« ...... 286 TLF-Textfeld-Eigenschaften »Container und Fluss« ...... 288

7 Inhalt

7 Veröffentlichung

7.1 Veröffentlichungseinstellungen ...... 293 Flash-Export (SWF) ...... 294 HTML-Wrapper ...... 301 GIF-Export ...... 306 JPEG-Export ...... 308 PNG-Export ...... 308 7. 2 Einbettung in HTML mit dem SWFObject ...... 309 Express Install ...... 312 FlashVars ...... 313 Parameter ...... 318 7. 3 Ladeverhalten von Flash-Filmen ...... 322 7. 4 Export ...... 325 Symbole und Animationen als Bitmap exportieren ...... 325 Film als Bitmap exportieren ...... 328 7. 5 Eingabehilfen ...... 330 Fenster »Eingabehilfen« ...... 330 Eingabehilfe für Symbole ...... 331 7. 6 FLA-Datei als XFL-Datei speichern ...... 332 Speichern als XFL-Dokument ...... 332 Aktualisieren von Grafikmaterial ...... 333

TEIL III ActionScript

8 ActionScript-Grundlagen

8.1 ActionScript-Versionen ...... 337 8.2 ActionScript-Editor ...... 339 Skripthilfe und Experten-Modus ...... 340 Codefragmente ...... 341 Funktionen des ActionScript-Editors ...... 342 8.3 Mein erstes Skript ...... 346 8.4 Variablen ...... 346 8.5 Datentypen ...... 348 Strikte Typisierung und lose Typisierung ...... 349 Datentypen umwandeln ...... 351 Geltungsbereich ...... 353

8 Inhalt

8.6 Arrays ...... 354 Indizierte Arrays ...... 354 Assoziative Arrays ...... 355 Mehrdimensionale Arrays ...... 355 Arrays sortieren ...... 357 Typisiertes Array: Vektor ...... 359 8.7 Einfache Operatoren ...... 360 Arithmetische Operatoren ...... 360 Vergleichsoperatoren und Fallunterscheidung ...... 361 Logische Operatoren ...... 364 8.8 Bitweise Operatoren ...... 365 8.9 Schleifen ...... 368 while-Schleife ...... 368 do-while-Schleife ...... 370 for-Schleife ...... 370 for-in-Schleife ...... 371 for-each-in-Schleife ...... 372 8.10 Funktionen ...... 373 8.11 Steuerung von Zeitleisten ...... 376 8.12 Anzeigeliste ...... 378 Anzeigeklassen ...... 378 Anzeigeobjekte referenzieren ...... 382 Anzeigeobjekte hinzufügen und entfernen ...... 383 Anzeigeobjekte aus dem Speicher entfernen ...... 385 Reihenfolge in der Anzeigeliste ändern ...... 386 Struktur einer Anzeigeliste ...... 386 Instanzen aus der Bibliothek erzeugen ...... 387 8.13 Ereignisse ...... 389 Ereignisse, Ereignis-Listener und Ereignisprozeduren ...... 390 target und currentTarget ...... 390 Ereignis-Listener entfernen ...... 392 Häufig verwendete Ereignisse mit Anzeigeobjekten ...... 394 8.14 Loader ...... 396 8.15 Fehlersuche ...... 403 Anwendung ...... 404 Haltepunkte ...... 405 Debug-Konsole ...... 405

9 Inhalt

Remote-Debug ...... 406 Debugging mit MonsterDebugger ...... 407 Häufige Fehlerursachen ...... 410

9 Animation mit ActionScript

9.1 Eigenschaften von Anzeigeobjekten ...... 413 9.2 Bildrate ...... 414 Die Bildrate ist nicht konstant ...... 415 Die Bildrate ist unabhängig von der Zeitleiste ...... 415 9.3 Ereignisse ...... 415 ENTER_FRAME ...... 415 MOUSE_MOVE ...... 418 9.4 Timer ...... 420 9.5 Geschwindigkeit und Beschleunigung ...... 422 9.6 Easing ...... 423 Bewegung ...... 424 Weitere Instanzeigenschaften animieren ...... 426 Animation beenden oder loopen ...... 427 9.7 Trigonometrie ...... 430 Koordinatensystem ...... 430 Winkelangabe ...... 430 Grad- und Bogenmaß – Umrechnung ...... 431 Das rechtwinklige Dreieck ...... 432 Schwingende Bewegung ...... 433 Kreisbewegung ...... 441 Winkel zwischen zwei Punkten berechnen ...... 443 9.8 Tween-Engines ...... 448 Adobes Tween-Klasse ...... 448 Tween-Engines ...... 448 TweenLite ...... 449 TweenLite-Plugins ...... 458

10 Einführung in die objektorientierte Programmierung

10.1 Warum OOP? ...... 467 10.2 Die Welt der Objekte ...... 468

10 Inhalt

10.3 Klassen und Objekte ...... 470 Klassenbezeichner und Dateiname ...... 471 Klassendefinition und Konstruktor ...... 471 Objekt initialisieren ...... 472 10.4 Eigenschaften ...... 474 10.5 Methoden ...... 475 10.6 Paket- und Klassenpfad ...... 476 Pakete und Klassen importieren ...... 477 Eigene Pakete und Klassenpfade ...... 479 10.7 Objektorientierte Projekte mit dem Projekt-Fenster verwalten ...... 480 10.8 Sichtbarkeit ...... 483 10.9 Instanz- und Klassenmitglieder ...... 485 10.10 Dokumentklasse ...... 488 10.11 Symbole als Klasse ...... 490 10.12 Getter-/Setter-Methoden ...... 496 Syntax der Getter-Methode ...... 496 Syntax der Setter-Methode ...... 497 10.13 Vererbung ...... 498 Methoden und Eigenschaften der Superklasse ansteuern ...... 500 Methoden und Eigenschaften einer Basisklasse überschreiben ...... 500

11 Zeichnungs-API

11.1 Graphics-Klasse ...... 503 11.2 Anzeigeobjekt erstellen ...... 503 Linien zeichnen ...... 504 Bitmap-Linien zeichnen ...... 509 Kurven zeichnen ...... 510 Füllungen erzeugen ...... 512 Rechteck zeichnen ...... 512 Rechteck mit abgerundeten Ecken zeichnen ...... 518 Kreis zeichnen ...... 518 Ellipse zeichnen ...... 519 Farbverlaufslinien und -füllungen erzeugen ...... 519

11 Inhalt

12 Komponenten

12.1 Einführung ...... 523 12.2 Anwendung ...... 524 Komponenten in der Entwicklungsumgebung ...... 524 Komponenten mit ActionScript erzeugen ...... 526 Komponenten über ActionScript ansteuern ...... 527 Eigenschaften ...... 528 Methoden ...... 528 Ereignisse ...... 529 12.3 Erscheinungsbild anpassen ...... 536 12.4 Stile ...... 537 Komponenteninstanzen anpassen ...... 537 Komponententyp anpassen ...... 537 12.5 Skins ...... 538 Skin eines Komponententyps anpassen ...... 539 Skin einer Komponenteninstanz anpassen ...... 540

TEIL IV Multimedia und dynamische Inhalte

13 Bitmaps

13.1 Bitmap-Import ...... 545 13.2 Photoshop-Import ...... 548 Bildebenen ...... 549 Textebenen ...... 550 13.3 Illustrator-Import ...... 551 Bildebenen ...... 553 Textebenen ...... 553 Pfade ...... 554 13.4 FXG ...... 554 13.5 Mischmodi und Filter ...... 555 Bitmap-Filter anwenden ...... 557 Bitmap-Filter animieren ...... 558 13.6 Anzeigeoptionen und Performance ...... 559 13.7 Mischmodi und Bitmap-Filter mit ActionScript ...... 561 Mischmodi ...... 561 Bitmap-Filter ...... 562

12 Inhalt

13.8 Bitmaps mit ActionScript ...... 565 Bitmap-Klasse ...... 565 BitmapData-Klasse ...... 566 Pixel einer Bitmap auslesen und setzen ...... 567

14 Sound

14.1 Hintergrundwissen ...... 573 14.2 Import und Veröffentlichung ...... 575 Veröffentlichungseinstellungen ...... 575 Tipps für den Import ...... 578 14.3 Sound in der Zeitleiste ...... 579 Soundtypen ...... 579 Soundeffekte ...... 581 14.4 Sounds mit ActionScript ...... 585 Sound-Klasse ...... 585 Sound laden ...... 587 Sound abspielen ...... 589 Sound-Streaming steuern ...... 590 Sound pausieren ...... 594 Soundlautstärke ...... 596 14.5 Soundspektrum ...... 604

15 Video

15.1 Techniken zur Bereitstellung ...... 609 15.2 Adobe Media Encoder ...... 611 Video-Format ...... 611 Kodierung ...... 613 Exporteinstellungen ...... 614 15.3 Video-Import in Flash ...... 622 Video-Playback-Komponente ...... 623 FLV in Zeitleiste integrieren und abspielen ...... 624 15.4 Video-Anwendung ...... 625 Eingebettete Videos ...... 625 Externe Videos ...... 627 Vollbild-Modus ...... 631 Audio-Spur eines Videos steuern ...... 632 Eigenschaften der NetStream-Klasse ...... 634 Cue-Points ...... 636

13 Inhalt

16 Dynamischer Text

16.1 Klassischer Text oder TLF-Text? ...... 647 16.2 Dynamische Textfelder und Eingabetextfelder ...... 650 Textfeld-Einstellungen ...... 651 Zeicheneinbettung ...... 652 16.3 Text zuweisen und abfragen ...... 654 Tabulator-Reihenfolge ...... 661 Eingabefokus ...... 662 16.4 Textdokument laden und ausgeben ...... 664 Zeichenkodierung ...... 664 Textdokumente laden ...... 665 16.5 Textfelder mit ActionScript steuern ...... 670 Textfeld-Eigenschaften ...... 670 TextFormat ...... 673 Schriftart-Symbol und Schriftart-Klasse ...... 676 Textfeld-Methoden ...... 679 16.6 Textscroller – die UIScrollBarKomponente ...... 680 Textbereich definieren ...... 680 Bildlauf aktivieren ...... 681 UIScrollBar-Komponente einfügen ...... 681 Ziel der Scroller-Komponente festlegen ...... 682 16.7 Text Layout Framework ...... 682 Text Layout Framework und MVC Design Pattern ...... 683 Hierarchische Struktur ...... 684 TextLayoutFormat ...... 685 ParagraphElement ...... 690 SpanElement ...... 690 Textcontainer ...... 691 Mehrspaltiger Text ...... 692

17 Flash, PHP und MySQL

1 7.1 PHP ...... 697 Voraussetzungen ...... 698 Lokaler Webserver ...... 699 Sprachelemente und Syntax ...... 702 Datums- und Zeitfunktion ...... 706 Daten in Flash empfangen ...... 707 Daten von Flash an PHP senden und wieder empfangen ...... 715

14 Inhalt

Ein Kontaktformular erstellen ...... 720 Sicherheit ...... 728 PHP-Skripte testen und Fehlermeldungen ...... 731 17.2 MySQL ...... 732 phpMyAdmin ...... 734 Datenbank erstellen ...... 734 Datenbanktabelle erstellen ...... 735 Datentypen ...... 736 Felder bearbeiten, löschen und hinzufügen ...... 738 Datensätze einfügen ...... 739 Tabellen exportieren ...... 739 Tabellen importieren ...... 741 17.3 PHP und MySQL im Team ...... 742 Datenbank-Login ...... 742 Datenbankverbindung herstellen ...... 743 Daten an Flash übergeben ...... 745 Datenbanksätze einfügen ...... 752 Sicherheit ...... 755 Datensätze aktualisieren ...... 758

18 XML

18.1 XML definieren ...... 759 18.2 XML-Dokument laden ...... 761 Wohlgeformtheit ...... 763 Kommentare ...... 763 Anzahl von Elementen ...... 764 Daten filtern ...... 765 18.3 Formatierungen in XML ...... 771 18.4 XML bearbeiten ...... 773 Elementwerte ändern ...... 774 Elemente hinzufügen ...... 774 Elemente entfernen ...... 776 18.5 XML sortieren ...... 777 XML nach Knoten sortieren ...... 778 XML nach Attribut sortieren ...... 779 18.6 XML speichern ...... 781

15 Inhalt

19 FileReference

19.1 Öffnen und Speichern ...... 789 19.2 Download ...... 793 19.3 Upload ...... 797 Methoden ...... 799 Ereignis-Listener ...... 800 Eigenschaften ...... 803 Dateiendungen überprüfen ...... 803 Upload – FAQ ...... 810

TEIL V Weitere Einsatzgebiete

20 Spieleprogrammierung

20.1 Interaktion ...... 819 Tastatursteuerung ...... 819 Maussteuerung ...... 820 20.2 Kollisionserkennung ...... 823 Einfache Kollisionserkennung mit hitTestObject und hitTestPoint ...... 823 Pixelbasierte Kollisionserkennung ...... 825 Positionsbasierte Kollisionserkennung ...... 831 20.3 Zeit ...... 834 20.4 Daten lokal speichern mit einem SharedObject ...... 835 20.5 Asteroids-Spiel ...... 839 Startbildschirm ...... 840 Soundobjekte initialisieren ...... 841 Spielvariablen initialisieren ...... 841 Raumschiffsteuerung ...... 842 Feuer frei ...... 843 Asteroiden erzeugen ...... 845 Bewegung und Kollisionserkennung der Asteroiden ...... 846 Schwierigkeitsgrad erhöhen ...... 849 Schussenergie aufladen ...... 849 Lebenspunkte erzeugen ...... 850 SlowMotion-Punkte erzeugen ...... 852 Spiel beenden ...... 853

16 Inhalt

20.6 Highscore ...... 855 Highscore laden ...... 855 Highscore aktualisieren und speichern ...... 856 Highscore darstellen ...... 859 Spiel neu starten ...... 860 20.7 Highscore-Sicherheit ...... 861 Hashfunktion verwenden ...... 862 Zeitpunkte in einem Array speichern ...... 862 Hashwerte erzeugen ...... 864 Analyse der Verschleierungstechnik ...... 866 Weitere Betrugsmöglichkeiten ...... 868 20.8 Mehr zum Thema Spieleentwicklung ...... 869 Mit Flash-Browser-Spielen Geld verdienen ...... 869 Werkzeuge für die professionelle Spieleentwicklung ...... 869

21 AIR: Für mobile Geräte und den Desktop veröffentlichen

21.1 Wie funktioniert AIR? ...... 871 Historie von AIR ...... 872 Mit eingebetteter Laufzeitumgebung ohne AIR-Abhängigkeit veröffentlichen ...... 873 21.2 Desktop-Anwendungen entwickeln ...... 874 21.3 Mobile Anwendungen entwickeln ...... 875 Mobile Content Simulator ...... 875 Native Extensions ...... 875 Debugging ...... 876 21.4 »Hello World«-iPhone-App mit AIR entwickeln ...... 877 Vorbereitung zum Testen auf dem Gerät ...... 880 Veröffentlichen für das iPhone ...... 888 ActionScript API ...... 893 Einschränkungen und Richtlinien ...... 895

22 Von Flash nach HTML5 exportieren

22.1 CreateJS ...... 899 22.2 Einschränkungen von CreateJS ...... 900 22.3 Installation des Toolkit for CreateJS ...... 901 22.4 Das Toolkit for CreateJS anwenden ...... 902

17 Inhalt

22.5 Eine HTML5-Website mit Flash entwickeln ...... 903 22.6 Fazit ...... 908

23 Ein Blick über den Tellerrand

23.1 ActionScript-Entwicklungs­umgebungen ...... 911 FlashDevelop ...... 911 Flash Development Tools (FDT) ...... 914 Flash Builder und Flash Professional optimal nutzen ...... 917 23.2 Hochperformante 2D- und 3D-Anwendungen entwickeln ...... 926 Mit flüssige 2D-Spiele entwickeln ...... 927 3D-Animationen und -Spiele ...... 927 23.3 Ausgelaufene Technologien ...... 929 Adobe Flex ...... 929 Catalyst ...... 931 Weitere veraltete Technologien ...... 934 23.4 Bildschirmschoner ...... 934

Die DVD zum Buch ...... 937 Index ...... 939

18 Workshops

Workshops

Zeichnen  Farben einer umgewandelten Bitmap-Grafik austauschen ...... 102

Symbole, Instanzen und die Bibliothek  Instanzeigenschaften ändern ...... 127  Eine Schaltfläche erstellen ...... 133

Animation  Die Animation anlegen ...... 167  Animation in MovieClip verschachteln ...... 172  Geschwindigkeit ändern ...... 174  Ein Bewegungs-Tweening erstellen ...... 181  Eine Animation entlang eines Pfades erstellen ...... 187  Den Bewegungs-Editor einsetzen ...... 195  Beschleunigung im Bewegungs-Editor nutzen ...... 199  Klassisches Tween an Pfad ausrichten ...... 206  Klassisches Tween mit Beschleunigung und Abbremsung ...... 210  Ein fahrendes Motorrad mit einem beschleunigten klassischen Tween ...... 213  Ein springender Ball mit beschleunigtem klassischem Tween ...... 215  Bitmap in Vektoren umwandeln ...... 221  Formmarken für einen Form-Tween einsetzen ...... 223  Verlaufsmaske erstellen ...... 227  Verschachtelung in einer Galerie mit Maskeneffekt ...... 231  Charakteranimation mit inverser Kinematik ...... 243

Text  Maskierung von Geräteschriften ...... 268  Textfelder miteinander verbinden ...... 289

Veröffentlichung  FlashVars einsetzen ...... 315

ActionScript-Grundlagen  Navigation mit externen Flash-Filmen ...... 399  Remote-Debugging mit dem »MonsterDebugger« ...... 407

19 Workshops

Animation mit ActionScript  Animation mit Event.ENTER_FRAME-Ereignis ...... 417  Animation mit MouseEvent.MOUSE_MOVE-Ereignis ...... 419  Bewegung mit Easing ...... 425  FadeOut mit Easing ...... 426  Animation beenden ...... 428  Fading-Animation loopen ...... 429  Schwingende Bewegung auf der x-Achse ...... 434  Schwingende Bewegung auf der y-Achse ...... 436  3D-Bewegung und Tiefenänderung ...... 438  Kreis- und ellipsenförmige Bewegung ...... 441  Spiralenförmige Bewegung ...... 442  MovieClip in Mausrichtung drehen ...... 444  MovieClip in Mausrichtung bewegen ...... 445  3D-Flip mit TweenLite ...... 455  Schneeflockensimulation mit TweenLite ...... 463

Einführung in die objektorientierte Programmierung  Klasse und Objekt erstellen ...... 473  Eine analoge Uhr erstellen ...... 491

Zeichnungs-API  Interaktive Linie zeichnen ...... 507  Interaktive Kurve zeichnen ...... 510  Interaktives Zeichnen von Rechtecken ...... 513

Komponenten  Gallery mit Slideshow-Funktion mithilfe von ­Komponenten ...... 529

Bitmaps  Bitmap-Filter mit ActionScript steuern ...... 563  Farbwerte einer Bitmap auslesen ...... 567  Kreispunkt-Muster mit setPixel erzeugen ...... 570

Sound  Eine Schaltfläche mit Sounds versehen ...... 580  Einen Streaming-Sound ein- und ausblenden ...... 583  Mehrere Sounds zuweisen, abspielen und stoppen ...... 592  Sound pausieren und abspielen ...... 595  Soundlautstärke über einen Slider steuern ...... 597  Das Soundspektrum eines abspielenden Sounds auslesen und grafisch darstellen ...... 605

20 Workshops

Video  Ein eingebettetes Video über die Zeitleiste steuern ...... 625  Ein Video über ActionScript abspielen und steuern ...... 629  Ereignis-Cue-Points einsetzen ...... 638  Navigation-Cue-Points einsetzen ...... 642

Dynamischer Text  Texteingabe abfragen und ausgeben ...... 658  FocusEvent.FOCUS_IN und FocusEvent.FOCUS_OUT zur Hervorhebung von Eingabetextfeldern nutzen ...... 662  Textdokument laden und ausgeben ...... 668  Mehrspaltigen Text über ActionScript mithilfe des Text Layout Frameworks erzeugen ...... 692

Flash, PHP und MySQL  Serverseitiges Datum und Zeit in Flash ausgeben ...... 712  Kontaktformular – Eingabe überprüfen und ­zurücksetzen ...... 720  Kontaktformular – Kontaktdaten an ein PHP-Skript senden ...... 724  Kontaktformular – PHP-Skript für den Mailversand erstellen ...... 726  Kontaktformular – PHP-Skript mit Sicherheitsfunktionen­ versehen ...... 730  Gästebuch – Datensätze auslesen und in Flash darstellen ...... 748  Gästebuch – Daten von Flash an PHP übergeben und Datensätze erstellen ...... 753  Gästebuch – SQL-Injections verhindern ...... 757

XML  RSS-Feed einlesen und Daten des Feeds in Flash darstellen ...... 766  RSS-Feed serverseitig einlesen und an den Flash-Film übergeben ...... 769  HTML-Formatierungen in XML-Knoten integrieren ...... 772  XML-Dokument laden, ändern und mittels eines serverseitigen Skripts wieder speichern ...... 781

FileReference  Ein Textdokument in den Flash Player laden und ausgeben ...... 790  Daten lokal abspeichern ...... 792  Download via FileReference-Klasse mit Fortschrittsbalken ...... 795  Die Upload-Methode nutzen und Dateien clientseitig­ auf ihre Dateiendungen hin überprüfen ...... 804  Den Fortschritt des Upload-Vorgangs anzeigen ...... 808  Upload: Dateiendung serverseitig überprüfen ...... 809

21 Workshops

Spieleprogrammierung  Kollisionserkennung mit Randbereichen und Bouncing­ ...... 833  Spielername lokal speichern und lesen ...... 838

AIR: Für mobile Geräte und den Desktop veröffentlichen  »HelloWorld« mit dem mobilen Simulator ...... 877  Zertifizierungsprozess unter Mac OS X durchführen ...... 881  Zertifizierungsprozess unter Windows durchführen ...... 883

Von Flash nach HTML5 exportieren  HTML5-Website mit CreateJS entwickeln ...... 904

Ein Blick über den Tellerrand  Optimalen Workflow einrichten ...... 918

22 Kapitel 5 Animation

Kapitel 5 Animation

Animationen sind seit der ersten Flash­Version bis heute eine der größten Stärken von Flash. In diesem Kapitel lernen Sie die Grundlagen, um Animationen in Flash zu erstellen und zu steuern. Sie lernen die unterschiedlichen Animationstechniken kennen und erfahren, wie Sie selbst Instanzeigenschaften wie z. B. Position, Ska­ lierung, Transparenz und Farbe animieren können.

5.1 Zeitleiste

Bevor es darum geht, die verschiedenen Animationsmöglichkei- [Animation] ten, die in Flash zur Verfügung stehen, zu erläutern, sollten Sie Animation ist die Veränderung ei- sich mit der Zeitleiste näher vertraut machen. Der richtige Um- ner Objekteigenschaft über einen gewissen Zeitraum. Es gibt zwei gang mit der Zeitleiste ist zum Erstellen von Animationen eine wesentliche Faktoren, die eine Grundvoraussetzung. Animation beeinflussen: die sich Die Zeitleiste ist das Mittel, um den zeitlichen Ablauf eines ändernde Eigenschaft (wie z. B. Flash-Films zu steuern. Vergleicht man einen Flash-Film mit die Position, Farbe oder die einem echten Film, würde die Zeitleiste der Filmrolle entspre- Größe) und die Zeit. chen, auf der die Einzelbilder eines Films in bestimmten Abstän- den in einer bestimmten Reihenfolge hintereinanderliegen. Ein Abspielgerät zeigt die Einzelbilder des Films in einer bestimmten Geschwindigkeit (bei Kino-/Fernsehfilmen üblicherweise 24 Bil- der pro Sekunde) an. b

a c

F Abbildung 5.1 Die Zeitleiste

153 Kapitel 5 Animation

Abspielrichtung Auf der linken Seite der Zeitleiste werden Ebenen 1 und auf Der Abspielkopf bewegt sich beim der rechten Seite die Bilder der Zeitleiste 3 dargestellt. Das rote Abspielen der Zeitleiste von links Rechteck 2 zeigt die aktuelle Position des Abspielkopfes in der nach rechts, um die einzelnen Bil- Entwicklungsumgebung an. der der Zeitleiste und deren Inhalt darzustellen. Ebenenmodell Ebenen sind vergleichbar mit transparenten Folien. Auf der trans- parenten Fläche einer Folie lassen sich verschiedene Elemente anlegen. Die Folien werden dann in einer bestimmten Reihen- folge, der Ebenenreihenfolge, übereinandergelegt und ergeben so ein Gesamtbild.

Ebene 1 Ebene 2 Ebene 3 Ebene 4

Ebene 1 Ebene 2 Ausgabe

+ =

Ebene 1 Ebene 2 Ausgabe

+ =

Ebene 1 Ebene 2 Ausgabe

+ =

Ebenen und Animation G Abbildung 5.2 Grundsätzlich gilt, dass Objekte, Funktionsweise von Ebenen auf einen Blick die animiert werden, auf einer eigenen Ebene platziert werden Jeder Flash-Film kann beliebig viele Ebenen besitzen – mithilfe müssen – es sollten also keine von Ebenen können Sie die Bestandteile eines Flash-Films hie- anderen Elemente auf der rarchisch anordnen, inhaltsbezogen verteilen und strukturieren. Ebene platziert werden, da es sonst zu Fehlern kommt. Die Ausnahmen dieser Regel sind Mit Ebenen arbeiten Bild-für-Bild-Animationen und geskriptete Animationen, bei Nachdem ein neuer Flash-Film erstellt wurde, gibt es zunächst denen auch mehrere Elemente nur eine einzige Ebene mit dem Namen »Ebene 1«. Um eine neue auf einer Ebene platziert wer- Ebene anzulegen, klicken Sie in der Zeitleiste auf Ebene einfü- den können. gen 1.

154 5.1 Zeitleiste

F Abbildung 5.3 a Eine neue Ebene wurde eingefügt.

Sie sollten Ebenen möglichst eindeutige Namen zuweisen, damit Sie später einen Hinweis darauf haben, was sich auf den entspre- chenden Ebenen befindet. Klicken Sie dazu auf den Ebenenna- men 2. Anschließend können Sie einen neuen Namen eingeben.

b

F Abbildung 5.4 Ebenennamen ändern

Flash-Filme mit vielen Objekten und Animationen können sehr viele Ebenen beinhalten. Je mehr Ebenen der Flash-Film hat, desto wichtiger ist es, sich die Zeit zu nehmen, Ebenen zu benen- nen – die Übersicht geht sonst schnell verloren.

F Abbildung 5.5 c Ein Negativbeispiel – wo ist was? Das Rätseln beginnt.

Um eine Ebene zu löschen, wählen Sie diese aus und klicken dann auf das Papierkorb-Symbol löschen 3.

Ebenenreihenfolge |Über die Ebenenreihenfolge legen Sie fest, Reihenfolge welche Objekte im Vordergrund und welche im Hintergrund lie- Objekte auf der obersten Ebene gen sollen. überlagern alle Objekte, die auf Ebenen darunter liegen. Ein möglicher Ebenenaufbau einer Webseite könnte so aus- sehen:

155 Kapitel 5 Animation

Strukturierung  Unten: eine Ebene mit Hintergrundelementen (Grafiken, Fens- Am Anfang fällt es nicht immer ter für Textbereiche etc.) leicht, eine gute Struktur für ei-  Im mittleren Bereich: Ebenen mit Hauptinhalten der Webseite nen Flash-Film zu finden. Je mehr (Texte, Grafiken, Logo etc.) Sie mit Flash arbeiten, desto ein- facher wird Ihnen das mit der Zeit  Oben: eine Ebene mit Bildbezeichnern und Aktionen (Diese fallen, da Sie fast wie von selbst Ebenen haben keinen sichtbaren Inhalt – sie dienen zur Steu- lernen, bestimmte Inhalte nach erung und Strukturierung des Flash-Films. Üblicherweise wer- bestimmten Schemata zu struktu- den sie ganz oben positioniert.) rieren.

Abbildung 5.6 E Klassische Ebenenstruktur einer Webseite

Natürlich können Sie die Ebenenreihenfolge auch jederzeit än- Ebenen auswählen dern. Wählen Sie dazu die Ebene via Mausklick aus 2, halten Sie Halten Sie bei der Auswahl statt die Maustaste gedrückt, und verschieben Sie die Ebene auf die (ª) die (Strg)-Taste gedrückt, 1 um eine Mehrfachauswahl von gewünschte Position. Eine Linie zeigt die neue Position der Ebenen vorzunehmen, die nicht Ebene während des Vorgangs an. hintereinanderliegen. a b

Abbildung 5.7 E Die Ebene Vordergrund wird nach oben verschoben.

Ebenenordner steuern Ebenenordner |Ebenen lassen sich mithilfe von ein- und aus- Die Steuerungsfunktionen, die im klappbaren Ebenenordnern strukturieren. So können Sie mit folgenden Abschnitt erläutert Ebenenordnern Ebenen z. B. nach ihrem Inhalt sortieren und werden, können auch auf Ebe- strukturieren. Es wäre beispielsweise sinnvoll, Ebenen mit Navi- nenordner angewendet werden. So ist es z. B. möglich, alle Ebenen gationselementen in einen Ebenenordner Navigation zu platzie- eines Ordners gleichzeitig auszu- ren. Das lohnt sich meist aber erst, wenn Sie insgesamt mehr als blenden oder zu sperren. 15 Ebenen haben und sonst in der Zeitleiste oft scrollen müssten, um alle Ebenen im Blick zu behalten. Um einen Ebenenordner anzulegen, klicken Sie in der Zeit- leiste auf Neuen Ordner 3. Nachdem der Ordner angelegt wurde, sollten Sie ihm via Mausklick auf den Ordnernamen einen eindeutigen Namen zuweisen.

156 5.1 Zeitleiste

Anschließend wählen Sie alle Ebenen aus, die Sie in den Ordner verschieben möchten. Wenn diese Ebenen hintereinanderliegen, wählen Sie erst die unterste oder oberste Ebene aus, halten (ª) gedrückt und wählen dann die oberste oder unterste Ebene aus. Alle Ebenen dazwischen werden automatisch ausgewählt. Klicken Sie dann auf eine ausgewählte Ebene, halten Sie die Maustaste gedrückt, und ziehen Sie die Ebenen in den Ordner.

c

G Abbildung 5.8 Links: Ein neuer Ebenenordner wurde angelegt. Rechts: Die aus- gewählten Ebenen werden in den Ordner verschoben.

Sie können jetzt auf einen Blick erkennen, welche Ebenen zur Na- vigation gehören. Ein weiterer Vorteil ist, dass Sie Ebenenordner Tiefe der Verschiebung ein- und ausklappen können, was Platz in der Zeitleiste spart. Sie An dem kreisförmigen Abschluss der Vorschaulinie 5 können Sie müssen dann seltener in der Zeitleiste scrollen. Um einen Ebe- erkennen, in welcher Tiefe die nenordner ein- bzw. auszuklappen, klicken Sie einfach auf den Ebenen eingesetzt werden. Pfeil 4 auf der linken Seite der Ebene.

d

G Abbildung 5.9 Ebenen des Ordners ein-/ausblenden e

Ebenen steuern | Sie können Ebenen über drei verschiedene Modi steuern:  Via Mausklick auf einen der kleinen runden Kreise unter dem G Abbildung 5.10 Auge 1 (siehe Abbildung 5.11) können Sie Ebenen ein- und Oben: Die Ebenen werden inner- ausblenden. Das ist dann besonders hilfreich, wenn sich Be- halb des Ebenenordners platziert. reiche in der Arbeitsfläche überlagern und Sie zeitweise nur Unten: Die Ebenen werden ober- bestimmte Teile des Flash-Films betrachten möchten. halb des Ebenenordners platziert.

157 Kapitel 5 Animation

a b

G Abbildung 5.11 Die Ebene »Inhalt« ist links aus- und rechts eingeblendet.

Ausgeblendete Ebenen  Klicken Sie auf den runden Kreis unterhalb der Spalte mit dem einschließen Schloss 2, um eine Ebene zu sperren bzw. zu entsperren. Wenn Sie bestimmte Ebenen aus- Wenn eine Ebene gesperrt ist, können Elemente auf dieser blenden, können Sie Flash dazu Ebene nicht mehr ausgewählt werden. Dadurch wird verhin- veranlassen, diese Ebenen bei der Veröffentlichung des Flash-Films dert, dass Objekte auf dieser Ebene unbeabsichtigt verschoben zu ignorieren . Diese Option ist oder verändert werden. nützlich in der Entwurfsphase. Sie Ein Schloss-Symbol 5 wird angezeigt, wenn die Ebene ge- finden die entsprechende Option sperrt wurde. Wenn Sie die Ebene anwählen, zeigt Ihnen zu- im Menü Datei • Einstellungen sätzlich ein durchgestrichener Stift 3 an, dass auf dieser Ebene für Veröffentlichungen im zweiten Reiter Flash unter Erwei- nicht gearbeitet werden kann. tert • Ausgeblendete Ebenen 3 4 Einschliessen. Deaktivieren Sie die Option, um ausgeblendete 5 Ebenen auszuschließen.

G Abbildung 5.12 Die Ebene Vordergrund wurde gesperrt. Hinweis Konturen werden ausschließlich  Gelegentlich kommt es vor, dass Objekte aneinander ausge- bei vektorbasierten Formen ange- richtet werden sollen, bestimmte Teile der Objekte sich aber zeigt. Bei Bitmaps beispielsweise wird in der Konturansicht statt so überlagern, dass der Überblick verloren geht. Via Mausklick einer Kontur der Begrenzungsrah- auf das Quadrat unter dem rechteckigen Rahmen 4 können men der Bitmap angezeigt. Sie die Konturansicht aktivieren bzw. deaktivieren. Es werden dann nur die Konturen der Objekte auf der Ebene dargestellt.

Sie können auch alle Ebenen gleichzeitig steuern. Klicken Sie dazu oberhalb der Ebenen auf eines der Symbole Auge, Schloss oder Rahmen.

158 5.1 Zeitleiste

F Abbildung 5.13 Konturansicht und die normale Ansicht im Vergleich

Bilder und Schlüsselbilder auf der Zeitleiste

Nachdem Sie einen neuen Flash-Film erstellt haben, besitzt der Bilder der Zeitleiste Flash-Film ein einziges Bild. Am Anfang steht Ihnen in Bild 1 Der Begriff Bild ist nicht eindeu- der Zeitleiste ein leeres Schlüsselbild zur Verfügung 6. In leeren tig, da er für zweierlei Dinge ver- wendet wird: Schlüsselbildern befindet sich nichts auf der Bühne. Sie können Einerseits wird üblicherweise von an dieser Stelle Inhalte einfügen, was dazu führt, dass aus dem einem Bild der Zeitleiste (oder leeren Schlüsselbild ein Schlüsselbild 7 wird. auch vom Inhalt »an bzw. in Bild X«) gesprochen. Dies bezieht sich f 7 auf die Position innerhalb der Zeitleiste. Andererseits gibt es Bilder in der Zeitleiste, die den Inhalt des vor- angehenden Schlüsselbilds dar- stellen. Der Begriff ist derselbe, die Bedeutung aber eine andere.

G Abbildung 5.14 Links: leeres Schlüsselbild; rechts: ein Schlüsselbild

Um den Inhalt eines Schlüsselbilds im weiteren Verlauf der Zeit- leiste unverändert darzustellen, können Bilder 9 (engl. »Frames«) hinter dem Schlüsselbild eingefügt werden. Diese zeigen dann den Inhalt des vorangehenden Schlüsselbilds in unveränderter Form an. Um weitere Bilder einzufügen, klicken Sie auf das freie Bild in der Zeitleiste, um den Abspielkopf auf dieses Bild zu setzen, und

159 Kapitel 5 Animation

wählen aus dem Menü Einfügen • Zeitleiste • Bild oder nutzen das Tastenkürzel (F5). h i

Schlüsselbilder In Flash wird für jede Eigen- schaftsänderung eines Objekts, G Abbildung 5.15 wie z. B. die Änderung der Posi- Ein Schlüsselbild 8 und neun Bilder 9 dahinter tion, der Skalierung, des Rotati- onswinkel etc. auf einer soge- nannten Tween-Ebene für diese Schlüsselbild einfügen | Wenn sich der Inhalt auf der Bühne Eigenschaft ein eigenes Schlüs- verändern soll – sei es durch die Änderung der Position, der selbild erstellt. Näheres dazu Größe etc. des Inhalts oder durch einen neuen Inhalt –, wird dazu erfahren Sie im weiteren Verlauf ein neues Schlüsselbild auf der Zeitleiste benötigt. dieses Kapitels. Um ein neues Schlüsselbild zu erstellen, klicken Sie auf das Bild in der Zeitleiste und wählen Einfügen • Zeitleiste • Schlüssel- j k bild. Wer lieber mit Tastenkürzeln arbeitet, kann sich dafür das Tastenkürzel (F6) merken. Flash fügt daraufhin ein neues Schlüsselbild k ein – auf der Bühne sehen Sie noch keine Veränderung. Erst wenn Sie auf der Bühne eine Veränderung vornehmen, also z. B. ein weiteres Objekt zeichnen oder das bestehende Objekt verändern, sehen G Abbildung 5.16 Ein neues Schlüsselbild wurde in Sie, was passiert: Der Bereich j vor dem neuen Schlüsselbild Bild 10 angelegt. bleibt unverändert.

Schlüsselbilder verschieben/ Leere Schlüsselbilder | In leeren Schlüsselbildern befindet sich kopieren nichts auf der Bühne. Ein leeres Schlüsselbild können Sie über das Um ein Schlüsselbild auf der Menü Einfügen • Zeitleiste • Leeres Schlüsselbild oder über Zeitleiste zu verschieben, wäh- (F7) einfügen. len Sie es zunächst aus, halten die Maustaste gedrückt und be- wegen die Maus, um es auf der Schlüsselbild löschen | Um ein Schlüsselbild zu löschen, wählen Zeitleiste zu verschieben. Wenn Sie dieses zunächst aus, öffnen über die rechte Maustaste das Sie dabei (Alt) gedrückt haben, Kontextmenü und wählen dann den Menüpunkt Schlüsselbild wird eine Kopie des Schlüssel- löschen oder drücken das Tastenkürzel (ª)+(F6). bilds angelegt.

160 5.1 Zeitleiste

Darstellungsweise | Die Darstellungsweise von Bildern (Inhal- ten), Animationen und Ebenen auf der Zeitleiste zeigen Ihnen auf den ersten Blick bereits, was sich auf dem entsprechenden Bild oder der Ebene befindet bzw. was dort geschieht. Die folgende Übersicht zeigt Ihnen, wie unterschiedliche Bereiche in der Zeit- leiste dargestellt werden.

Bilder der Zeitleiste

G Abbildung 5.17 G Abbildung 5.18 Ein leeres Schlüsselbild ohne Inhalt auf der Bühne Ein Schlüsselbild und dahinter neun Bilder

G Abbildung 5.19 Ein leeres Schlüsselbild, dem eine Aktion zugewiesen G Abbildung 5.20 wurde – ein kleines »a« zeigt diese Zuweisung an. Die Ebene Labels besitzt zwei Schlüsselbilder, denen Bildbezeichner zugewiesen wurden.

G Abbildung 5.21 G Abbildung 5.22 Eine Tween-Ebene beinhaltet ein Tween mit einer Eine Tween-Ebene. In Bild 20 wurde eine Eigen- Länge von 20 Bildern. schaft des Objekts geändert. Dies zeigt das rauten- förmige sogenannte Eigenschaften-Schlüsselbild in Bild 20 an.

G Abbildung 5.23 G Abbildung 5.24 Ein klassisches Bewegungs-Tweening mit zwei Ein klassisches Bewegungs-Tweening, das jedoch Schlüsselbildern und einer Länge von 20 Bildern. fehlerhaft ist, da bisher kein zweites Schlüsselbild eingerichtet wurde. Dies wird durch die gestrichelte Linie angezeigt.

G Abbildung 5.25 G Abbildung 5.26 Ein Form-Tween mit einer Länge von 20 Bildern und Eine Maskenebene Maske, die die Ebene Inhalt zwei Schlüsselbildern. maskiert.

G Abbildung 5.28 G Abbildung 5.27 Eine Posenebene mit zwei Posenbildern Ein Bewegungs-Tweening auf der Ebene Inhalt. Das Tweening orientiert sich an dem Pfad, der auf der Führungsebene Pfad angelegt wurde.

161 Kapitel 5 Animation

Darstellungsoptionen der Zeitleiste Über das Optionsmenü 1 der Zeitleiste lässt sich die Darstel- lungsweise der Zeitleiste einstellen. a

Abbildung 5.29 E Darstellungsoptionen der Zeitleiste

Bei einem Flash-Film mit sehr vielen Ebenen bietet beispielsweise eine kleinere Darstellung der Zeitleiste einen besseren Überblick – unsere persönliche Empfehlung ist, die Ansicht Normal und Reduziert zu aktivieren; Sie können so möglichst viele Ebenen auf kleinster Fläche darstellen.

Abbildung 5.30 E Darstellungen im Vergleich (von oben nach unten): Normal und Reduziert, Gross, Vorschau im Kontext

162 5.1 Zeitleiste

Die Einstellungen Vorschau und Vorschau im Kontext zeigen in- nerhalb der Zeitleiste eine kleine Vorschau des jeweiligen Bildes an.

Zeitleiste steuern Normalerweise sehen Sie sich zum Testen Ihrer Arbeit den kom- pletten Flash-Film an, indem Sie (Strg)/(°)+(¢) drücken oder den Befehl über Steuerung • Film testen • Testen aufrufen. Möchten Sie sich hingegen nur die aktuell betrachtete Zeitleiste anschauen, möglicherweise die eines MovieClips, drücken Sie einfach die (¢)-Taste, und die Wiedergabe startet an der Stelle, an der der Abspielkopf in der Zeitleiste aktuell steht. Im Zeitleisten-Fenster finden Sie eine kleine, aber wichtige Funktion, die Ihnen eine Menge Zeit spart: Die Schleife 7 erleichtert die Arbeit mit Animationen erheblich, da man bei komplexen Symbolen in der Regel mehrere Teilanimationen in einem MovieClip hat und sich oft nur bestimmte Teile der Anima- tion genau anschauen möchte, um an diesen zu arbeiten. Aktivieren Sie die Schleife, können Sie den Schleifenbereich über die Anfasser 2 und 3 anpassen. Der Abspielkopf wird sich dann nach Betätigen der Abspieltaste nur innerhalb des Schlei- fenbereichs bewegen. b c

F Abbildung 5.31 Nur innerhalb einer ausgewählten Schleife abspielen

d 5 f 7

Neben der Schleife finden Sie übrigens auch weitere Steuer- elemente: z. B. Abspielen 4, was dieselbe Funktion wie die (¢)-Taste erfüllt, Ein Bild vorgehen 5, was den Abspielkopf um ein Bild nach rechts bewegt (auch über die (.)-Taste auslösbar), und Zum letzten Bild gehen 6, was den Abspielkopf ans rechte Ende bewegt (auch über (ª)+(.) auslösbar). Für die Tastenkür- zel der Linksbewegung müssen Sie die (.)-Taste jeweils durch die (,)-Taste ersetzen.

Szenen und Bildbezeichner Komplexere Flash-Filme bestehen meist aus mehrteiligen Be- reichen. Bei einer Webseite hätte man zu Beginn eventuell eine

163 Kapitel 5 Animation

kurze Animationssequenz, z. B. für einen animierten Aufbau der Webseite, und anschließend die einzelnen Inhaltsbereiche der Webseite. Für einen solchen Aufbau können Sie Szenen verwenden. Jede Szene besitzt eine eigene Hauptzeitleiste. Sie erreichen das Fens- ter zur Verwaltung von Szenen über Fenster • Andere Bedien- felder • Szene.

Szenen verwalten |Um eine neue Szene zu erstellen, klicken Sie a auf das Symbol Szene hinzufügen 2. Via Doppelklick auf die Szene 1 können Sie der Szene einen individuellen Namen ge- 2 ben. Per Mausklick auf Szene duplizieren 3 wird ein Duplikat c 4 inklusive aller Inhalte der Szene erstellt. Eine vorhandene Szene können Sie via Mausklick auf den Papierkorb 4 löschen. Die Rei- henfolge von Szenen können Sie per Drag & Drop ändern. G Abbildung 5.32 Im Fenster Szene können Sie die Szenen Ihres Films verwalten. Vor- und Nachteile | Auf den ersten Blick erscheinen Szenen sehr vielversprechend, da sich Bereiche mittels Szenen inhaltlich sichtbar trennen lassen. In der Praxis ergeben sich allerdings des Dateigröße Öfteren Probleme, die einem häufig erst später auffallen. So ist es Der Einsatz von Szenen führt z. B. nicht möglich, ein grafisches Element auf mehreren Szenen häufig dazu, dass Flash-Filme gleichzeitig anzuzeigen, da jede Szene eine eigene Hauptzeitleiste unnötig groß werden, da Ele- mente, die in mehreren Szenen besitzt und die Zeitleisten von zwei Szenen in keiner Weise mit- eingesetzt werden, auch mehr- einander verbunden sind. mals instantiiert bzw. erzeugt Wenn Szenen verwendet werden, führt das oft dazu, dass Ebe- werden müssen. Das lässt sich nen und Elemente mehrmals angelegt werden müssen. Häufig mithilfe von Bildbezeichnern möchte man den Übergang zwischen zwei Bereichen eines Flash- vermeiden. Films über Transitionseffekte, wie ein Überblenden oder das Auf- und Abbauen von Elementen, animieren. Einen Übergang zwischen zwei Szenen zu animieren ist sehr umständlich, da eine Szenen vermeiden Szene immer abrupt mit einem Endbild endet und die nächste Haben Sie einen Film erst ein- Szene mit einem Startbild anfängt. mal in Szenen unterteilt, ist es sehr mühselig, die Struktur wie- Eine Alternative zur Strukturierung bieten sogenannte Bildbe- der abzuändern. Alles in allem zeichner. führt der Einsatz von Szenen in der Praxis oft zu vielen vermeid- Bildbezeichner Mithilfe | von Bildbezeichnern können Sie ver- baren Problemen. Der Einsatz schiedene Bereiche eines Flash-Films visuell auf der Hauptzeit- von Szenen wird daher mittler- leiste oder auch auf der Zeitleiste eines MovieClips voneinander weile von vielen Flash-Nutzern vermieden. trennen. Bildbezeichner können nur Schlüsselbildern zugeord- net werden – gängige Praxis ist es, eine eigene Ebene speziell für Bildbezeichner zu erstellen, an den gewünschten Stellen leere Schlüsselbilder anzulegen und diesen Schlüsselbildern dann Bild- bezeichnern zuzuweisen. Da Bildbezeichner über ActionScript bildunabhängig angesteuert werden können, können Sie Schlüs-

164 5.1 Zeitleiste

selbilder mit Bildbezeichnern nachträglich beliebig verschieben, ohne dass dies die Ansteuerung via ActionScript unerwünscht be- einflusst. Die Nutzung von Bildbezeichnern kann die Steuerung Bildbezeichner typ und nachträgliche Veränderungen vereinfachen. Optional können Sie im Feld Typ Sie können die Position einzelner Bereiche eines Flash-Films einen Bildbezeichnertyp festle- dann auf einen Blick schnell erkennen 1, 2 und 3. Animierte gen. Der Typ dient lediglich zur Übergänge 4 sind ebenso möglich wie mehrfach verwendete Beschreibung. Sie können zwi- schen den drei Werten Name, Elemente 5 und 6, die einfach mithilfe von Ebenen über meh- Kommentar und Anker wählen. rere Bereiche verteilt werden. a b c

d F Abbildung 5.33 e f Getrennte Bereiche mit Bild- bezeichnern

Um einem Schlüsselbild einen Bildbezeichner zuzuweisen, wählen Film stoppen Sie das Schlüsselbild in der Zeitleiste aus und öffnen gegebenen- Üblicherweise sollte der Flash- falls das Eigenschaften-Fenster. Tragen Sie den Bildbezeichner Film an Stellen mit Bildbezeich- nern stoppen. Dazu werden auf im Eigenschaften-Fenster im Reiter Bezeichnung unter Name einer eigenen Ebene, z. B. einer 7 ein. Bildbezeichner mit Leerzeichen sind zwar gültig, sollten Ebene Actions, Schlüsselbilder aber vermieden werden. angelegt und den Schlüsselbildern die Aktion stop(); zugewiesen. Mehr zur Steuerung von Flash- Filmen erfahren Sie in Abschnitt 5.9, »Verschachtelung«.

g F Abbildung 5.34 Bildbezeichner zuweisen

Ansteuerung von Szenen und Bildbezeichnern | Sie können Ansteuerung von Bildern Szenen und Bildbezeichner über ActionScript ansteuern. Um Weitere Beispiele zur Ansteue- beispielsweise am Ende einer Szene eine andere Szene mit dem rung von Bildern der Zeitleiste finden Sie in Abschnitt 5.9, Namen »webpage« anzuspringen, wird einem Schlüsselbild im »Verschachtelung«. letzten Bild der Szene folgender Code zugewiesen:

165 Kapitel 5 Animation

gotoAndStop(1,"webpage");

In diesem Codebeispiel entspricht »webpage« dem Namen der Szene und »1« der Bildnummer des Bildes, das angesprungen wird. Ein Bild mit dem Bildbezeichner »game« kann durch folgen- den Code angesprungen werden:

gotoAndStop("game");

5.2 Bild-für-Bild-Animation

Animationen können in Flash über verschiedene Techniken ver- wirklicht werden. Die Auswahl der Technik richtet sich dabei nach der gewünschten Animation.

Link-Tipp: Flash Fight Anwendungsbereiche | Bild-für-Bild-Animationen werden recht Unter www.yonkis.com/media­ selten eingesetzt, da sie in vielen Fällen zu einer großen Datei­ flash/animacionflashera.htm finden größe des Flash-Films führen und vergleichsweise zeitaufwendig Sie eine witzige Zeichentrick-Ani- sind. Für jede Änderung wird ein eigenes Schlüsselbild benötigt. mation, die in großen Teilen mit Bild-für-Bild-Animationen ver- Daher werden sie meist nur dann verwendet, wenn eine der wirklicht wurde. anderen Animationsmöglichkeiten für das gewünschte Resultat nicht ausreichend geeignet ist. Das ist z. B. bei 3D-Bitmap-Ani- mationen der Fall. Die richtige Bildrate Essenziell für Bild-für-Bild-Animationen ist die Arbeit mit Die richtige Bildrate hängt vom Schlüsselbildern. Nachdem Sie einen Inhalt in einem Schlüssel- Projekt ab, bei Spielen z. B. wer- bild platziert haben, werden für eine Bild-für-Bild-Animation in den oft sehr hohe Bildraten ver- den darauffolgenden Bildern der Zeitleiste weitere Schlüsselbil- wendet, meist 40 bis 60, bei der angelegt. Werbebannern oft 24 Bilder pro Sekunde. Bei gewöhnlichen Animationen reichen 31 Bilder Bildrate | Die Bildrate eines Flash-Films ist die Geschwindigkeit pro Sekunde in der Regel aus. der pro Sekunde angezeigten Bilder. Die Bildrate wird in Bildern Da sich bestimmte Bildraten bei pro Sekunde (BpS) gemessen und ist für die Geschwindigkeit, mit Macs und PCs in einigen Flash- der eine Animation abläuft, ein wesentlicher Faktor. Player-Versionen unterschiedlich Die Bildrate können Sie im Eigenschaften-Fenster im Reiter auswirken, ist eine Bildrate von Eigenschaften einstellen. Achten Sie darauf, dass kein Objekt 31 BpS (Bildern pro Sekunde) empfehlenswert. Die Differenz auf der Bühne ausgewählt ist. Die standardmäßig eingestellte von Mac zu PC fällt bei dieser Bildrate von 24 Bildern pro Sekunde ist meist zu niedrig. Grund- Bildrate sehr gering aus. Bei sätzlich empfiehlt es sich als Erstes, die Bildrate zu erhöhen. modernen Flash-Player-Versio- Wenn Sie die Bildrate eines Flash-Films einstellen, wird der nen gibt es aber keinen Unter- Wert für die Bildrate gespeichert, sodass zukünftig erstellte Filme schied mehr. standardmäßig die zuletzt verwendete Bildrate verwenden.

166 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

Ein interessantes Einsatzfeld für Entwickler ist die Entwicklung mit Flash außerhalb des Browsers. Adobe AIR (AIR = »Adobe Integrated Runtime«) ist eine plattform­ unabhängige Laufzeitumgebung , mit der man als Flash­Entwickler Anwendungen für den Desktop sowie für mobile Endgeräte veröffentlichen kann. Seit AIR 3 ist auch eine Veröffentlichung unabhängig von der Verfügbarkeit der AIR­Laufzeit­ umgebung möglich.

21.1 Wie funktioniert AIR?

Mit AIR programmieren Sie wie gewohnt in ActionScript. Es han- delt sich nicht um ein gänzlich anderes System, das Sie mühsam von Grund auf erlernen müssen. AIR zeigt sich aus Programmie- rersicht einfach nur als eine Bibliothek mit zusätzlichen Funkti- onen, die im Flash Player des Browsers sonst nicht unterstützt werden und sich in der Regel auf die Betriebssystemebene be- ziehen. In der Dokumentation von ActionScript 3 werden solche Funktionen durch ein kleines AIR-Symbol gekennzeichnet 1.

F Abbildung 21.1 Dokumentation von Klassen, die für den Zugriff auf das Dateisys- tem dienen und nur über Adobe AIR zugänglich sind a 871 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

Bevor Sie eine Anwendung auf Adobe AIR basierend entwickeln, Adobe AIR-Anwendungen sollten Sie sich zunächst die aktuelle Laufzeitumgebung unter erzeugen http://get.adobe.com/air/?loc=de herunterladen. Um Adobe AIR-Anwendungen zu erzeugen, können Sie z. B. folgende Entwicklungsumge- bungen verwenden: E Flash Builder

E HTML-/AJAX-basierte, z. B. Dreamweaver oder ein ande- rer beliebiger Editor (mithilfe des AIR SDK)

Abbildung 21.2 E »Machinarium«, ein auf iPad und iPhone viel gekauftes Spiel, das mit AIR veröffentlicht wurde

Wenn Sie einen ersten Eindruck erhalten möchten, wie das Look & Feel von Adobe AIR-Anwendungen ist, finden Sie unter www. adobe.com/products/air/showcase.html oder auf http://gaming.ad­ obe.com/showcase einige ausgewählte Beispiele, darunter sowohl Spiele als auch Anwendungen.

Historie von AIR AIR war anfangs nur für Desktop-Anwendungen konzipiert. Erst mit zunehmender Popularität von Apps auf mobilen Geräten setzte Adobe mit AIR 2.6 einen Schwerpunkt auf die mobile Ent- wicklung. Das war vor allem nötig, weil der Flash Player mobil nicht so gut wie native Anwendungen lief und die Menschen lie- ber aus den App Stores die Anwendungen oder Spiele nutzten als über den Browser. Außerdem hatte sich Apple dauerhaft gewei- gert, den Flash Player auf iPhone und iPad zu unterstützen. Das alles hatte Flashs Zukunft infrage gestellt. Viele Blogger sprachen schon davon, dass Flash bald »tot« wäre und durch native Apps ersetzt werden würde. Deshalb setzte Adobe viel Energie in die Weiterentwicklung von AIR. So wurde Ende 2011 verkündet, dass der mobile Flash Player nicht mehr weiterentwi- ckelt und aus dem Google Android App Store entfernt würde, um die Entwicklungskräfte zu bündeln. Das war ein sehr drastischer Schritt für Adobe, der sicherlich auch Ihre berufliche Laufbahn

872 21.1 Wie funktioniert AIR?

beeinflusst hat. Nachdem aber der Grundstein für die mobile Entwicklung mit AIR 2.6 gelegt worden war, verbesserte AIR 3 die Performance und Praxistauglichkeit der Anwendungen deut- lich. So wurde mit AIR 3.0 die Stage 3D-Hardwarebeschleuni- gung eingeführt und mit AIR 3.2 auch auf mobile Geräte übertra- gen, sodass Performance nicht mehr nur Sache der nativen Apps war. Mit den Native Extensions konnten native Funktionen wie z. B. das Benachrichtigungssystem des Geräts angesprochen wer- den. Zusammen mit den anderen Workflow-Verbesserungen von Flash CS6, z. B. Spritesheets, entstand eine fruchtbare Basis für die Flash-Community, sodass es wahrscheinlich in Zukunft sehr viele erfolgreiche mobile Flash-Anwendungen geben wird. Das ist auch der Grund, warum Sie sich mit AIR befassen müs- sen, denn die Zukunft gehört nicht mehr allein den Desktop- Rechnern, sondern auch den Tablets und Smartphones, die alle keinen Flash Player haben werden. Der Markt für mobile Spiele und Applikationen ist sehr dyna- misch und (noch) in der wundervollen Phase, in der man als ein- ziger Entwickler sehr viel bewegen kann. Selbst wenn Sie noch nie für mobile Geräte entwickelt haben und es erst jetzt lernen, ist der Zug noch lange nicht abgefahren. Mit Flash und Action­ Script steht Ihnen eine verhältnismäßig einfach zu erlernende Umgebung zur Verfügung, um schnell und für viele Plattformen gleichzeitig zu entwickeln.

Mit eingebetteter Laufzeitumgebung ohne AIR-Abhängigkeit veröffentlichen Die mit Flash CS6 bzw. AIR 3.0 eingeführte Veröffentlichungsop- tion AIR Captive Runtime (Anwendung mit eingebetteter Lauf- zeitumgebung) ermöglicht das Veröffentlichen ohne Abhängig- keit von der AIR-Laufzeitumgebung. Damit wurde das bis dahin größte Manko beseitigt, denn man kann nicht immer sicherstel- len, dass der Nutzer vorher AIR installiert hat oder dass das In- ternet verfügbar ist zum Downloaden, wenn beispielsweise Ihre Anwendung per CD/DVD verbreitet wird. Selbst wenn die Lauf- zeitumgebung vorhanden ist, könnte sie veraltet sein. Ebenfalls problematisch ist die Abhängigkeit von der Laufzeitumgebung, wenn der Nutzer nicht die Berechtigung hat, etwas auf dem Sys- tem zu installieren. Außerdem ist es für den Nutzer einfach eine weitere Hürde, wenn er Ihre Anwendung installieren muss, was ihn abschrecken könnte.

873 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

a b

c

Abbildung 21.3 E AIR-Anwendung mit eingebette- ter Laufzeitumgebung veröffent- lichen

Um die AIR-Laufzeitumgebung einzubetten, müssen Sie einfach in den Veröffentlichungseinstellungen als Ziel AIR for Desktop wählen 1 und im AIR-Einstellungen-Fenster, das sich durch einen Klick auf das Werkzeug-Symbol 2 öffnet, die Option An- wendung mit eingebetteter Laufzeitumgebung aktivieren 3. Mit Einbettung der Laufzeitumgebung wächst die Dateigröße natürlich etwas, was aber für Desktop-Anwendungen irrelevant ist. Bei mobilen Anwendungen hingegen ist die Dateigröße rele- vant: Die Einbettung vergrößert die App-Installationsdatei um ca. 9 MB, entpackt auf der Festplatte um ca. 20 MB. Versuchen Sie Keine Einzeldatei Ihre Anwendung möglichst klein zu halten, sodass sie von den Bei der Veröffentlichung für den Nutzern am besten auch ohne WLAN heruntergeladen werden Desktop bedeutet die Einbet- kann. tung der Laufzeitumgebung nicht etwa, dass am Ende eine einzige isolierte exe-Datei ent- steht. Es entsteht stattdessen 21.2 Desktop-Anwendungen entwickeln ein Ordner, in dem eine exe- Datei enthalten ist, die von an- Während früher oft kostenpflichtige Software wie ZINC (www. deren Dateien aus demselben multidmedia.com) eingesetzt wurde, um Anwendungen für den Ordner abhängig ist. Sie müssen Desktop zu entwickeln, ist AIR seit Version 3 reif genug, um diese also den Ordner weitergeben und nicht nur die exe-Datei. Am Third-Party-Anwendungen gänzlich abzulösen. Das liegt haupt- besten nutzen Sie ein externes sächlich an der nun eingebetteten Laufzeitumgebung. Installer-Programm, das den Nur falls Ihnen für ein Projekt die umfangreichen nativen Ordner installiert und die exe- Funktionen von AIR trotzdem nicht ausreichen sollten oder falls Datei im Startmenü des Be- Linux unterstützt werden muss, kommt eine Anwendung wie triebssystems verknüpft. ZINC wieder infrage.

874 21.3 Mobile Anwendungen entwickeln

21.3 Mobile Anwendungen entwickeln

Bei mobilen Anwendungen werden Sie in der Regel Ihre App auch mit eingebetteter Laufzeitumgebung veröffentlichen, sodass Systemanforderungen der Nutzer die AIR-Laufzeitumgebung nicht vorher downloaden Während die Systemanforde- rungen von AIR für Desktop- muss. Für iOS ist es gar nicht möglich, eine App mit AIR-Abhän- Anwendungen uninteressant gigkeit zu veröffentlichen. sind, sollten Sie über die Anfor- Wie die Auswahl von AIR für den Desktop, finden Sie die derungen an mobile Geräte in- mobile Option ebenfalls in den Veröffentlichungseinstellungen formiert sein: Ein Android-Gerät von Flash. Damit können Sie die entsprechenden Funktionen muss mindestens Android 2.2 installiert haben und 256 MB von AIR nutzen, wie z. B. die Erkennung von Multi-Touch-Gesten RAM haben, während bei oder die geografische Ortung des Nutzers. Apple-Geräten iOS 4 und iPhone 3GS (oder iPad 1) Mindestanforderungen sind. Die vollständige Liste finden Sie unter www.adobe.com/de/ products/air/tech­specs.html.

F Abbildung 21.4 Mit AIR für mobile Geräte veröffentlichen

Mobile Content Simulator Während in Flash CS5 die für jedes ein- zelne Gerät ein eigenes Profil hatte, wurde diese in Flash CS6 durch den Mobile Content Simulator ersetzt, mit dem Sie Touch- Events und Geräterotationen etc. simulieren können. Auf diese Weise können Sie Ihre Apps schneller testen. Der Simulator öff- net sich automatisch in einem Fenster, wenn in den Veröffentli- chungseinstellungen eine mobile AIR-Version ausgewählt ist. Den praktischen Umgang mit dem Simulator erlernen Sie in Abschnitt 21.4, »›Hello World‹-iPhone-App mit AIR entwickeln«.

Native Extensions Manche geräteabhängige Anwendungsfälle wie z. B. die In-App- Bezahlung oder das iOS Game Center sind (zumindest zum Zeit- punkt der Drucklegung dieses Buches) nicht in AIR enthalten. Mit den Native Extensions hat Adobe aber eine Schnittstelle geschaf-

875 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

fen, die die direkte Ansprache des Geräts über die Einbindung von nativem Code ermöglicht. Im Falle von iOS ist das demnach Objective-C-Code und nicht ActionScript.

Abbildung 21.5 E Von Adobe entwickelte Native Extensions zum Download

Native Extensions werden in ane-Dateien gepackt und können in den Veröffentlichungseinstellungen in Flash eingebunden wer- den. Sie müssen nicht selbst nativ programmieren können, so- lange Sie für Ihren Anwendungsfall eine Native Extension auf der entsprechenden Adobe-Seite finden (www.adobe.com/ devnet/ air/native­extensions­for­air.html), auf der sowohl von Adobe entwickelte als auch von der Community entwickelte Extensions samt Tutorial aufgelistet werden.

Debugging Abschließend sei erwähnt, dass Flash Ihnen Möglichkeiten gibt, Fehlersuche im ActionScript-Code Ihrer mobilen Anwendungen zu betreiben. Solange Sie nur den Simulator verwenden, können Sie natürlich Ihre Anwendung auf bekanntem Wege über die Me- nüleiste in Flash im Debug-Modus starten. Wenn hingegen die Anwendung im Debug-Modus auf dem mobilen Gerät laufen soll und Sie von Ihrem Arbeitsrechner aus

Keine Verbindung? darauf debuggen möchten, dann müssen Sie andere Wege gehen: Damit Sie auf das Gerät per USB Über Debuggen • Debuggen • auf Gerät per USB können Sie zugreifen können, muss es ver- bequem auf Ihr Gerät zugreifen, was aber nur mit Android-Gerä- bunden sein und im Betriebs- ten möglich ist. system als solches erkannt wer- Adobe arbeitet bereits an einer USB-Debugging-Möglichkeit den. Eine Erkennung als reines für iOS, in dem Ihnen momentan nur das kompliziertere Remote- USB-Massenspeichergerät reicht Debugging zur Verfügung steht, erreichbar über Debuggen • nicht unbedingt aus. Dazu ist gegebenenfalls die Installation Remote-Debug-Sitzung beginnen • ActionScript 3.0. In den des aktuellen Herstellertreibers Veröffentlichungseinstellungen von AIR muss dafür die Netz- nötig. Außerdem muss auf dem werkschnittstelle für Remote-Debugging aktiv sein. Dann kom- Gerät USB-Debugging aktiviert munizieren Ihr Arbeitsrechner und Ihr Gerät über das Netzwerk sein (was an sich nichts mit miteinander, Sie müssen nur leider die üblichen Netzwerkpro- Flash zu tun hat). bleme vorher beseitigen.

876 21.4 »Hello World«-iPhone-App mit AIR entwickeln

21.4 »Hello World«-iPhone-App mit AIR entwickeln Mit AIR ist es möglich, Applikationen direkt für das iPhone und für das iPad zu entwickeln. Im Folgenden werden Sie sich Schritt für Schritt von einem ersten »HelloWorld« im mobilen Simulator bis zu einer App herantasten, die Sie direkt auf Ihrem iPhone aus- probieren können. Für Letzteres müssen Sie sich bei Apple als iOS-Entwickler für das iOS Developer Program registrieren. Die Mitgliedschaft kos- tet 99 Dollar bzw. 79 Euro pro Jahr und kann unter http://devel­ oper.apple.com/programs/ios angemeldet werden.

Schritt für Schritt: »HelloWorld« mit dem mobilen Simulator

1 Flash-Dokument anlegen Erzeugen Sie zunächst ein neues Dokument, indem Sie das Menü 21_AIR\HelloWorld\ Datei • Neu auswählen, und stellen Sie den Typ AIR for iOS ein. HelloMobileGoodness.fla Die Auflösung sollten Sie entsprechend Ihrem Gerät einstellen. Mögliche Auflösungen sind:  640 × 960 für iPhones mit Retina-Display (Standardeinstellung)  320 × 480 für ältere iPhones  1.024 × 768 für das iPad 1 und 2  2.048 × 1.536 für das iPad 3

F Abbildung 21.6 Neues AIR iOS-Flash-Projekt erzeugen

877 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

In diesem Workshop werden wir unsere Applikation für das iPhone 4 auslegen, der Vorgang lässt sich jedoch problemlos auch auf andere Modelle und das iPad übertragen. Nach dem Anlegen sieht das Dokument genauso aus wie ein normales. Im Hintergrund sind jedoch ein paar Einstellungen geändert und eine XML-Einstellungsdatei angelegt worden.

2 HelloWorld-MovieClip hinzufügen Erzeugen Sie nun ein MovieClip mit einer beliebigen Grafik, und geben Sie diesem einen Instanznamen. In unserem Beispiel hat der Clip den Instanznamen »_mcHello«.

Was ist Beschleunigung? Im alltäglichen Sprachgebrauch versteht man unter Beschleuni- gung eine Kraft, die auf einen G Abbildung 21.7 Körper wirkt, wenn dieser seine Der HelloWorld-MovieClip mit einem Textfeld und Geschwindigkeit ändert. Bleibt dem Instanznamen »_mcHello« die Geschwindigkeit konstant, gibt es auch keine Beschleuni- 3 Beschleunigungssensor einbauen gung. Der Beschleunigungssen- Diesen MovieClip möchten wir nun mithilfe des Beschleunigungs- sor in mobilen Geräten bezieht sensors steuern. Wenn Sie Ihr iPhone neigen, soll der MovieClip seinen Namen jedoch von der Erdbeschleunigung, also der in diese Richtung heruntergleiten. Je stärker Sie es neigen, desto Schwerkraft, die uns permanent schneller soll das passieren. Dieses Verhalten ist sehr einfach mit am Boden hält, und misst daher den AIR-Bibliotheken zu realisieren. Generell ist das Vorgehen nie »keine Beschleunigung«. genauso, wie Sie es für Maus oder Tastatur kennengelernt haben: Der Sensor liefert immer drei Sie benutzen das Event-Modell von Flash. Werte zwischen −1 und 1, die angeben, in welche Richtung Der Unterschied ist hierbei, dass diese Ereignisse nicht von der die Erdbeschleunigung wirkt. Bühne oder einem MovieClip dispatchet werden, sondern von Legen Sie das iPhone flach auf der Klasse Accelerometer im flash.sensors-Paket. Sie erzeu- den Tisch, wirkt diese komplett gen daher zunächst eine Instanz von Accelerometer und regist- in Richtung der positiven z- rieren den Listener an dieser. Achse, und Sie erhalten den Vektor (0, 0, 1) als Messwert des Beschleunigungssensors. import flash.sensors.Accelerometer; Die Daten sind daher synonym import flash.events.AccelerometerEvent; mit der Neigung, und man könnte den Sensor auch als var acc:Accelerometer = new Accelerometer(); Lage- oder Neigungssensor be- acc.addEventListener(AccelerometerEvent.UPDATE, zeichnen. ­orientationChanged);

878 21.4 »Hello World«-iPhone-App mit AIR entwickeln

function orientationChanged(ae:AccelerometerEvent): void{ //... }

Die Funktion orientationChanged wird nun immer dann auf- gerufen, wenn sich die Neigung des Geräts ändert. Diese Werte möchten wir auslesen und speichern. Erweitern Sie den Quell- code daher um zwei Variablen, die die X- und die Y-Beschleuni- gung speichern. var accX:Number = 0; var accY:Number = 0; function orientationChanged(ae:AccelerometerEvent): void{ accX = ae. accelerationX; accY = ae. accelerationY; }

Als Letztes müssen wir die Lage unseres MovieClips ändern, um die Neigung sichtbar zu machen. Dazu ändern wir in jedem Frame die Position abhängig von den gespeicherten Beschleuni- gungswerten. Fügen Sie daher folgenden Quellcode hinzu: import flash.events.Event; addEventListener(Event.ENTER_FRAME, moveClip); function moveClip(e:Event):void{ _mcHello.x -= accX * 10; _mcHello.y += accY * 10; }

Die Werte aus dem Beschleunigungssensor sind immer Werte zwischen −1 und 1 (siehe Kasten »Was ist Beschleunigung?«), da- her werden sie für die Positionsänderung mit 10 multipliziert, um eine schnellere Bewegung zu erreichen.

4 Applikation im Simulator testen Das Testen im Simulator erfordert keine weiteren Einstellungen und funktioniert, wie Sie es gewohnt sind. Drücken Sie (Strg)/ (°) + (¢), um die Anwendung zu starten. Sie sehen nun Ihr Pro- gramm. Zusätzlich startet nun aber auch ein kleines Simulator- Fenster, in dem Sie u. a. auch den Beschleunigungssensor simu- lieren können.

879 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

d

a

b

c

G Abbildung 21.8 Der Mobile Content Simulator von Flash. Hier können Sie die Neigung und den Ort des Geräts simulieren sowie unterschiedliche (Finger-)Gesten ausführen.

Sie können mit der Maus das virtuelle Smartphone 1 nun drehen und sehen, wie sich der Schriftzug unserer HelloWorld-Applika- tion bewegt. Der Simulator zeigt Ihnen außerdem die genauen Werte des Beschleunigungssensors an 2. Diese werden in g (Erdbeschleuni- gung) gemessen. Die Neigung kann auch präzise über die Regler 3 eingestellt werden. Die Taste 4 richtet das Smartphone wie- der in die Ausgangsposition aus.

Vorbereitung zum Testen auf dem Gerät

Keine Abbildungen des Bevor Sie mit der Entwicklung einer Anwendung für das iOS be- iOS Dev Centers ginnen, müssen Sie sich bei Apple als iOS-Entwickler für das iOS Leider dürfen wir Ihnen in diesem Developer Program registrieren (http://developer.apple.com/pro­ Abschnitt aus urheberrechtlichen grams/ios). Gründen keine Screenshots aus dem iOS Dev Center zeigen und Nachdem Sie sich registriert haben, müssen Sie eine Reihe von müssen uns mit den entsprechen- Schritten absolvieren, bevor Ihre Applikation auf Ihrem iPhone den Beschreibungen begnügen. oder iPad laufen kann. Abbildung 21.9 zeigt das Zusammenspiel aller Teile, die Sie im Folgenden zusammenfügen werden.

880 21.4 »Hello World«-iPhone-App mit AIR entwickeln

Entwickler- Applikations- Geräte-ID zertifikat ID (UDID)

Certificate ID 2

Provisioning- Umwandeln in P1 Profile F Abbildung 21.9 Certificate Schematischer Aufbau aller Zertifizierungsschritte, die für das P12 Testen auf dem iPhone notwendig Anwendung sind

Zertifikat zur Signierung erzeugen | Der erste Schritt ist die Zer- Mac benutzen, falls verfügbar tifikaterstellung. Der Prozess ist teilweise nicht ganz einfach. Da Sollten Sie sowohl einen Win- es auch hier deutliche Unterschiede bei der Erzeugung zwischen dows-PC als auch einen Mac be- sitzen, empfehlen wir Ihnen, den Windows und Mac OS X gibt, werden alle notwendigen Schritte Zertifizierungsprozess unter Mac im Folgenden für beide Plattformen getrennt erläutert. OS X durchzuführen. Dabei gibt es deutlich weniger Schritte, und Schritt für Schritt: der Prozess ist weniger fehleran- fällig. Zertifizierungsprozess unter Mac OS X durchführen

Im folgenden Workshop wird erläutert, wie Sie Ihr Zertifikat zum Signieren von eigenen iOS-Anwendungen unter Mac OS X erzeu- gen können.

F Abbildung 21.10 Zertifikat anfordern

881 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

1 Zertifikat in der Schlüsselbundverwaltung erzeugen Unter Mac OS X fordern Sie über die Schlüsselbundverwaltung, die Sie unter den Dienstprogrammen finden, über das Menü Schlüsselbundverwaltung • Zertifikatsassistent • Zertifikat einer Zertifizierungsinstanz anfordern ein neues Zertifikat an. Geben Sie Ihre E-Mail-Adresse und Ihren Namen ein, und aktivieren Sie das Optionsfeld Auf der Festplatte sichern. Klicken Sie auf Fortfahren, und speichern Sie das Zertifikat auf dem Schreibtisch ab.

2 Zertifikat aus dem Apple iOS Dev Center hochladen Loggen Sie sich mit Ihrem Entwicklerzugang im iOS Dev Center ein. Im Bereich Provisioning Portal • Certificates können Sie die Datei hochladen.

3 Signiertes Zertifikat herunterladen Nach kurzer Wartezeit steht Ihnen dann Ihr Zertifikat im Provi- sioning Portal im Bereich Certificates zur Verfügung. Klicken Sie neben dem Zertifikat auf Download, um das Zertifikat her- unterzuladen.

4 Zertifikat in die Schlüsselbundverwaltung importieren Wählen Sie das signierte Zertifikat aus, und ziehen Sie es per Drag & Drop in die Schlüsselbundverwaltung.

Abbildung 21.11 E Das Zertifikat wurde importiert.

5 Zertifikat als .p12-Datei exportieren Selektieren Sie in der Schlüsselbundverwaltung das signierte Zer- tifikat, und wählen Sie dann aus dem Menü den Menüpunkt Ab- lage • Objekte exportieren aus. Sie werden daraufhin aufgefor- dert, ein Kennwort einzugeben. Merken Sie sich dieses gut. Sie benötigen es später noch, wenn Sie Ihre Applikation aus Flash heraus veröffentlichen. Speichern Sie das Zertifikat dann als .p12- Datei ab. Dieses wird dann später in Flash zur Authentifizierung

882 21.4 »Hello World«-iPhone-App mit AIR entwickeln

benötigt. Damit ist der Zertifizierungsprozess unter Mac OS X ab- geschlossen.

Schritt für Schritt: Zertifizierungsprozess unter Windows durchführen

Im folgenden Workshop wird erläutert, wie Sie Ihr Zertifikat zum Signieren von eigenen iOS-Anwendungen unter Windows erzeu- gen können. Vorweg sei erwähnt, dass der Zertifizierungsprozess unter Windows etwas umständlicher ist als unter Mac OS X.

1 Visual C++ 2008 Redistributables und OpenSSL ­herunterladen und installieren Laden Sie unter www.slproweb.com/products/Win32OpenSSL. html zunächst die Visual C++ 2008 Redistributables herunter, und installieren Sie sie auf Ihrem System. Laden Sie anschließend auf derselben Seite die für Ihr System geeignete Version von OpenSSL herunter, und installieren Sie sie. Sollten Sie eine 64-Bit- Version von Windows benutzen, empfehlen wir Ihnen, dennoch die 32-Bit-Version zu installieren. Unter Windows 7 (64 Bit) kann es bei der Erzeugung des Zertifikats mit der 64-Bit-Version von OpenSLL zu Fehlern kommen. Starten Sie nach den Installationen Ihren Rechner neu.

2 Privaten Schlüssel mit OpenSSL erzeugen Öffnen Sie die Eingabeaufforderung unter Windows, z. B. indem Sie den Menüpunkt Start • Alle Programme • Zubehör • Ein- gabeaufforderung öffnen. Wechseln Sie in das bin-Verzeichnis von OpenSSL, z. B. über cd \openssl\bin. Geben Sie folgenden Befehl ein, um einen privaten Schlüssel zu erzeugen: openssl genrsa -out mykey.key 2048

Es kann an diesem Punkt vorkommen, dass eine Warnung oder ein Fehlerhinweis erscheint. Zunächst sollten Sie dann noch ein- mal die Syntax des Befehls überprüfen. Abweichend von Adobes Dokumentation können Sie versuchen, trotz Fehler- oder Warn- hinweisen an dieser Stelle, den Prozess fortzusetzen. Sie sollten allerdings unbedingt überprüfen, ob der Schlüssel erzeugt wurde und die Datei größer als 0 Bytes ist. Ob der Schlüssel erzeugt wurde, können Sie leicht überprüfen. Geben Sie dir ein, und schauen Sie, ob eine mykey.key-Datei erzeugt wurde.

883 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

G Abbildung 21.12 Der private Schlüssel wurde erzeugt.

3 Zertifikat erzeugen Geben Sie in der Eingabeaufforderung den folgenden Befehl ein. Fügen Sie dabei Ihre E-Mail-Adresse, Ihren Namen und gegebe- nenfalls den Ländercode Ihres Landes (DE) an den entsprechen- den Stellen ein:

openssl req -new -key mykey.key -out Certificate SigningRequest.certSigningRequest -subj "/[email protected], CN=John Doe, C=US"

Überprüfen Sie, ob im bin-Verzeichnis von OpenSSL eine Datei mit dem Namen »CERTSIGNINGREQUEST-Datei (.certSigningRe- quest)« erzeugt wurde.

4 Zertifikat aus dem Apple iOS Dev Center hochladen Loggen Sie sich mit Ihrem Entwicklerzugang im iOS Dev Center ein. Im Bereich Provisioning Portal • Certificates können Sie die Datei hochladen. Klicken Sie dazu auf Request Certificate.

5 Signiertes Zertifikat herunterladen Nach kurzer Wartezeit steht Ihnen dann Ihr Zertifikat im Provi- sioning Portal im Bereich Certificates zur Verfügung. Klicken Sie neben dem Zertifikat auf Download, um das Zertifikat he- runterzuladen. Sie erhalten eine .cer-Datei »developer_identity. cer«, die im nächsten Schritt noch in eine .p12-Datei umgewan- delt werden muss.

884 21.4 »Hello World«-iPhone-App mit AIR entwickeln

6 Umwandlung der developer_identity.cer in iphone_dev.p12 Speichern Sie die .cer-Datei zunächst in das bin-Verzeichnis von OpenSSL. Führen Sie dann im bin-Verzeichnis folgenden Befehl aus: openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM

Die Dateinamen müssen Sie gegebenenfalls entsprechend anpas- sen. Sollten Sie keine Fehlermeldung erhalten, ist alles in Ord- nung. Führen Sie dann folgenden Befehl aus: openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12

Geben Sie Ihr Passwort, das Sie bei der Erzeugung des Zertifikats angegeben haben, ein.

7 Fertig! Sollten Sie keine Fehlermeldung erhalten, ist der Prozess damit ab- geschlossen. Im bin-Verzeichnis von OpenSSL sollte sich die Datei »iphone_dev.p12« befinden, die Sie später in Flash zur Signierung Ihrer Anwendungen nutzen können. Erfahrungsgemäß funktio- niert der vorher genannte Prozess nicht beim ersten Mal. Sollten Sie Probleme bei der Erstellung des Zertifikats haben, können Sie eventuell versuchen, das Zertifikat über die Software »BirdKey« von SBA zu erstellen. Wir haben diese Software nicht verwendet, allerdings scheinen damit einige User mehr Erfolg zu haben.

F Abbildung 21.13 Das Zertifikat wurde erzeugt.

885 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

Gerät einrichten | Um eine Anwendung auf einem Testgerät in- stallieren zu können, müssen Sie das jeweilige Gerät zunächst im iOS Dev Center registrieren. Loggen Sie sich dazu in das iOS Dev Center ein, wechseln Sie in den Bereich iOS Provisioning Por- tal, und klicken Sie im linken Menü auf Devices. Klicken Sie dann auf Add Devices, um ein neues Gerät zu registrieren. Geben Sie im Feld Device Name den Bezeichner Ihres Geräts ein. Sie finden den Bezeichner Ihres iPhones, wenn Sie es mit iTunes verbinden. Wählen Sie Ihr Gerät in iTunes auf der linken Seite aus. Im Bereich Übersicht wird Ihnen der Name angezeigt. Klicken Sie auf das Feld Seriennummer, um sich die Device-ID anzeigen zu lassen (siehe Abbildung 21.14).

Abbildung 21.14 E Geräteinformationen in iTunes 10

Sie können dann via (Strg)/(°)+(C) die Device-ID in die Zwische- nablage kopieren und im iOS Dev Center in das entsprechende Feld mit (Strg)/(°)+(V) einfügen. Klicken Sie auf Submit, nach- dem Sie beide Felder ausgefüllt haben, um das Gerät zu regist- rieren.

App-ID | Für jede Anwendung, die Sie erstellen möchten, be- nötigen Sie zunächst eine App-ID. Diese müssen Sie später beim Veröffentlichen in Flash angeben. Loggen Sie sich dazu zunächst in das iOS Dev Center ein, und wechseln Sie dann in den Bereich iOS Provisioning Portal. Klicken Sie dort im linken Menü auf App-ID, um eine neue App-ID anzulegen. Eine App-ID besteht immer aus Ihrer Team-ID (App ID Pre- fix), gefolgt von einem Bundle Identifier (App ID Suffix), den Sie beliebig festlegen können. Gerade am Anfang werden Sie sehr viele kleine Testapplikationen erzeugen, und um nicht jedes Mal aufs Neue eine App-ID (und zugehöriges Provisioning-Profil) erzeugen zu müssen, können Sie daher auch * als Ihren Bundle Identifier verwenden. Das ist ein Platzhalter für »beliebig«. Wenn Sie die Textfelder in dem Formular ausgefüllt haben, klicken Sie anschließend auf Submit. Ihre App-ID könnte nun z. B. »NKSMJ45FU9.*« lauten.

886 21.4 »Hello World«-iPhone-App mit AIR entwickeln

Provisioning-Profil | Damit Sie Ihre Anwendung kompilieren und auf Ihrem Gerät testen können, benötigen Sie ein sogenann- tes Provisioning­Profil. Das Profil wird beim Kompilieren der An- wendung von Flash benötigt. Sie müssen es zusätzlich auf Ihrem iPhone installieren, um eigene Anwendungen auf das Gerät ins- tallieren zu können. Loggen Sie sich dazu zunächst in das iOS Dev Center ein, und wechseln Sie in den Bereich iOS Provisioning Portal. Klicken Sie dann links auf Provisioning und anschließend auf die Schalt- fläche New Profile. Füllen Sie die Formularfelder aus. Unter App-ID wählen Sie die zuvor erstellte App-ID aus. Klicken Sie dann auf Submit, um das Profil zu erstellen. Nach kurzer Warte- zeit sollte Ihr Provisioning-Profil im Bereich Provisioning zum Download bereitstehen. Laden Sie es daraufhin herunter. Um das Provisioning-Profil auf Ihrem Gerät zu installieren, Distribution Provisioning Profile gehen Sie wie folgt vor: Öffnen Sie iTunes, und verbinden Sie Ihr Sollten Sie eine Anwendung bei Gerät damit. Klicken Sie im Menü auf Datei • Datei zur Media- Apple einreichen, um diese im App Store verfügbar zu machen, thek hinzufügen, und wählen Sie Ihr Provisioning-Profil aus. benötigen Sie dafür ein sogenann- Um zu überprüfen, ob das Provisioning-Profil in Ihre Mediathek tes Distribution Provisioning Pro­ aufgenommen wurde, können Sie den Vorgang wiederholen. Es file, das Sie auf dieselbe Art und sollte dann ein Hinweis erscheinen, dass sich das Profil bereits in Weise im iOS Dev Center unter der Mediathek befindet, und Sie werden gefragt, ob es ersetzt Provisioning unter dem Reiter Distribution erstellen können. werden soll. Nachdem das Profil zu Ihrer Mediathek hinzugefügt wurde, müssen Sie das iPhone mit iTunes synchronisieren, damit das Profil auf das iPhone übertragen werden kann. Im iPhone können Sie unter Einstellungen • Allgemein • Profile sehen, ob das Profil auf dem Gerät installiert wurde.

F Abbildung 21.15 Das Provisioning-Profil »Sample- profile« ist auf dem iPhone installiert.

887 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

Veröffentlichen für das iPhone In diesem Abschnitt möchten wir unsere HelloWorld-Anwen- dung aus der Schritt-für-Schritt-Anleitung für das iPhone veröf- fentlichen und direkt auf dem Gerät testen. Damit Sie wissen, welche Einstellungen Sie beim Kompilieren vornehmen können, öffnen Sie zunächst Ihre FLA-Datei. Öffnen Sie dann über das Menü Datei • Air 3.2 for iOS Einstellungen.

Allgemein | Unter dem Reiter Allgemein (siehe Abbildung 21.16) finden Sie folgende Einstellungen:  Ausgabedatei: Die Ausgabedatei mit der Dateierweiterung IPA ist die Datei, die Sie zum Testen auf Ihr iOS-Gerät und später auch an Apple übertragen.  App-Name: Der Name der Anwendung, wie sie daraufhin auch auf Ihrem iOS-Gerät erscheint.  Version: Dies ist die Versionsnummer der Anwendung. Wenn Sie später eine Anwendung in den App Store stellen, sollte diese Versionsnummer mit der Versionsnummer im App Store übereinstimmen.  Seitenverhältnis: Hier können Sie festlegen, ob Ihre Anwen- dung standardmäßig im Hoch- oder im Querformat gestartet werden soll.

Abbildung 21.16 E Der Reiter Allgemein im Überblick

888 21.4 »Hello World«-iPhone-App mit AIR entwickeln

 Vollbild: Im Normalfall sollten Sie diese Option aktivieren. Ist sie deaktiviert, nutzt die Anwendung nicht die volle Bild- schirmgröße, und grafische Elemente w erden skaliert (siehe Abbildung 21.17).

F Abbildung 21.17 Links deaktiviertes, rechts akti- viertes Vollbild der Applikation »Tiny Memory«

 Automatische Ausrichtung: In der Regel sollten Sie diese Option deaktivieren. Ist die Option aktiviert, wird Ihre Anwen- dung je nach Ausrichtung des Geräts im Hoch- oder Querfor- mat dargestellt. Beachten Sie dabei, dass Sie die Positionierung und Skalierung aller UI-Elemente dazu selbst innerhalb der Anwendung vornehmen müssen (siehe dazu auch Abbildung 21.18).

F H Abbildung 21.18 Links: Hochformat; rechts: die unveränderte Version im Querformat der Applikation »Tiny Memory«

889 Kapitel 21 AIR: Für mobile Geräte und den Desktop veröffentlichen

 Rendermodus: Belassen Sie die Einstellung auf Automatisch. Die Einstellung CPU sorgt dafür, dass Berechnungen an die CPU des Geräts übergeben werden. Sollten Sie eine grafiklas- tige Anwendung wie z. B. ein Spiel entwickeln, können Sie mit der Einstellung GPU die Berechnungen an den Grafikprozessor des Geräts delegieren. Wenn Sie eine 3D-Engine (Stage 3D, siehe Kapitel 23, »Ein Blick über den Tellerrand«) benutzen, stellen Sie den Modus auf Direkt.  Gerät: Wählen Sie hier das Gerät aus, für das Sie die Anwen- dung entwickeln möchten.  Auflösung: Hierbei haben Sie zwei Modi zur Auswahl: stan- dard und hoch. Im hoch-Modus entspricht jedes Pixel, das Sie aus der Applikation ansprechen, direkt einem Pixel eines hochauflösenden Bildschirms (Retina-Display), während im Standardmodus das Zeichnen eines Pixels das Zeichnen eines 2 × 2-Pixelblocks bewirkt. Die Applikation wird somit auf die doppelte Größe skaliert. Verwenden Sie den Standardmodus nur dann, wenn Sie sich nicht selbst um die verschiedenen Displaytypen und Auflösungen der Geräte kümmern möchten. Das ist zwar einfacher, grafisch aber meist nicht schön.  Einbezogene Dateien: In diesem Bereich können Sie Dateien hinzufügen, die mit der Anwendung ausgeliefert werden sol- len. Standardmäßig finden Sie hier eine SWF-Datei und eine XML-Datei, die Metainformationen wie die Versionsnummer enthält. Manuell hinzufügen sollten Sie eine 640 × 960 Pixel große Datei [email protected] (für iPhones mit Retina-Display) und eine 320 × 480 Pixel große Default.png (für ältere iPhones), die jeweils beim Starten der Anwendung angezeigt wird. Sie sollten diese Dateien im Root-Verzeichnis Ihrer Anwendung und nicht in einem Unterverzeichnis anlegen.

Bereitstellung | Unter dem Reiter Bereitstellung stehen Ihnen die in Abbildung 21.19 dargestellten Einstellungen zur Verfügung. Notwendige Komponenten  Zertifikat: Wählen Sie hier das p12-Zertifikat aus, das Sie zu- installieren vor erstellt haben. Achten Sie darauf, dass Sie für den jewei- Bei der Installation von Flash CS6 ligen Zweck das richtige Zertifikat auswählen. Zum Testen der gibt es die optionale Komponente Anwendung auf einem eigenen Gerät benötigen Sie ein ande- »AIR for Apple iOS Support«. Diese benötigen Sie, um für das res Zertifikat als das zur Bereitstellung für den App Store. iPhone zu veröffentlichen. Sollten  Kennwort: Geben Sie hier das Kennwort ein, das Sie bei der Sie eine Fehlermeldung erhalten, Zertifikatserstellung verwendet haben. starten Sie das Flash-Installations-  Provisioning-Profil: Wählen Sie das erstellte Provisioning- programm, und installieren Sie Profil aus, und achten Sie dabei, wie auch beim Zertifikat diese Komponente nachträglich. selbst, auf die richtige Version.

890 21.4 »Hello World«-iPhone-App mit AIR entwickeln

 App-ID: Tragen Sie hier die App-ID ein, die Sie zuvor im iOS Dev Center angelegt haben.  iPhone-Bereitstellungstyp – Schnellveröffentlichung zum Gerätetesten: Verwenden Sie diese Einstellung, wenn Sie die Anwendung zum Testen auf Ihrem iOS-Gerät verwenden möchten.  iPhone-Bereitstellungstyp – Schnellveröffentlichung zum Geräte-Debugging: Wählen Sie diese Einstellung, wenn Sie die Anwendung auf Ihrem iOS-Gerät zum Testen installieren und zudem den Flash Debugger nutzen möchten, um bei- spielsweise trace-Ausgaben zu kontrollieren. Sie können hier zusätzlich eine Netzwerkschnittstelle eingeben. Ihre Applika- tion verbindet sich dann automatisch mit dieser Adresse, um die Debugging-Session zu starten.  iPhone-Bereitstellungstyp – Bereitstellung – Ad hoc: Möch- ten Sie Ihre Anwendung anderen für Beta-Testzwecke bereit- stellen, können Sie diese Option wählen, um bis zu 100 Be- nutzern Ihre Anwendung zu Testzwecken bereitzustellen. Sie müssen die Benutzer zusätzlich im iOS Dev Center registrieren.  iPhone-Bereitstellungstyp – Bereitstellung – Apple App Store: Nachdem Sie Ihre Anwendung getestet haben, wählen Sie diese Option, um die Anwendung für die Bereitstellung in den App Store zu kompilieren.

F Abbildung 21.19 Der Reiter Bereitstellung im Überblick

891 Index

Index

^ 366 A addEventListener 527, 377, 390, - 360 417 -- 361 Addieren 557 a (HTML-Tag) 656, 684 ! 365 Addition 360 Abbremseffekt 247 != 362 Admin 701 Abdunkeln 556 !== 362 Adobe AIR 911 Abmessung des Weichzeichners .. 761 578 620 @ 760 Adobe Exchange 50, 523 Abprallen 832 * 360, 678 Adobe Flash Catalyst 931 abs 446 *= 361 Adobe Flex 929 Absatztext 252 / 360 Adobe LiveCycle Data Services Abschluss 75 /= 361 930 Abschrägen 558 & 366, 667 Adobe Media Encoder 611 Abspielgeschwindigkeit 166 && 365 Adobe Media Player 613 Abspielrichtung 154 % 360 578 Abspielzeit 635 + 360 Adobe Sound Document 575 Abstandsberechnung 432 ++ 361 ADPCM 576 Abtastrate 574 < 362 Aktionen 337 Abwärtskompatibilität 295 << 367 Aktualisieren 577 acos 446 <= 362 Aktualisierungen 51 ActionScript 335 == 362 album 588 Datentypen 348 === 362 align 675 Editoren 466 > 362 Alle einblenden 343 Ereignis-Listener 390 >= 362 allowFullScreen 631 Ereignisprozeduren 390 >> 367 alpha 379, 414 Ereignisse 389 | 366 Alpha 69, 557 Format 343, 344 || 365 Als Video für Mobilgeräte in SWF Funktionen 373 ~ 366 zusammengefasst importieren Loader 396 1 (Option) 358 623 Modulo 360 2 (Option) 358 Amplitude 574 Operatoren 360 3D-Animationen 927 Analoge Uhr 491 Schleifen 368 3D-Bewegung 437 anchorX 510 Typisierung 350 3D-Drehungswerkzeug 106 anchorY 510 Variablen 346 Fluchtpunkt und Perspektive Ändern der Videogröße 614 Versionen 337 108, 109 An Hilfslinie ausrichten 121 Zeitleistensteuerung 376 3D-Engines 927 Animation 153, 413 ActionScript 1 338 3D-Flip 455 3D-Bewegung 217 ActionScript 2 338 3D-Pinsel 80, 86 Abspielrichtung 154 ActionScript 3 339, 931 3DS Max 928 beenden 427 ActionScript 3.0-Klasse 470 3D-Versetzungswerkzeug 107 Beispiel Animation anlegen 167 ActionScript-Editor 339 8 (Option) 358 Beschleunigung 247 ActionScript-Entwicklungs­ 9-teiliges Segmentraster 115, Bildbezeichner 164 umgebungen 911 539, 540 Bild-für-Bild 166 Activeden 524 16 (Option) 357, 358 Geschwindigkeit ändern 174 addChild 384 44,1 kHz 573 Inverse Kinematik 237 addChildAt 384 $_FILES 799 Klassische Tweens 204 addController 691 $_POST 865 kopieren 203 ADDED_TO_STAGE 396 loopen 427

939 Index

Posenanimation 247 ARGB 567 Aufhellen 556 Sequenzen 452 Argumente 373 Auflösung 573 Skalierung 216 Arkuskosinus 446 Aufzählungszeichen 657 Steuerungspunkt 248 Arkussinus 446 Ausblenden 582 Szenen 163 Arkustangens 446 Ausführungszeit 811 Timing 209 Array 349 Ausgabe-Fenster 346 umkehren 451 assoziativ 355 Ausgabeformat 613 Zeitleiste 153 Feldwerte 354 Ausgabegröße ändern 617 Zwiebelschaleneffekt 176 indiziert 354 Ausrichten an Pixeln 76 Ankathete 433 Länge 355 Ausrichten TLF-Text 286 Ankerpunkt mehrdimensional 355 Ausrichtung von Text 260 entfernen 101 Methoden 357 Auswählbar 649 umwandeln 98 sortieren 357 Auswahlbereich ausblenden 343 Ansicht sortieren (mehrdimensional, Auswählen An Fenster anpassen 56 assoziativ) 358 ähnliche Farben 102 Vergrößerung 56 typisiert 359 Auswahlwerkzeug 99 zentrieren 57 Verkettung 356 Auszeichnungen 258 Anti-Aliasing 266 Array.CASEINSENSITIVE 358 Fettdruck 259 antiAliasType 671 Array.DESCENDING 357, 358 Kapitälchen 259 AntiAliasType.ADVANCED 671 Array.DESCENDING. 779 Kursiv 259 AntiAliasType.NORMAL 671 Array.NUMERIC 357, 358, 779 autoAlpha 458 Anwendungsbereiche 28 Array.RETURNINDEXEDARRAY Auto-Format 343, 344 Aktuelle Meldungen 29 358 AUTO_INCREMENT 736 Animationen 28 Arrays 354 Automatischer Import 478 Benutzeroberflächen 29 artist 588 Automatischer Klassen-Import E-Learning 33 AS3CoreLib 862 913 Flash gegen HTML 5 32 ASC 744 Automatischer Paket-Import 913 Präsentationen 29 .asf 611 Automatisch unterschneiden 263 Spiele 30, 32 asin 446 autoSize 671 Video-Anwendungen 32 as-Operator 353 .avc 611 Anzeigeklassen 378 ASP 697 .avi 611 Anzeigeliste 378 Assets 539 AVM 339 Reihenfolge 384 Assoziative Arrays 355 AVM1Movie 382 Reihenfolge ändern 386 Asteroids 839 Away 3D 928 Anzeigeobjekt 378, 413 atan 446 Axialis Professional Screensaver aus Speicher entfernen 385 atan2 443, 446 Producer 934 Eigenschaften 379, 380 ATOM 766 entfernen 383 Attribute 736, 760 Ereignisse 394 AU 575 graphics 503 Audacity 578 B hinzufügen 383 Audio-CD 573 Sichtbarkeit 386 Audio-Editor 578 b (HTML-Tag) 656 Anzeigeobjektcontainer 378 Audio einschließen 625 Back 453 Apache 698 Audio-Ereignis 575 background 671 API 338 Audio-Player 601 backgroundAlpha 686 appendChild 774 Audio-Signal 573 backgroundColor 671, 686 appendText 679 Audio-Spur 622, 632 Backslashes 756 Arbeitsfläche 55 Audio-Stream 575 entfernen 756 Arbeitsumgebung 45 Audio Video Interleaved 611 Bandbreiten-Profiler 323 laden 62 Auf (Zustand) 580 Bild-für-Bild 324 speichern 62 Auf Ebenen verteilen 273 Download-Einstellungen 324

940 Index

Optimierung des Ladeverhaltens drehen 186 Bild-für-Bild-Animation 166 324 eigenen Pfad erstellen 189 Anwendungsbereiche 166 Streaming-Grafik 324 erstellen 187 Beispiel 167 Barrierefreiheit 330 Umformen 185 Bildrate 166 Base64Encoder 862 Bewegungsrichtungen 422 Bildrate festlegen 167 Basisklasse 498, 491, 382, 387 Bewegungs-Tween 178, 181 in MovieClip verschachteln 172 Batch-Verfahren 614 Animation an Pfad erstellen 187 Bildlauf 681 Baumpinsel 81, 91 Beispiel 181 Bildrate 166 BCC 729 Eigenschaften 184 richtige Bildrate 166 Bearbeitbar 649 Eigenschaften animieren 179 Timing 209 Bearbeitbarer Text 550 erstellen 179, 182 Bildschirmleseprogramme 330 beginFill 512 Geschwindigkeit 186 Bildschirmschoner 934 beginGradientFill 519 Optionen 183 Binär 365 Begrenzungsrahmen 131, 823 Pfad 184 Binärsystem 365 Begrüßungsbildschirm 45 Pfad drehen 186 BINARY 708 Benutzerdefiniert 547, 582 Pfad Umformung 185 Bindungswerkzeug 248 Benutzerdefinierte Preloader- Tweenlänge ändern 187 Bitmap 381 Schleife 649 verlängern 182 Beispiel in Vektoren umwandeln Benutzerdefiniertes Anti-Aliasing Bewegungs-Tween Eigenschaften 221 272 Beschleunigung 183 Dateigröße 220 Benutzeroberfläche 523 Drehung 183 Eigenschaften 274 Beschleunigung 183, 211, 247, Instanzname 183 in Vektor umwandeln 220 422 Optionen 184 Komprimierung 546 Abbremseffekt 247 Pfad 184 mit ActionScript 565 abbremsen 211 Bewegungsvoreinstellungen 202 nachzeichnen 220 Beispiel 213 bezier 459 bitmapData 565 Beschleunigungstypen 247 Bézierkurven 510 BitmapData-Klasse 566 Bewegungs-Editor 198 bezierThrough 459 Bitmap-Eigenschaften 546 Stärke 247 Bibliothek 137 Bitmap-Filter 557, 561 verwenden 199 bereinigen 140 animieren 558 BEVEL 506 Elemente löschen 137 Bitmap-Füllung 113 bevelFilter 459 externe 144 Bitmapgröße berechnen 550 BevelFilter 563 Klassen-Instanzen erzeugen 387 Bitmap in Vektoren umwandeln Bewegung 217, 424 Ordner 139 102 im Raum 217 Ordnung und Struktur 138 Bitmap-Klasse 565 Linear 424 BIGINT 737 Bitmap-Linien 509 Nicht linear 424 Bildbezeichner 163, 164 Bitmap-Text 273 Bewegungs-Editor 190 ansteuern 165 Bitrate 577 Anzeige steuern 190 Typen 165 Bitverschiebung 367 Beispiel 195 zuweisen 165 Bitweise 365 Beispiel Beschleunigung 199 Bildebene 217 Bleistift 76 Beschleunigung 198, 199 Rotation 217 Blender 928 Beschleunigungstypen 198 Bildebene Drehung 217 blendMode 561 Eckpunkt 194 Bildebenen 549, 553 BlendMode.ADD 562 Glättungspunkt 194 Bild BlendMode.ALPHA 562 Schlüsselbild hinzufügen 193 Ansteuerung 165 BlendMode.DARKEN 562 Umgang mit Graphen 192 gleichzeitig bearbeiten 177 BlendMode.DIFFERENCE 562 Umgang mit Zeitleiste 192 kopieren 169 BlendMode.ERASE 562 verwenden 195 mehrere gleichzeitig bearbeiten BlendMode.HARDLIGHT 562 Bewegungspfad 187, 208 177 BlendMode.INVERT 562 Beispiel 187 Schlüsselbilder 159 BlendMode.LAYER 562

941 Index

BlendMode.LIGHTEN 562 C contains 777 BlendMode.MULTIPLY 562 contentLoaderInfo 397 BlendMode.NORMAL 562 controlX 510 Cache 712 BlendMode.OVERLAY 562 controlY 510 Caching verhindern 762 BlendMode.SCREEN 562 ConvolutionFilter 563 Call-Stack 405 BlendMode.SHADER 562 Cookie 835 cancel 794, 800 BlendMode.SUBTRACT 562 cos 446 CANCEL 801 Blitzpinsel 81, 89 createGradientBox 520 caps 506 blockindent 657 CreateJS 899 CapsStyle.NONE 506 blockIndent 675 Einschränkungen 900 CapsStyle.ROUND 506 Blocksatz 261 HTML5-Website 904 CapsStyle.SQUARE 506 Blocksatz TLF-Text 286 Installation 901 CASEINSENSITIVE 358 Blumenpinsel 81, 88 creationDate 803 catch 848 blurFilter 459 Creative Cloud 911 Cc 729 BlurFilter 563 Cross-Domain-Policy 591, 762, CDATA 771 BMP 545 763 CHANGE 529 Bogenmaß 431 CSS 674, 686 CHAR 737 bold 538, 675 Cubic 453 Charakteranimation 243 Bones Cue-Point-Name 636 chmod 717 Darstellung 241 Cue-Points 636 Cinema 4D 928 Eigenschaften 240 Ereignis 638 Circ 453 Gelenk 241 Navigation 641, 642 clear 505, 837 Hierarchie 239 currentFPS 635 CLICK 394, 822 Position 241 currentTarget 390, 666 Click to Flash 338 Steuerungspunkt 248 curveTo 510 client 630, 635, 637, 641 Verbindung entfernen 249 CustomEase 453 close 588, 601, 633 Verbindung hinzufügen 250 Custom Ease Builder 453 CMS 797 Bone-Werkzeug 239 Code Completion 912, 916 Boolean 349 Codefragmente 341, 343 border 671 Codehinweis zeigen 343 borderColor 672 D Coderedundanz 498 Bounce 453 Collision Detection 823 Bouncing 832, 833 Darüber (Zustand) 580 color 538, 675, 686 BoundingBox 131 data 534, 666, 708, 725, 837 colorMatrixFilter 459 br (HTML-Tag) 656, 685 DataEvent.UPLOAD_COMPLETE_ ColorMatrixFilter 563 Breakpoints 405 DATA 803 colorTransform 460 browse 789, 797, 800 dataFormat 666, 708 columnCount 686 Browser-Caching 712 Data Modelling 733 columnGap 687 verhindern 712 date 706 columnWidth 687 Browser-Cookie 835 Date 712 comment 588 bufferLength 635 DATE 737 comments 764 bufferTime 635 Dateiendungen überprüfen 803 Compiler-Fehler 403 Bühne 55, 378 Dateigröße COMPLETE 398, 602, 790, 794, Größe einstellen 57 analysieren 299 801 Button 527 Dateirechte 717, 799 Component Assets 540 buttonMode 860 Datenbank erstellen 734 computeSpectrum 604 Button-Sound 580 Datenbank-Login 742 concat 356 byteArray 604 Daten lokal speichern 838 connect 629 ByteArray 604 Datensatz 739 ContainerController 691 bytesLoaded 601, 634, 635, 797 aktualisieren 758 Container und Fluss 288, 651 bytesTotal 601, 634, 635, 797 einfügen 739

942 Index

Datentyp DISTINCT 745 Ebene 556 ermitteln 351 div 684 bei Veröffentlichung ignorieren Überprüfung 756 Division 360 158 Datentyp 346, 348, 349, 703, Dokumenteigenschaften 57 Bewegungs-Tween 179 736, 774 Dokumentfenster Ebenenordner erstellen 156 überprüfen 383 Ansicht vergrößern/verkleinern in Führungsebene umwandeln Datentypkonflikt 351 56 207 Datentypumwandlung 351 Ansicht verschieben 56 löschen 155 DATETIME 737 Dokumentklasse 488 Maske zuweisen 227 Datum 706 Doppelklick 394 mit Ebenen arbeiten 154 Debuggen 404 Doppelte Variablendefinition 411 Name ändern 155 Debugging 403 DOUBLE 737 Ordner 156 Debug-Konsole 404 DOUBLE_CLICK 394, 822 Posenebene 243 Debug-Optionen 343 do-while 370 Reihenfolge 155 DECIMAL 737 download 794, 800 Rotation 217 Decompiler 299 Download 793 sperren 158 default 364 Download-Einstellungen 324 steuern 157 defaultTextFormat 672, 674 Download simulieren 324 Tween 179 Dekorpinsel 81, 87 Drag & Drop 342, 821 Ebenen Deko-Werkzeug 80 draw 829 Arbeiten 154 3D-Pinsel 86 drawCircle 518 Darstellungsoptionen 162 Baumpinsel 91 drawEllipse 519 Ebenenmodell 154 Blitzpinsel 89 Drawing-API 503 Negativbeispiel 155 Blumenpinsel 88 drawRect 512 Ordner steuern 156 Dekorpinsel 87 drawRoundRect 518 echo 704, 746 Feuerpinsel 87 drawSpectrum 607 Echte Kursive 259 Flammenpinsel 88 Dreamweaver 665 Eckpunkt 194 Gebäudepinsel 86 Drehung 183 Eckrundungen 93, 518 Partikelsystem 89 Dreieck 432 ECMA 337 Rankenfüllung 81 dropShadowFilter 460 ECMAScript 759 Rasterfüllung 82 DropShadowFilter 563 Effekt 581 Rauchanimation 90 Durchschussmodell 649 Eigene Klassenpfade 477 Symmetriepinsel 84 .dv 611 Eigene Pakete 479 delay 849 .dvi 611 Eigenschaften 474 delayedCall 450 dynamic 471 Bewegungs-Tween 184 delete 776 Dynamische Klasse 471 Einbetten 652 DESC 744 Dynamischer Text 647 Einbettung DESCENDING 357, 358 Dynamische Textfelder 255, 650 in HTML 301 DF3 677 Dynamische Variablen 350 mit dem SWFObject 309 DF4 677 Einblenden 582 Diagramme 930 Eingabefokus 661 die 743, 866 Eingabehilfe Differenz 557 E Symbole 331 Digital Video 611 Eingabehilfen 330 direction 687 E (Konstante) 447 Eingabetextfelder 650 DisplacementMapFilter 563 E4X 759 Eingebettete Schriften 272 DisplayList 378 easeIn 454 Eingebettete Videos 625 DisplayObject 379, 382 easeInOut 454 Einzeilig 651 DisplayObjectContainer 379, easeOut 454 Elastic 453 382 Easing 423, 425, 453 Ellipsenförmige Bewegung 441 dispose 569, 829 Easing Equations 453 Ellipsengrundform 96

943 Index

Ellipsenwerkzeug 95 Export für gemeinsame Nutzung 443 702 Ellipse zeichnen 519 zur Laufzeit 144, 678 1061 411 E-Mail 727 Exportieren 1067 410 E-Mail-Header-Injection 728 HTML5 899 1084 411 E-Mail-Link 265 extends 499 1100 411 E-Mail-Verknüpfung 264 Externe Bibliothek 145 1120 410, 411 embedFonts 672, 678 öffnen 144 1151 411 EMBED-Tag 310 Externe Videos 627 1170 411 endFill 512 mit Playback-Komponente laden 2101 708, 755 Endlose Ausführungen 376 623 2174 798 Endlosschleifen 369, 705 Fehlermeldungen 410 Endloswiederholungen 589 Fehlersuche 403 ENTER_FRAME 396, 415 Fehlerursachen 410 Entwicklungsumgebung 25, 46 F Feld 349, 736 anpassen 58 Feldwerte 354 Eolas-Patentverletzung 310 F4V 612 Fenster Equalizer 605 FadeOut 426 maximieren 58 Ereignis 389, 414, 415, 579 Fading-Animation 429 minimieren 58 Ereignis-Listener 390, 415, 800 Fallunterscheidung 361 schließen 58 entfernen 392 false 349 verankern 59 Ereignisprozeduren 390, 415 FAQ 313, 810 Werkzeuge 52 Error 403 Farbe anpassen 558 Fenstermodus Veröffentlichung Error Highlighting 912 Farbeimerwerkzeug 110 304 Erweiterung 899 Füllung sperren 111 Feueranimation 81, 87 Escape-Sequenzen 667 Lückengröße 110 FFTMode 604 event 637 Farbeinstellungen 219 FileFilter 798 Event.ADDED_TO_STAGE 396 Farbharmonieregel 71 fileList 814 Event.CANCEL 801 Farbpalette bearbeiten 69 File Packager 610 Event.CHANGE 529 Farbschema FileReference 789 Event.COMPLETE 397, 398, 602, bearbeiten 71 Dateiendungen 803 790, 794, 801 erstellen 71 Download 793 Event.ENTER_FRAME 396, 415 Farbton 218, 558 Eigenschaften 803 Event.ID3 588, 602 Farbverlauf 112 Ereignisse 800 Event.INIT 397, 398 Farbe einfügen 112 Fehlerursachen 810 Event.MOUSE_LEAVE 821 Farbe entfernen 113 Fortschrittsanzeige 795 Event.OPEN 398, 802 linear 112, 228 Methoden 799 Event.REMOVED_FROM_STAGE radial 113 Upload 797, 810 396 transparente Farbe 229 FileReference.creationDate 803 Event.SELECT 790, 797, 802 über mehrere Formen 111 FileReferenceList 814 Event.SOUND_COMPLETE 590, Farbverlauf – Geschliffen 558 FileReference.modificationDate 603 Farbverlauf – Glühen 558 803 Event.UNLOAD 399 Farbverlaufsfüllungen 519 FileReference.name 803 exp 446 Farbverlaufslinien 519 FileReference.size 803 Experten-Modus 340 Farbverlaufwerkzeug 114 FileReference.type 803 Expo 453 FDT 914 FileZilla 788 Export 325 Feder 247 Film komprimieren 298 Bild exportieren 328 Feder aktivieren 247 Filter 555, 557 Film exportieren 329 Feed 766 filters 563 Exporteinstellungen 614, 619 Fehlende Schriften ersetzen 278 final 499 Exportformate 329 Fehlerbehebung 477 Fixierung anwenden/aufheben Export für ActionScript 387, 586 Fehlercode 480

944 Index

Flaches Bitmap 554 fl.controls 526 Foto (JPEG) 546 Flaches Bitmap-Bild 549 Flex 929 Fourier-Transformation 604 Flammenpinsel 81, 88 Flex Builder 930 frame 460 Flash Builder 930 Flex-Charting-Komponenten 930 frameLabel 460 Flash Catalyst 931 Flex SDK 912 Freihandwerkzeug 76 Flash Components 524 Fließkommazahl 737 Begradigen 76 Flash-Cookie 835 FLOAT 737 Glätten 76 Flash-Datei (ActionScript 3.0) 346 floor 446, 835 Frei-transformieren-Werkzeug Flash Debug Player 404 flowComposer 691 105 FlashDevelop 911 fl.transitions 448 Frequenz 574 Flash Development Tools 914 Fluchtpunkt 109 from 450 flash.display 378 flush 837 From 729 Flash-Ebenen 552 .flv 611 FROM 744 Flash-Export 294 FLV-Format 611 FTP-Zugang 622 Ausgeblendete Ebenen FLV in SWF einbetten und in Führungsebene 205 ­exportieren 298 ­Zeitleiste abspielen 623 Füllfarbe 68, 77 Debugging erlauben 299 FLV-Media Player 613 Fülltyp 519 Film komprimieren 298 FLV Player 613 Füllung 512 Gerätesound exportieren 297 FocusEvent.FOCUS_IN 662 Strichlinie hinzufügen 110 Sicherheit bei lokaler Wieder­ FocusEvent.FOCUS_OUT 662 Funktionen 373, 705 gabe 299 FOCUS_IN 662 endlose Ausführungen 376 Skript-Höchstzeit 301 FOCUS_OUT 662 rekursive 376 Soundeinstellungen übergehen Fokus 662 Funktionsargumente 373 297 Follow TCP Stream 719 Funktionsparameter 373 Trace-Aktionen übergehen 299 font 538, 675, 678 FXG 554 Version 294 Font 671, 678 Vor Import schützen 299 font color 656 Flash-Film font face 657 Bildrate 57 fontFamily 687 G Größe 57 fontName 678 Hintergrundfarbe 57 font size 657 Gallery 529 testen 50 fontSize 687 Games 819 transparent 322 fontStyle 687 Ganzzahl 348 Flash gegen HTML5 32 fontWeight 687 Gapless-Playback 591 Flash-Historie 25 for 370, 389, 705 GarageBand 578 Flash-JavaScript 50 foreach 705 Garbage Collector 385, 428 Flashloaded 524 for-each-in 372 Gästebuch 748 Flash Media Server 610, 623 for-in 371 Gaußscher Weichzeichner 619 Flash Player format 686 Gebäudepinsel 81, 86 Kontextmenü 321 Formatierungseinstellungen Gegenkathete 433 Version 294 TLF-Text 281 Geltungsbereich 353 Flash-Player-Verbreitung 338 FormatValue.AUTO 686 Dokumentklasse 489 FlashVars 313 FormatValue.INHERIT 686 Gemeinsame Nutzung 576, 678 einsetzen 315 Formen 503 Gemeinsam genutzte Bibliothek FlashVars Zugriff aus Flash 314 Arten 68 142 Flash-Version Formmarken 223 genre 588 aktivieren 51 einsetzen 223 Geometrie 430 deaktivieren 51 entfernen 224 Geräteschriftarten 267, 652, 676 feststellen 302 Reihenfolge 224 Mac 268 611 Form-Tween 220 Maskierung 268 Flash-Video-Formate 611 Formmarken einsetzen 223 Vorteil 268

945 Index

Gerätesound 576 H HTML-Textfelder 655 Geschichte von Flash 25 HTTP 609, 698 Geschwindigkeit 186, 422 GET 715 H.264 612 ändern 174 POST 716 Haarlinie 75 GET 715 POST-/GET Überwachung 719 Hacker 855 getBounds 826 HTTP Dynamic Streaming 609 Haltepunkte 405 getChildAt 382 HttpFox 719 Hardwarebeschleunigung 300 getChildByName 383 HTTP-Methode 715, 716 Hartes Licht 557 getChildIndex 385 HTTPS 728 Hashfunktion 862 getLineText 679 HTTP_STATUS 800, 802 Hashwerte 864 getLocal 837 HTTPStatusEvent.HTTP_STATUS Header-Injection 728 getPixel 567 800 height 379, 413, 414, 670 getPixel32 569 HTTPSTATUSEvent.HTTP_STATUS Helligkeit 218, 558 getPixels 569 802 hexColors 461 Getter 496 Hülle bearbeiten 582 hide 842 getTime 712 Hypertext Preprocessor 697 Hierarchie 378 getTimer 834 Hypotenuse 433 Highscore 855 getVector 569 Highscore-Sicherheit 861 GIF 396, 545 Hilfe 343 GIF-Export 306 Hilfslinie 120 Glättungspunkt 194 I anzeigen 121 Gleich 362 ausrichten 121 glowFilter 460 i (HTML-Tag) 656 bearbeiten 121 GlowFilter 563 id3 601 entfernen 121 Glühen 558 ID3 588, 602 sperren 121 Golem.de 766 ID3-Format 588 Hilfswerkzeuge 115 gotoAndPlay 377 if 362, 703 9-teiliges Segmentraster 115 gotoAndStop 377 if-else 363 Handwerkzeug 118 GradientBevelFilter 563 if-else-if 363 Hilfslinien 120 GradientGlowFilter 563 ignoreComments 763 Raster 122 GradientType.LINEAR 519 ignoreWhitespace 764 Zoomwerkzeug 119 GradientType.RADIAL 519 Illustrator-Import 551 Hineinspringen 406 Gradmaß 431 Im Code zusammengeführt 649 Hintergrundfarbe 57 Grafikaustausch-Format 554 img 657, 685 hitTest 823, 825 graphics 503 import 477 hitTestObject 823, 846, 848 Größe durch Skalieren anpassen Importieren 578 hitTestPoint 823, 824 616 Importierte JPEG-Daten HORIZONTAL 505 Größer als 362 ­verwenden 546 hspace 657 Größer gleich 362 In Bibliothek importieren 545 HTML Groß-/Kleinschreibung TLF-Text In Bühne importieren 545 Variablen übergeben 315 282 include 743 HTML5 32 groupName 530 indent 657, 675 exportieren 899 Grundfarbe 555 Index 736 gegen Flash 32 Grundlinienverschiebung TLF-Text Index-Reihenfolge 384 HTML5-Website 903 286 Indizierte Arrays 354 HTML-Absatz 657 Gruppierung Inheritance 498 HTML-Export 301 aufheben 118 INIT 398 HTML-Formatierungen 655 GTween 449 Inkompatibilitätsbericht 552 HTML-Ladeverhalten 323 In-Punkt 618 HTML-Tags 656 INSERT 752 htmlText 654, 672 Instantiierung 469

946 Index

InstantStorm 935 JointStyle.ROUND 506 in Führungsebene umwandeln Instanz 126 JPEG 396, 546 207 auf Bühne platzieren 624 JPEG-Deblocking 548 kein Bewegungspfad 204 Instanzeigenschaft 123, 126, 486 JPEG-Export 308 Pfad hinzufügen 205 Instanzmitglied 485 JSFL-Format 50 Schlüsselbilder einfügen 207 Instanzname 183, 525, 416 JumpEye Components 524 Timing 209 In Symbol konvertieren 125 Kleiner als 362 int 348 Kleiner gleich 362 INT 737 Kodierung 613 Integer 348 K Kollation 735 InteractiveObject 382, 670, 819 Kollisionserkennung 823 Interaktion 819 Kanal 576 Begrenzungsrahmen 823 internal 483, 484, 490 Kantenglättung 266 pixelbasiert 825 Internetadresse mit Text Kapitälchen 259 pixelbasiert (transformiert) 828 ­verknüpfen 264 Kaskade 686 positionsbasiert 831 Internet Explorer 7 310 Kennwort 651 punktbasiert 824 int.MAX_VALUE 590 kerning 675, 687 Kommagetrennt 357 Inverse Kinematik 237 Kerning 261 Kommentarblock anwenden 343 Beispiel 243 KeyboardEvent 820 Kommentare 619, 703, 763 Beschleunigung 247 KeyboardEvent.KEY_DOWN entfernen 343 Bindungswerkzeug 248 395, 819 Kommentarfunktionen 345 Bones Eigenschaften 240 KeyboardEvent.KEY_UP 395, Komponente 523 Bone-Werkzeug 239 819 Eigenschaften 527 mit ActionScript nutzen 243 keyCode 820 Ereignisse 528 Pose einfügen 245 KEY_DOWN 395, 819 Methoden 527 Posenanimation 247 KEY_UP 395, 819 Typ anpassen 537 Posenebene 239 kill 451 UIScrollBar 681 Skelett-Animation 242 killDelayedCallsTo 451 Video-Playback 623 Skelett Hierarchie 240 killTweensOf 450, 451 Komponentenparameter 524 Steuerungspunkte ausrichten Kilohertz 574 Komprimierung 546, 576 250 Kinematik 237 Konstruktor 471 Verbindung entfernen 249 Kinsoku Shori Type 649 Kontaktformular 720 Verbindung hinzufügen 250 Klasse 469 Kontextmenü 51 IO_ERROR 398, 588, 602, 630, aus Bibliothek 387 Kontrast 558 708, 800, 802 dynamische 471 Kontrolle des Ladevorgangs 397 IOErrorEvent.IO_ERROR 398, erstellen 473, 481 Konturansicht 158, 177 588, 602, 630, 800, 802 mit Symbol verknüpfen 490 Konturformat 677 is 383 Klassenbezeichner 471 Koordinatensystem 430 isset 727 Klassenmitglieder 485 Kosinus 433 italic 538, 675 Klassenpfad 476, 479 Kreisbewegung 441 item 764 Klassischer Text 647 Kreiszahl 431, 447 Klassischer Text vs. TLF-Text 279 Kreis zeichnen 95, 518 Klassische Texterstellung 251 Kryptografie 862 Klassische Tweens 204 Kuler-Bedienfeld 71 J an Pfad ausrichten 205, 206 Kurvensegment 98 Beispiel 206 Kurven zeichnen 510 Japanisch 684 Beispiel Abbremsung 210 Kurzschreibweise 361, 365 join 356 Beispiel Beschleunigung 210, joints 506 213 JointStyle.BEVEL 506 erstellen 204 JointStyle.MITER 506 Führungsebene 205

947 Index

L lineTo 504 Math.abs 446 Linie Math.acos 446 gerade Linie erzeugen 98 Math.asin 446 label 530 Kurve erzeugen 98 Math.atan 446 Label 530 verbinden 75 Math.atan2 443, 446 Ladeverhalten von Flash-Filmen zeichnen 504 Math.ceil 446 322 Linienenden 506 Math.cos 446 Lame 591 Liniensegment 98 Math.E 447 Länge/Set 736 Linienwerkzeug 72 Math.exp 446 Lasso Linker Kanal 582 Math.floor 446 Auswahl abschließen 102 List 528 Math.LN2 447 Lassowerkzeug 101 ListEvent 783 Math.LN10 447 Lateinisch einfach 654 Live Error Highlighting 915 Math.log 446 latin1_german1_ci 735 Live-Vorschau 524 Math.LOG2E 448 Laufweite 689 LN2 447 Math.LOG10E 447 Laufzeitfehler 403 LN10 447 Math.max 447 Laufzeitumgebung 871 load 397, 586, 587, 601, 718, Math.min 447 Lautsprecher 573 762, 789, 800 Math.PI 431, 447 Lautstärke 574, 596, 633 Loader 381, 396 Math.pow 447 Lautstärkeregler 633 log 446 Math.random 447 Layout LOG2E 448 Math.round 447 Spaltenbreite anpassen 62 LOG10E 447 Math.sin 447 Zeilenhöhe anpassen 62 Login 742 Math.sqrt 433, 447 leading 657, 675 Lokaler Geltungsbereich 353 Math.SQRT1_2 448 Lebenspunkte 850 Lokaler Speicher 836 Math.SQRT2 448 leftMargin 675 Lokaler Video-Player 613 Math.tan 447 leftPeak 602 Lokaler Webserver 699 Matrix 520 leftToLeft 603 Lokale Speicherung 792 Matrix für Farbverläufe 520 leftToRight 603 LONGTEXT 737 Maus 382, 395, 819 Leistung von Schleifen 371 Loopen 427 Ereignisse 822, 823 length 355, 601, 672, 764 loose typing 350 Mausrad 821 Leserichtung 260 Löschen 481, 557 Mausrichtung 444 letterSpacing 538, 675 Lose Typisierung 349 Maussteuerung 820 li 657 Mauszeiger Ligaturen 283 ausblenden 842 Lightwave 3D 928 einblenden 854 Lineal 119 M max 447 anzeigen 120 maxChars 672 Linear 453 .m1v 611 max_execution_time 811 LINEAR 519 .m2p 611 Maximale Zeichenanzahl 651 Linearer Farbverlauf 112 .m2t 611 max_input_time 811 lineBitmapStyle 509 .m2ts 611 MAX_VALUE 590 lineBreak 687 .m4v 611 Maya 928 lineGradientStyle 519 mail 727 MD5 862 lineHeight 687 MAMP 699 MEDIUMINT 737 LineScaleMode.HORIZONTAL Manueller Zeilenumbruch 658 MEDIUMTEXT 737 505 Masken 225 Mehrdimensionale Arrays 355 LineScaleMode.NONE 505 Maskenebene 225, 227 Mehrere Argumente 374 LineScaleMode.NORMAL 505 Farbe 226 Mehrspaltiger Text 692 LineScaleMode.VERTICAL 505 Maskierung von Geräteschriften Mehrzeilig 651 lineStyle 504 268 memory_limit 811 lineThrough 687

948 Index

Menü MOUSE_UP 395, 822 N Ansicht 48 MOUSE_WHEEL 821, 823 Bearbeiten 48 .mov 611 \n 658 Befehle 49 moveTo 510 Nach links 582 Datei 47 MovieClip 349, 381 NACH LINKS 367 Debuggen 50 Bild-für-Bild-Animation 172 Nach rechts 582 Einfügen 49 dynamische Klasse 844 NACH RECHTS 367 Fenster 51 Registrierung ändern 132 name 379, 383, 637, 672, 793, Hilfe 51 Tween erstellen 204 803 Modifizieren 49 verschachteln 231 Namenskonflikte 476 Steuerung 50 Vorteile 231 Namespace 411 Text 49 MP3 575, 576, 591 NaN 352 Zeitleiste 48 .mp4 611 Nativ 759 Menüleiste 47 MPEG 611 navigateToURL 793 Metadaten 621 MPEG 4 611 navigation 637 method 718 .mpg 611 Navigation 399 Methoden 475 multiline 672 Negativ multiplizieren 556 Microsoft SQL Server 732 Multiplikation 360 NetConnection 629 min 447 Multiplizieren 556 NET_STATUS 630 MinimalComps 523 MVC 683 NetStatusEvent.NET_STATUS 630 Minute 492 MXML 931 NetStream 629 Mischfarbe 555 _myindex_29 55 Eigenschaften 634 Mischmodi 555, 561 _myindex_59 63 Ereignisse 630 MITER 506 _myindex_98 224 Neue Datei 481 Mitglieder 485 _myindex_116 358 Neuer Ordner 481 mitterLimit 506 _myindex_117 358 Neues Projekt 480 modificationDate 803 MySQL 697, 732 new 472 Modulo 360 Daten an Flash übergeben 745 nextFrame 377 Mojikumi 649 Datenbank erstellen 734 Näherungswerte 427 MonsterDebugger 407 Datenbanksätze einfügen 752 NICHT 366 MorphShape 382 Datenbankverbindung herstellen NONE 505, 506 MOUSE_DOWN 394, 821, 822 743 Normal 556 MouseEvent 390 Datentypen 736 NORMAL 505 MouseEvent.CLICK 394, 822 Felder bearbeiten 738 NOT 365 MouseEvent.DOUBLE_CLICK Gästebuch 748 Notepad 665 394, 822 phpMyAdmin 734 Notepad++ 665 MouseEvent.MOUSE_DOWN Sicherheit 755 null 347, 385, 474, 475, 563 394, 821, 822 Tabellen erstellen 735 Null 736 MouseEvent.MOUSE_MOVE Tabellen exportieren 739 Number 348 395, 418, 822 Tabellen importieren 741 NUMERIC 357, 358 MouseEvent.MOUSE_UP 395, mysql_connect 743, 752 Numerisch sortieren 357 822 mysql_fetch_array 745 numLines 672 MouseEvent.MOUSE_WHEEL mysql_num_rows 745 Nur Flash – Vollbild zulassen 632 821, 823 mysql_query 744, 752 Nur zum Lesen 649 MouseEvent.ROLL_OUT 395, mysql_real_escape_string 756 823 mysql_select_db 743, 752 MouseEvent.ROLL_OVER 395, MySQL Workbench 732 823 MOUSE_LEAVE 821 MOUSE_MOVE 395, 418, 822 Mouse.show 854

949 Index

O Paket-Pfad 471, 472, 476 Voraussetzungen 698 pan 603 while 704 Papervision 3D 928 .php4 698 Obfuscator 868 ParagraphElement 690 phpinfo 698 Object 349 paragraphEndIndent 688 phpMyAdmin 734 OBJECT-Tag 310 paragraphSpaceAfter 688 PHP und MySQL 742 Objekte 468 paragraphSpaceBefore 688 Pi 431, 447 anordnen 117 paragraphStartIndent 688 Pinselmodus 77 erstellen 473 parameter 637 Pinselwerkzeug 77 gruppieren 117 Parameter 373 Füllfarbe 77 zählen 487 Parameter (Standardwerte) 375 Glätten 77 Objektorientierte Programmie- Parameter (unbekannte Anzahl) Pipette 111 rung 467 375 Pixel auslesen 567 Objektzeichnung 68 parent 376, 380 Pixelbasierte Kollisionserkennung ODER 365, 366 Partikelsystem 81, 89 825 Ohne 582 Passwort 651 Pixelfont 275 ol 657 pause 633 Positionierung 276 onCompleteParams 455 Perian 613 Regeln 275 onCuePoint 637 Perl 697 Schriftgröße 276 onMetaData 641 Pfad 184, 554 Textausrichtung 276 onReverseComplete 453 Ankerpunkte entfernen 98 Textauszeichnung 276 onReverseCompleteParams 455 Ankerpunkte hinzufügen 98 Wann Sie verzichten sollten 277 onUpdateParams 455 Bewegungs-Tween 184 Pixelgrafik 27 OPEN 398, 802 schließen 95, 98 pixelHinting 505 opendir 813 Umformung 185 Pixel setzen 569 Operatoren 360, 703 Photoshop-Import 548 pixelSnapping 565 arithmetisch 360 .php 698 PixelSnapping.ALWAYS 565 bitweise 365 PHP 697 PixelSnapping.AUTO 566 einfach 360 Daten senden 707 PixelSnapping.NEVER 565 is 383 Daten senden und empfangen Pixel und Vektoren 27 logisch 364 715 play 587, 601, 633, 841 Vergleich 361 Datentypen 703 Player 25 OPML 766 Datums- und Zeitfunktion 706 PNG 396, 546 Optimal 584 Fallentscheidung 703 PNG-Export 308 Oracle Database 732 for 705 Polygon 97 ORDER BY 744 foreach 705 Polysternwerkzeug 97 Ordner 156 Funktionen 705 pop 356 Out-Punkt 618 Gästebuch 748 Port 80 702 override 501 if 703 Ports 702 overSkin 541 Kontakformular 720 Pose einfügen 245 Overwrite 452 Operatoren 703 Posenanimation 247 php.ini 811 Posenebene 239 serverseitiges Datum und Zeit position 594, 602 P 712 Positionsbasierte Kollisions­ Sicherheit 728 erkennung 831 Sprachelemente und Syntax 702 POST 716, 811 p (HTML-Tag) 657, 684 Stringverkettung 703 PostgreSQL 732 package 471 switch 704 post_max_size 811 paddingBottom 688 Upload 799 pow 447 paddingLeft 688 Variablen 702 preg_replace 729 paddingRight 688 Verzeichnis auslesen 812 Preloader 323, 396, 398, 795, paddingTop 688 808 950 Index

Preloader-SWF 649 random 447 rightToLeft 603 prependChild 775 Rankenfüllung 80, 81 rightToRight 603 prevFrame 377 Raster 122 ROLL_OUT 395, 823 private 484 bearbeiten 122 ROLL_OVER 395, 823 Private Browsing 836 einblenden 99 root 376 Privater Modus 836 Rasterfüllung 80, 82 rotation 380, 414 PROGRESS 399, 589, 602, 794, Rastergrafik 27, 545 Rotation 217, 431 802 Rasterlinie verschieben 117 Bildebene 217 ProgressEvent.PROGRESS 399, Ratios 519 im Raum 217 589, 602, 794, 802 Rauchanimation 81, 90 rotationX 380, 414 Progressiver Download 590, 609 RAW 576 rotationY 380, 414 Projekt-Fenster 480 readdir 813 rotationZ 380, 414 Projektor 25 readFloat 607 round 447 protected 484 REAL 737 ROUND 506 ProTools 578 Rechteck RSS 766 Proxy 770 mit abgerundeten Ecken 518 RSS-Feed public 474, 484 ohne Außenlinie 93 lesen 766 Punktsyntax 528 zeichnen 512 RTMP 610 Punkttext 251 Rechteckgrundform 94 Ruby 697 push 356 Rechteckwerkzeug 93 Rückgabewert 476, 373, 469, Pythagoras 432 Rechter Kanal 582 374 Python 697 Rechtwinkliges Dreieck 432 Runtime Shared Library 648 Red5 610 Refactoring 914, 916 register_globals 716 Q Registrierung eines MovieClips S ändern 132 .qt 611 Registrierungspunkt 131 Samplingrate 574, 576, 604 Quad 454 Reihenfolge Ebene 155 Samplingtiefe 574, 576 Quadratwurzel 447, 448 Rekursive Funktionen 376 Sandy 3D 928 Qualität 577 Remote-Debug 406 sans 267 Quart 454 Remote-Debugging 299 Sättigung 558 Quellpfad 482 removeAll 788 save 793, 800 Filmbasiert 482 removeChild 385 scaleMode 505 Global 483 removeChildAt 385 .savers 934 Quickfixes 916 REMOVED_FROM_STAGE 396 scaleX 380, 414 QuickTime 611 removeEventListener 527, 392, scaleY 380, 414 Quick-View-Outline 916 820 scaleZ 380, 414 Quint 454 removeTint 461 Schallwellen 573 Rename 914 Schaltfläche 132 repeat 509 Aktiv 133 replaceText 679 Auf 133 R restrict 673 Darüber 133 Restwert 360 erstellen 133 RADIAL 519 resume 633 Gedrückt 133 Radialer Farbverlauf 113 RETURNINDEXEDARRAY 358 Schlagschatten 558 Radiant 431 reverse 356, 454 Schleife 368, 580 Radiergummi 91 Rhino 3D 928 Leistungsvergleich 371 Form 92 rightmargin 657 Schlüsselbild 159 Größe 92 rightMargin 675 Darstellungsweise 161 RadioButton 530 rightPeak 603 einfügen 160

951 Index

kopieren 160, 169 SET 758 .sol 837 leer 160 setChildIndex 386 SOL 837 löschen 160, 170 setComponentStyle 538 Sonderzeichen 667 Posenebene 243 setPixel 569 songName 588 verschieben 160 setPixel32 570 sort 356, 357 Schneeflockensimulation 463 setPixels 570 Sortierung 357, 777 Schrift setSelection 680 absteigend 357, 358 Beispiel Geräteschriften setSize 462, 527, 768 alphabetisch 358 ­maskieren 268 setStyle 537 numerisch 357 Darstellung 266 Setter 496 sortOn 356, 357, 358, 779 eingebettete Schriften 272 setTextFormat 674, 680 sortXMLByNode 778 Feintuning 272 setVector 570 Sound 573 Geräteschriftarten 267 SGML 698 abspielen 589 Pixelfonts 275 SHA1 862 ein- und ausblenden 583 Schriftarteinbettung 676 SHA256 862 Ereignis 579 Schriftart-Klasse 676 ShaderFilter 563 Import 575 Schriftart-Symbol 676 Shape 349, 381 in der Zeitleiste 579 Schriftfarbe 257 shapeFlag 825 laden 587 Schriftgröße 257, 676 Shared Library Lautstärke 596 Schrifttypen TLF-Text 282 Dateigröße 145 Lautstärke steuern 597 Schriftwarnung 278 Ladeverhalten 144 mit ActionScript 585 Schriftzeichen SharedObject 835 parallel steuern 592 in Vektoren umwandeln 273 shift 356 pausieren 594, 595 Schriftzuordnung 278 shortRotation 462 Schaltfläche 580 Schwarze Ränder 617 Sicherheit 728, 755, 803, 861 Starten 579 Schwingende Bewegung 433 Sichtbarkeit von Anzeigeobjekten Stopp 580 Schwingung 433 386 Stream 580 .scr 934 Silbentrennung 261 Veröffentlichung 575 Screenreader 330 SimpleButton 381 SoundChannel 589, 594 Screensaver 934 sin 447 SOUND_COMPLETE 590, 603 Screensaver Producer 935 Sine 454 Soundeffekte 581 ScreenTime for Flash 935 Sinus 433 Soundeigenschaften 577 Scroller 647, 680 size 538, 676, 803, 837 Sound Forge 578 scrollRect 461 Skalierbarkeit 27 Soundkanal 604 scrollTargetName 682 Skalierung 216 SoundLoaderContext 590 SDK 930 animieren 216 Soundloop 580, 589 Security by obscurity 861 Skelett als MP3 591 SECURITY_ERROR 708, 801, 802 Hierarchie 240 SoundMixer 585, 604 SecurityErrorEvent.SECURITY_ Skelett-Animation 242 Sound-Player 601 ERROR 801, 802 Skinning 524 Soundspektrum 576, 604 seek 633 Skins 537, 538 darstellen 605 Segmentraster 115 Skripthilfe 340 Sound-Streaming 590 Sekunde 492 aktivieren/deaktivieren 343 soundTransform 587, 596, 603, SELECT 744, 790, 797, 802 Skype 702 632, 635 selectable 673 slice 356 Soundtypen 579 selected 530 Slider 597 span 684 Sequenzen 452 Slideshow 529 SpanElement 690 serif 267 SlowMotion 852 Speicher freigeben 392 Serifen 268 SMALLINT 737 Spieleprogrammierung 819 Server Adminstration 733 smooth 509 Highscore 855 Serverseitige Skriptsprache 697 smoothing 566 Highscore-Sicherheit 861

952 Index

Interaktion 819 Streaming 591, 610 SWF Screensaver for Mac 935 Kollisionserkennung 823 stretchFaktor 604 switch 364, 704 SharedObject 835 Stricheigenschaften Symbol 123 Sound 841 Benutzerdefinierte Stile 74 An Position bearbeiten 129 Zeit 834 Höhe 74 bearbeiten 128 Spiralenförmige Bewegung 442 Strichfarbe 68, 74 Begrenzungsrahmen 131 splice 357 Strichhöhe 74 duplizieren 129 split 814 Strichlinie erstellen 124 Sprache 577 Abschluss 75 Grafik-Symbole 124 Sprite 349, 381 begradigen 99 Instanzeigenschaften 123, 127 Sprühen-Werkzeug 79 entfernen 100 Instanzen 126 SQL 732 glätten 99 in Symbol konvertieren 125 SQL Development 733 in Füllung umwandeln 73 konvertieren 125 SQL Distinct 745 Verbindung 75 MovieClip-Symbole 123 SQL-INJECTION 752 Strichstil 74 Positionierung 131 SQL-Injections 757 benutzerdefiniert 74 Registrierung 125, 131, 132 sqrt 433, 447 Strikte Typisierung 349 Schaltflächen-Symbole 124 SQRT1_2 448 String 348 Schriftart-Symbole 124 SQRT2 448 strip_slashes 756 Verschachtelung 124 SQUARE 506 strip_tags 730 Symbol-Bearbeitungsmodus 125 SSL 728, 861 Strong 454 Symbole als Klasse 490 stage 380 Struktur der Zeitleiste im Symbolinstanz 126, 127 Stage 378, 381 XFL-Format 334 Symboltyp 624 Standard 736 Strukturierung von Ebenen 156 Symmetriepinsel 80, 84 Standard-Komponenten 933 Stunde 492 Synchronisation 579 Standardlayout StyleManager 537 Syntax-ToolTip 913 wiederherstellen 62 subclass 498 Syntax überprüfen 343, 344 Stapelreihenfolge 118 Subject 729 System.useCodePage 665 Stärke des Weichzeichners 620 Subtrahieren 557 Szenen 163 start 421 Subtraktion 360 ansteuern 165 startDrag 821 Suchen 343 Bildbezeichner 164 Starten 579 Suchen und Ersetzen 343 Dateigröße 164 static 486 Suchmaschinen 311 Duplizieren 164 Statische Textfelder 255 super 500 erstellen 164 Statusübergänge 933 Superglobale Arrays 731 vermeiden 164 Sternform erstellen 97 Superklasse 498 verwalten 164 Steuerung der Zeitleiste 377 swapChildren 386 Vor- und Nachteile 164 Steuerungspunkte ausrichten 250 SWD-Dateien 299 Steuerung von Zeitleisten 376 SWF 396 Stift 97 SWF-Einbindungsmöglichkeiten Stiftwerkzeug 303 T Ankerpunkte entfernen 98 SWF laden 396 Ankerpunkte hinzufügen 98 SWF-Object 303, 309 tab 685 Ankerpunkte umwandeln 98 align 321 Tabellen Pfad schließen 98 Einbindungsmethode 303 exportieren 739 Stile 536, 537 FlashVars 313 tabIndex 661, 672 stop 376, 377, 421, 602 menu 321 tabstops 657 stopAll 585 quality 320 Tabulator-Reihenfolge 661 stopDrag 821 scale 321 tan 447 Stopp 580 weitere Einstellungen 312 Tangens 447 Stream 580 wmode 321 target 390, 676

953 Index

Tastatur 382, 395, 819 mit Anti-Aliasing 272 TextFieldAutoSize.CENTER 671 Tastaturbefehle deaktivieren 819 mittig 261 TextFieldAutoSize.LEFT 671 Tastaturkurzbefehle 63 mit URL verknüpfen 264 TextFieldAutoSize.NONE 671 Menü 63 Neigung 255 TextFieldAutoSize.RIGHT 671 Tastatursteuerung 819 ohne Anti-Aliasing 273 TextFieldType.DYNAMIC 673 Tate Chu Yoko 649 Punkttext 251 TextFieldType.INPUT 673 tcy 684 Rahmen 652 textflow 684 Teilen 273 rechtsbündig 260 TextFlow 684, 690 Tellerrand 911 Richtung 263 textformat 657 Testen 578 Rotation 254 TextFormat 673 text 654, 672, 760 Schriftart 256 Eigenschaften 675 Text 251, 647 Schriftart-Klasse 676 TextFormatAlign.CENTER 675 Absatztext 252 Schriftart-Symbol 676 TextFormatAlign.JUSTIFY 675 als Grafik einfügen 274 Schriftfarbe 257 TextFormatAlign.LEFT 675 Anti-Aliasing 266 Schriftgröße 257 TextFormatAlign.RIGHT 675 Ausrichtung 260 Scroller 680 textHeight 673 auswählbar 265 Skalierung 254 textIndent 689 Auszeichnungen 258 Tabulator 661 Textknoten 774 Bitmap-Text 273 Textfeld-Methoden 679 TextLayoutFormat 685 Blocksatz 261 Textfeld-Typen 255 Text Layout Framework 647, 682 Breite anpassen 253 TextFormat-Klasse 673 Eigenschaften 686 Dokument laden 664 Text Layout Framework (TLF) Mehrspaltiger Text 692 Dynamische Textfelder 650 682 Vererbung 686 Dynamisch zuweisen/abfragen transformieren 253 Textrichtung 263 654 unerwünschte Schatten 274 textRotation 689 Eigenschaften 255 URL-Kodierung 666 Textscroller 680 Eingabe beenden 252 Zeichenabstand 262 Text transformieren Eingabefokus 662 Zeicheneinbettung 652 Neigung 255 Eingabetextfelder 650 Zeichenkodierung 664 Rotation 254 Eingebettete Zeichen 273 Zeilenabstand 261 Skalierung 254 E-Mail-Verknüpfung 264 Zeilenlänge 262 Textwerkzeug 251 Farbe 256 zentriert 261 textWidth 673 fehlende Schriften ersetzen 278 TEXT 708, 737 Tiefenverwaltung 437 Feld-Eigenschaften 670 textAlign 688 TIFF 546 Felder mit ActionScript 670 textAlignLast 689 TileList 530 feste Breite 252 textAlpha 689 time 635, 637, 812 Fettdruck 259 Textausrichtung TLF-Text 287 TIME 737 Fluss steuern 682 Textbreite 253 Timer 494, 420 formatieren 256 textColor 672 TIMER 421 Größe 256 Textcontainer 691 TimerEvent.TIMER 421 hoch-/tiefstellen 263 textDecoration 689 TIMESTAMP 737 HTML-Textfelder mit eingebetter Textebenen 550, 553 Timing 209 Schrift 655, 656 Texteingabefelder 255 tint 462 Kapitälchen 259 Texterstellung klassisch 251 Tintenfass 110 Klassischer Text oder TLF? 647 Textfeld-Eigenschaften 255, 670 TINYINT 737 Kontrast 258 Textfeld-Methoden 679 TINYTEXT 737 Kursiv 259 Textfeld-Typen 255 TLF-ActionScript-Bibliothek 649 laden 790 Dynamisch 255 TLF-Text 279 linksbündig 260 Eingabefelder 255 Ausrichten 286 Mehrspaltig 692 Statisch 255 Ausrichtung 287 mehrzeilig 252 TextField 349, 381, 670 Container und Fluss 288

954 Index

Dateigröße 279 Tween 448 U Eigenschaften 280 animieren 179 formatieren 280 an Pfad ausrichten 205 u (HTML-Tag) 656 Groß-/Kleinschreibung 282 beschleunigung 215 Überlagern 556 Grundlinienverschiebung 286 Beschleunigung 183 Überschreiben 500 Hyperlink und Ziel 282 Bewegungs-Editor 190 Übersichtlichkeit 477 Ligaturen 283 Bewegungspfad 208 Überspringen 406 Schrifttypen 282 Bewegungs-Tween 178 UILoader 530 Textfelder verbinden 289 Bewegungs-Tween erstellen 179 uint 348 Umbruch 284 Bewegungsvorstellungen 202 UIScrollBar 680 Veröffentlichungseinstellungen Drehung 183 ul 657 280 eigenen Pfad erstellen 189 Ultrashock 524 Ziffernbreite 283 Eigenschaften 184 Umbruch TLF-Text 284 Ziffernschreibweise 283 erstellen 182 Umkehren 557 TLF-Text-Eigenschaften 280 Formmarken 223 Umlaute 667 auswählbar 280 Form-Tweens 220 Umwandlung bearbeitbar 280 Geschwindigkeit 186 Bitmap in Vektoren 221 nur Lesen 280 Instanzname 183 UND 365, 366 TLF-Texterstellung 279 klassische Tweens 178 undefined 347, 411 TLF-Textfeld-Eigenschaften Klassische vs. Bewegungs-Tweens underline 538, 676 Ausrichtung im Container 288 180 Ungleich 362 Maximale Zeichen 288 Länge ändern 187 Unicode 664 Spalten 289 Optionen 183 UniRed 665 Textfarbe 289 Pfad 184 UNIX-Dateirechte 717 Verhalten 288 verlängern 182 Unix-Zeitstempel 812 Zellauffüllung 289 Tween-Engines 448 UNLOAD 399 TLF-Textfelder miteinander Tweener 448 unshift 357 ­verbinden 289 TweenEvent.MOTION_START UNSIGNED 736 TLFTextField 670 448 Unsigned Integer 348 TLF-Text-Formatierungseinstel- Tween-Klassen 448 Unterauswahlwerkzeug 100 lungen 281 TweenLite 449 Unterklasse 498 TLF-Text vs. klassischer Text 279 3D-Flip 455 Unterknoten 760 TLS 728 Easing 453 Unterschneidung 261, 675 to 452 Ereignisse 454 Unterstreichung 676, 689 To 729 Methoden 450 Untypisiert 347 togglePause 633 Plugins 458 UPDATE 758 Toolkit for CreateJS 899 Schneeflockenanimation 463 updateAfterEvent 418, 419, 511, toString 357 TweenMax 449 419 track 588 TweenNano 448 updateAllControllers 691 trackingLeft 689 TweenPlugin 458 upload 799, 800 trackingRight 689 Tweens 178 Upload 797 Transformationsmatrix 520 Bewegung im Raum 217 UPLOAD_COMPLETE_DATA 803 Transformieren Tweensy 449 Upload-Fortschritt 808 Text 253 Typ 736 upload_max_filesize 811 transformMatrix 462 type 637, 673, 803 Upload-Skript 799 Transparenz 68, 219 Typenkonflikt 351 url 601, 676 Trigonometrie 430 typeof 351 urlencode 709 true 349 typewriter 267 URL-Encoding 710 TrueSpace 928 Typisierung 349, 350 URL-Kodierung 666 try 848 URLLoader 666, 708, 715, 761

955 Index

URLLoaderDataFormat 666, 669 Flash-Player-Version feststellen Video-Objekt 627 URLLoaderDataFormat.BINARY 302 Video-Playback-Komponente 708 Hardwarebeschleunigung 300 623 URLLoaderDataFormat.TEXT 708 HTML-Ausrichtung 305, 321 Video-Player 613 URLLoaderDataFormat.VARIA- mit und ohne JavaScript 303 Video-Streaming 610 BLES 708, 746 Skalierung 321 visible 380, 458, 462, 673 URLRequest 397, 666, 725 SWF-Einbindungsmöglichkeiten void 373 URLRequestMethod.GET 718 303 Vollbild 631 URLVariables 718 SWFObject 303 volume 463, 596, 603, 633 URL verknüpfen mit Text 264 Version 294 Voreinstellungen useCodePage 665 Vor Import schützen 299 Tween Bewegung 202 UTF8 710 Veröffentlichung 293 Vorverarbeitung 577 utf8_decode 710 Flash 294 vspace 657 utf8_encode 710 GIF 306 HTML 301 JPEG 308 PNG 308 W V Veröffentlichungseinstellungen 293 W3C  World Wide Web Validierung 763 TLF-Text 280 ­Consortium 306 VARCHAR 737 ­verwenden 547 W3C-konforme Veröffentlichung Variablen 346, 702 Verschachtelung 172, 231 303 Variablendefinition 490 Beispiel 231 W3C Validator 305 doppelte 411 Verschleierungstechnik 866 Wasserhahn 92 Variablenzugriff aus Flash 314 Verschlüsselung 728, 862 WAV 575 VARIABLES 708 VERTICAL 505 Wavelab 578 VBR, 2-Pass 621 verticalAlign 689 Webserver 698, 699 VBScript 697 Vertikale Textrichtung 264 Weichzeichnen 558 Vektor 359 Verzögerung und Bildrate 421 Werkzeuge Vektoren und Pixel 27 Video 381, 609, 627 3D-Drehungswerkzeug 106 Vektorgrafik 27 Audio 622 3D-Versetzungswerkzeug 107 Vektorkonturen 550 Audio-Export 619 Deko 80 Verbindungswinkel 506 Audio-Spur steuern 632 Sprühen 79 Vererbung 498, 686 Bereitstellungsmethoden 609 Werkzeugleiste 52, 340 Vergleichsoperatoren 361, 362 Beschnitt 616 Darstellung 52 Vergrößern 119 Export 614 Wasserhahn 92 Verkleinern 119 Extern 627 Werkzeugleiste ein-/ausblenden Verknüpfung 576, 677 FLV in der Zeitleiste 624 343 Verknüpfungsbezeichner 137 Import in Flash 622 WHERE 744, 758 Verlassen 406 importieren 622 while 368, 704 Verlaufsmaske 227 Kodierung 613 whiteSpaceCollapse 689 Beispiel 227 Metadaten 621 width 379, 413, 414, 670 Maskierung 230 über ActionScript abspielen 629 Wiederholungen 580 Verlustbehaftet 546 Vollbild 631 willTrigger 394 Verlustfrei 546 Vorlagen 614 Windows Media-Datei 611 Verlustfrei (PNG/GIF) 546 Zeitleiste 618 Winkel 430, 443 Veröffentlichen Video-Containerformat 612 Winkelberechnung 443 ActionScript-Version 296 Video for Flash 612 Wireframe 933 Bilder und Sounds 296 Video-Format 611 Wireshark 719 Ebenen ignorieren 158 Flash-Player-Versionen 612 wmode 321 Video-Größe 614 .wmv 611

956 Index

Wohlgeformtheit 761, 763 Y Stricheigenschaften 73 wordWrap 673 Strich- und Füllfarbe 68 World Wide Web Consortium Tintenfasswerkzeug 110 y (Eigenschaft) 379, 380, 414, 306 Unterauswahlwerkzeug 100 670 Wowza Media Server 610 Werkzeug für Ellipsengrundform year 588 Wurzelknoten 759 96 YEAR 737 Werkzeug für Rechteckgrund­ Yudit 665 form 94 Zeichnen 67 X Zeichnungs-API 503 Z Zeilenabstand 261 x (Eigenschaft) 379, 380, 414, Zeilenfall 260 670 Zeilenkommentar anwenden 343 z (Eigenschaft) 379, 380, 413, XAMPP 699 Zeilenlänge 261 414, 670 installieren 699 Richtwert 262 z-Achse 437 XARA 3D 928 Zeilentyp 651 Zauberstab 102 XFL-Datei 332 Zeilenumbruch 685 Einstellungen 103 Grafiken aktualisieren 333 Zeit 706, 834 Zeichenabstand 261 speichern 332 Zeitleiste 54, 153 Zeicheneinbettung 652 Struktur der Zeitleiste 334 bei Bedarf erweitern 624 Zeichenkette 348 Vorteile 332 Bildbezeichner 164 Zeichenkodierung 664, 711 Wirksamwerden von Ände­ Bilder 159 Zeichenmodi 67 rungen 333 Darstellungsoptionen 162 Objektzeichnung 68 XML 692, 759, 855 Steuerung 376 Zeichenverbindung 67 Attribute 760 Zeitleistensteuerung 377 Zeichentablett 77 bearbeiten 773 Zeitstempel 712, 855 Zeichenverbindung 67 Definition 759 Zellauffüllung TLF-Text 289 Zeichenwerkzeug 68 Elemente entfernen 776 Zielpfad einfügen 343, 344 Ankerpunkt entfernen 101 Elemente hinzufügen 774 Ziffernbreite TLF-Text 283 Auswahlwerkzeug 99 Formatierungen 771 Ziffernschreibweise TLF-Text 283 Eigenschaften ändern 73 Kommentare 763 ZINC 935 Ellipsenwerkzeug 95 laden 761 Zoom 75 Farbeimerwerkzeug 110 sortieren 777 Zufall 447 Farbverlaufwerkzeug 114 Sortierung (nach Attribut) 779 Zugänglichkeit 330 Freihandwerkzeug 76 speichern 781 Zwiebelschaleneffekt 176 Lassowerkzeug 101 XMLList 765 aktivieren 176 Linienwerkzeug 72 XML-Parser 761 Anwendungsbereich 176 Pinselwerkzeug 77 XMP 621 Konturansicht 177 Pipette 111 XOR 366 mehrere Bilder bearbeiten 177 Polysternwerkzeug 97 verankern 176 Radiergummi 91 Zwischen Klammern ausblenden Rechteckwerkzeug 93 343 Stiftwerkzeug 97

957