Sie sind auf Seite 1von 836

ActionScript-Referenzhandbuch

Marken Add Life to the Web, Afterburner, Aftershock, Andromedia, Allaire, Animation PowerPack, Aria, Attain, Authorware, Authorware Star, Backstage, Bright Tiger, Clustercats, ColdFusion, Contribute, Design In Motion, Director, Dream Templates, Dreamweaver, Drumbeat 2000, EDJE, EJIPT, Extreme 3D, Fireworks, Flash, Fontographer, FreeHand, Generator, HomeSite, JFusion, JRun, Kawa, Know Your Site, Knowledge Objects, Knowledge Stream, Knowledge Track, LikeMinds, Lingo, Live Effects, das MacRecorder-Logo und -Design, Macromedia, Macromedia Action!, Macromedia Flash, das Macromedia M-Logo und -Design, Macromedia Spectra, das Macromedia xRes-Logo und -Design, MacroModel, Made with Macromedia, das Made with Macromedia-Logo und -Design, das MAGIC-Logo und -Design, Mediamaker, Movie Critic, Open Sesame!, Roundtrip, Roundtrip HTML, Shockwave, Sitespring, SoundEdit, Titlemaker, UltraDev, Web Design 101, what the web can be und Xtra sind entweder eingetragene Marken oder Marken von Macromedia, Inc., die in den USA oder anderen Lndern eingetragen sein knnen. Andere in dieser Dokumentation erwhnte Produktnamen, Logos, Designs, Titel, Wrter oder Begriffe sind mglicherweise Marken, Dienstleistungsmarken oder Markennamen bzw. in den USA und/oder anderen Lndern eingetragene Marken, Dienstleistungsmarken oder Markennamen von Macromedia, Inc. oder anderen Unternehmen. Technologien von Drittanbietern Dieses Handbuch enthlt Verweise auf Websites anderer Anbieter. Macromedia hat keinerlei Einfluss auf die Gestaltung dieser Websites und bernimmt daher keine Verantwortung fr deren Inhalt. Der Aufruf von Websites anderer Anbieter, die in diesem Handbuch erwhnt werden, geschieht auf eigene Gefahr. Diese Verweise und Links werden lediglich zu Informationszwecken bereitgestellt und bedeuten nicht, dass Macromedia den Inhalt der Website eines anderen Anbieters billigt oder die Verantwortung hierfr bernimmt. Technologie zur Sprachkomprimierung/-dekomprimierung lizenziert von Nellymoser, Inc. (www.nellymoser.com). Technologie zur Videokomprimierung/-dekomprimierung (Sorenson Spark) lizenziert von Sorenson Media, Inc. Opera Browser Copyright 1995 - 2002 Opera Software ASA und dessen Lieferanten. Alle Rechte vorbehalten. Gewhrleistungsausschluss von Apple APPLE COMPUTER, INC. BERNIMMT KEINERLEI AUSDRCKLICHE ODER STILLSCHWEIGENDE GARANTIE IM HINBLICK AUF DIE BEILIEGENDE COMPUTERSOFTWARE, IHRE MARKTFHIGKEIT ODER IHRE EIGNUNG FR EINEN BESTIMMTEN ZWECK. IN EINIGEN LNDERN IST DER AUSSCHLUSS EINER STILLSCHWEIGENDEN GARANTIE NICHT ZULSSIG. DER OBEN GENANNTE AUSSCHLUSS TRIFFT DAHER IN IHREM FALL MGLICHERWEISE NICHT ZU. AUS DIESER GEWHRLEISTUNG ERWACHSEN IHNEN BESTIMMTE RECHTE. JE NACH GERICHTLICHEM ZUSTNDIGKEITSBEREICH VERFGEN SIE MGLICHERWEISE BER WEITERE RECHTE. Copyright 2003 Macromedia, Inc. Alle Rechte vorbehalten. Dieses Handbuch darf ohne vorherige schriftliche Genehmigung von Macromedia, Inc. weder vollstndig noch auszugsweise kopiert, fotokopiert, vervielfltigt, bersetzt oder in eine elektronische bzw. maschinenlesbare Form bertragen werden. Teilenummer ZFL70M400G Danksagung Leitung: Erick Vera Projektmanagement: Stephanie Gowin, Barbara Nelson Text: Jody Bleyle, Mary Burger, Kim Diezel, Stephanie Gowin, Dan Harris, Barbara Herbert, Barbara Nelson, Shirley Ong, Tim Statler Verantwortlicher Herausgeber: Rosana Francescato Lektorat: Linda Adler, Mary Ferguson, Mary Kraemer, Noreen Maher, Antonio Padial, Lisa Stanziano, Anne Szabla Produktionsmanagement: Patrice ONeill Media-Design und -Produktion: Adam Barnett, Christopher Basmajian, Aaron Begley, John Francis, Jeff Harmon Lokalisierung: Tim Hussey, Seungmin Lee, Masayo Noda, Simone Pux, Yuko Yagi, Christian Fedder Erste Auflage: September 2003 Macromedia, Inc. 600 Townsend St. San Francisco, CA 94103, USA

INHALTSVERZEICHNIS

EINFHRUNG: Erste Schritte mit ActionScript

........................... 9

Zielpublikum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Dokumentation verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Typographische Konventionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Begriffserluterungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Weitere Ressourcen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10


KAPITEL 1: Was ist neu in Flash MX 2004 ActionScript

. . . . . . . . . . . . . . . . . . . 15 15 17 17 24 25 25

Neue und genderte Sprachelemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Das neue Sicherheitsmodell und alte SWF-Dateien. . . . . . . . . . . . . . . . . . . . . . . . Vorhandene Skripts nach Flash Player 7 portieren . . . . . . . . . . . . . . . . . . . . . . . . . nderungen im ActionScript-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . nderungen beim Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Neues objektorientierteres Programmiermodell . . . . . . . . . . . . . . . . . . . . . . . . . . .
KAPITEL 2: ActionScript-Grundlagen

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 28 29 32 37 41 45 49 55 56 57

Unterschiede zwischen ActionScript und JavaScript . . . . . . . . . . . . . . . . . . . . . . . Unicode-Untersttzung fr ActionScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elementen Datentypen zuweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Werte in Ausdrcken mit Operatoren manipulieren . . . . . . . . . . . . . . . . . . . . . . . Objektpfade angeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Integrierte Funktionen verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Funktionen erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

KAPITEL 3: Skripts schreiben und debuggen .

. . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Ausfhrung von ActionScript steuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Bedienfeld Aktionen und Skriptfenster verwenden . . . . . . . . . . . . . . . . . . . . . . . 64 ActionScript-Editor verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Skripts debuggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Bedienfeld Ausgabe verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Flash Player zum Testen aktualisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
KAPITEL 4: Ereignisse verarbeiten . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Ereignisprozedurmethoden verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Ereignis-Listener verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Schaltflchen- und Movieclip-Ereignisprozeduren verwenden . . . . . . . . . . . . . . . . 95 Movieclips mit Schaltflchenzustnden erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Gltigkeitsbereich von Ereignisprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Gltigkeitsbereich des Schlsselworts this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
KAPITEL 5: Interaktionen mit ActionScript erstellen

. . . . . . . . . . . . . . . . . . . . . . 99

Ereignisse und Interaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 SWF-Wiedergabe steuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Interaktivitt und visuelle Effekte erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Analyse eines Beispielskripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
KAPITEL 6: Integrierte Klassen verwenden

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Klassen und Instanzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 bersicht ber integrierte Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127


KAPITEL 7: Mit Movieclips arbeiten

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

Einfhrung in die Steuerung von Movieclips mit ActionScript . . . . . . . . . . . . . . 133 Mehrere Methoden fr einen Movieclip aufrufen . . . . . . . . . . . . . . . . . . . . . . . . 134 Zustzliche SWF-Dateien laden und entladen . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Hauptzeitleisten fr geladene SWF-Dateien festlegen . . . . . . . . . . . . . . . . . . . . . 136 JPEG-Dateien in Movieclips laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Position und Darstellung von Movieclips ndern. . . . . . . . . . . . . . . . . . . . . . . . . 137 Movieclips mit der Maus verschieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Movieclips zur Laufzeit erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Parameter zu dynamisch erstellten Movieclips hinzufgen . . . . . . . . . . . . . . . . . . 141 Moviecliptiefen verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Formen mit ActionScript zeichnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Movieclips als Masken verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Movieclip-Ereignisse verarbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Movieclip-Symbolen eine Klasse zuweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Klasseneigenschaften initialisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Inhaltsverzeichnis

KAPITEL 8: Mit Text arbeiten

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 150 151 152 154 163 170

Die TextField-Klasse verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Textfelder zur Laufzeit erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mit der TextFormat-Klasse arbeiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Text mit Cascading Style Sheets formatieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . HTML-formatierten Text verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scrollenden Text erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
KAPITEL 9: Klassen mit ActionScript 2.0 erstellen

. . . . . . . . . . . . . . . . . . . . . . 173 174 175 180 184 187 189 191 192 193 194 195

Prinzipien der objektorientierten Programmierung . . . . . . . . . . . . . . . . . . . . . . . Klassen verwenden: ein einfaches Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Klassen erstellen und verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instanz- und Klassenmitglieder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schnittstellen erstellen und verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mit Classpath arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pakete verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Klassen importieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implizite get-/set-Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dynamische Klassen erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . So knnen Klassen kompiliert und exportiert werden:. . . . . . . . . . . . . . . . . . . . .
KAPITEL 10: Mit externen Daten arbeiten

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

Variablen an/aus Remote-Quellen senden und laden . . . . . . . . . . . . . . . . . . . . . . 199 Meldungen an den und vom Flash Player bertragen . . . . . . . . . . . . . . . . . . . . . 208 Flash Player-Sicherheitsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
KAPITEL 11: Mit externen Medien arbeiten .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 217 218 219 220 221 222

Externe Medien laden - berblick. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Externe SWF- und JPEG-Dateien laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Externe MP3-Dateien laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ID3-Tags in MP3-Dateien lesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Externe FLV-Dateien dynamisch wiedergeben. . . . . . . . . . . . . . . . . . . . . . . . . . . Externe Medien laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
KAPITEL 12: ActionScript-Lexikon .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 229 230 231 289 295 296 312 316 334 354 358 364

Beispieleintrag fr die meisten ActionScript-Elemente. . . . . . . . . . . . . . . . . . . . . Beispieleintrag fr Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inhalt des Lexikons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accessibility-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arguments-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Array-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Boolean-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Button-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Camera-Klasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Color-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ContextMenu-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ContextMenuItem-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Inhaltsverzeichnis

CustomActions-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 Date-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 Error class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 Function-Klasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 Key-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 LoadVars-Klasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 LocalConnection-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 Math-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 Microphone-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 Mouse-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 MovieClip-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 MovieClipLoader-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 NetConnection-Klasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 NetStream-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 Number-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 OObject-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 PrintJob-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 Selection-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 SharedObject-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 Sound-Klasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 Stage-Klasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 String-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 System-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678 System.capabilities-Objekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683 System.security object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693 TextField-Klasse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 TextField.StyleSheet-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 TextFormat class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733 TextSnapshot-Objekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742 Video-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761 XML-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769 XMLNode-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789 XMLSocket-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
ANHANG A: Fehlermeldungen

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 . . . . . . . . . . . . . . . . . . 805

ANHANG B: Vorrang und Assoziativitt von Operatoren ANHANG C: Tastaturtasten und Tastencodewerte .

. . . . . . . . . . . . . . . . . . . . . . 807

Buchstaben A bis Z und Ziffern 0 bis 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807 Tasten auf dem numerischen Ziffernblock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808 Funktionstasten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 Andere Tasten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810

Inhaltsverzeichnis

ANHANG D: Skripts fr frhere Versionen von Flash Player . . . . . .

. . . . . . . . . . 813

Was Sie bei der Erstellung von Skripts fr frhere Flash Player-Versionen beachten mssen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813 Flash Player 4-Inhalte mit Flash MX 2004 erstellen. . . . . . . . . . . . . . . . . . . . . . . 814
ANHANG E: Objektorientiertes Programmieren mit ActionScript 1 .

. . . . . . . . . . 817

Info zu ActionScript 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817


INDEX

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827

Inhaltsverzeichnis

Inhaltsverzeichnis

EINFHRUNG Erste Schritte mit ActionScript

Macromedia Flash MX 2004 und Flash MX Professional 2004 sind professionelle StandardAuthoring-Tools fr die Erstellung eindrucksvoller Websites. In Flash entwickeln Sie Anwendungen mit der Sprache ActionScript. Sie mssen nicht mit ActionScript arbeiten, um Flash zu verwenden. Wenn Sie jedoch Benutzerinteraktivitt bereitstellen, mit anderen als den in Flash integrierten Objekten (wie z. B. Schaltflchen und Movieclips) arbeiten oder die Stabilitt von SWF-Dateien erhhen mchten, kann es sinnvoll sein, ActionScript zu verwenden.

Zielpublikum
Es wird davon ausgegangen, dass Sie Flash MX 2004 oder Flash MX Professional 2004 bereits installiert haben und mit diesen Anwendungen umgehen knnen. Sie sollten wissen, wie Objekte auf der Bhne abgelegt werden und wie sie in der Flash-Authoring-Umgebung bearbeitet werden knnen. Wenn Sie bereits Programme geschrieben haben, wird Ihnen ActionScript gleich bekannt vorkommen. Doch auch wenn Sie nie programmiert haben, knnen Sie ActionScript leicht erlernen. Sie knnen mit ganz einfachen Befehlen anfangen und spter kompliziertere Befehle hinzufgen.

Systemanforderungen
Fr das Arbeiten mit ActionScript mssen auer den Anforderungen fr Flash MX 2004 oder Flash MX Professional 2004 keine weiteren Anforderungen erfllt werden. In der Dokumentation wird jedoch davon ausgegangen, dass Sie fr Ihre Flash-Dateien die standardmigen Verffentlichungseinstellungen verwenden: Flash Player 7 und ActionScript 2.0. Wenn Sie eine dieser Einstellungen ndern, funktionieren die Erklrungen und Codebeispiele in der Dokumentation mglicherweise nicht mehr richtig.

Dokumentation verwenden
In diesem Dokument finden Sie einen berblick ber die ActionScript-Syntax, Informationen zur Verwendung von ActionScript beim Arbeiten mit verschiedenen Objekttypen sowie ausfhrliche Informationen zur Syntax und Verwendung der einzelnen Sprachelemente. Am besten machen Sie sich zunchst mit der Terminologie und den grundlegenden Konzepten vertraut, die im Dokument verwendet werden (weitere Informationen hierzu finden Sie in Kapitel 2, ActionScript-Grundlagen, auf Seite 27). Lernen Sie als Nchstes, wie Sie FlashSkripts schreiben und debuggen knnen (weitere Informationen hierzu finden Sie in Kapitel 3, Skripts schreiben und debuggen, auf Seite 61).

Bevor Sie eigene Skripts schreiben, sollten Sie die Lektionen Skripts mit ActionScript schreiben und die Lektion ber das Erstellen von Formularen mit logischen Bedingungen und Senden von Daten durcharbeiten, die einen praktischen Schnelleinstieg in ActionScript bieten. So finden Sie diese Lektionen: Whlen Sie Hilfe > Anleitungen > Kurzanleitung. Wenn Sie die Grundlagen verstanden haben, knnen Sie auch die Informationen im Rest dieses Dokuments verwenden. In Kapitel 4, Ereignisse verarbeiten, auf Seite 91 erfahren Sie beispielsweise, wie ein Skript geschrieben wird, das bei einem Mausklick eine bestimmte Aktion ausfhrt. Wenn Sie nach Informationen zu einem bestimmten Befehl suchen, knnen Sie den entsprechenden Eintrag in Kapitel 12, ActionScript-Lexikon, auf Seite 229 nachschlagen; dort sind die Sprachelemente in alphabetischer Reihenfolge aufgelistet.

Typographische Konventionen
Folgende typographische Konventionen werden in diesem Handbuch verwendet:

Codeschriftart: zeigt

Codeschriftart kursiv:

den ActionScript-Code an. zeigt ein Element an, z. B. einen ActionScript-Parameter oder einen Objektnamen, den Sie mit Ihrem eigenen Text ersetzen, wenn Sie ein Skript schreiben.

Begriffserluterungen
Folgende Begriffe werden in diesem Handbuch verwendet:

Sie bezieht sich auf den Entwickler, der ein Skript oder eine Anwendung schreibt. Der Benutzer ist die Person, die Ihre Skripts und Anwendungen ausfhrt. Die Kompilierzeit ist die Zeit, zu der Sie Ihr Dokument verffentlichen, exportieren, testen
oder debuggen. Die Laufzeit ist die Zeit, zu der Ihr Skript im Flash Player ausgefhrt wird.

ActionScript-Begriffe wie Methode und Objekt werden in Kapitel 2, ActionScript-Grundlagen, auf Seite 27 erlutert.

Weitere Ressourcen
Dokumentationen zu Flash und hnlichen Produkten sind separat erhltlich.

Weitere Informationen zum Arbeiten in der Flash-Authoring-Umgebung finden Sie in der


Hilfe Flash verwenden. Weitere Informationen zum Arbeiten mit Komponenten finden Sie in der Hilfe Komponenten verwenden. Weitere Informationen zum Erstellen von Kommunikationsanwendungen mit dem Flash Communication Server finden Sie unter Kommunikationsanwendungen entwickeln sowie unter Flash Communication Server verwalten. Weitere Informationen zur Nutzung von Webdiensten mit Flash-Anwendungen finden Sie unter Flash Remoting verwenden.

10

Einfhrung: Erste Schritte mit ActionScript

Die Macromedia DevNet Website (www.macromedia.com/go/developer_de) wird regelmig aktualisiert, um Ihnen die neuesten Informationen zu Flash bereitzustellen. Auerdem finden Sie hier Ratschlge von erfahrenen Benutzern sowie weiterfhrende Themen, Beispiele, Tipps und Updates. Wir empfehlen Ihnen, fter einmal auf dieser Website vorbeizuschauen und sich ber neue Entwicklungen und Mglichkeiten zum effizienten Einsatz von Flash zu informieren. Im Macromedia Flash Support Center (www.macromedia.com/go/flash_support_de) finden Sie TechNotes, aktualisierte Dokumentationen und Links zu weiteren Ressourcen in der Flash Community.

Weitere Ressourcen

11

12

Einfhrung: Erste Schritte mit ActionScript

TEIL I Willkommen bei ActionScript

TEIL I

In diesem Hauptabschnitt finden Sie grundlegende Informationen ber die ActionScriptSprache. Kapitel 1 enthlt Informationen ber nderungen und Neuerungen in ActionScript und Flash Player 7. Lesen Sie diese Informationen sorgfltig durch, wenn Sie bereits mit ActionScript gearbeitet haben. Wenn Sie bisher noch nicht mit ActionScript gearbeitet haben, beginnen Sie mit Kapitel 2 und 3, die grundlegende Informationen ber die ActionScript-Terminologie und -Syntax sowie ber das Schreiben und Debuggen von Skripts enthalten. Kapitel 1: Was ist neu in Flash MX 2004 ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Kapitel 2: ActionScript-Grundlagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Kapitel 3: Skripts schreiben und debuggen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

KAPITEL 1 Was ist neu in Flash MX 2004 ActionScript

Macromedia Flash MX 2004 und Macromedia Flash MX Professional 2004 bieten zahlreiche Verbesserungen, mit denen Sie robustere Skripts in der ActionScript-Sprache erstellen knnen. Diese neuen Funktionen werden in diesem Kapitel beschrieben und beinhalten neue Sprachelemente, verbesserte Bearbeitungs- und Debugging-Werkzeuge (siehe nderungen im ActionScript-Editor auf Seite 24 und nderungen beim Debugging auf Seite 25) sowie ein neu eingefhrtes objektorientierteres Programmiermodell (siehe Neues objektorientierteres Programmiermodell auf Seite 25). Dieses Kapitel enthlt auerdem einen ausfhrlichen Abschnitt, den Sie sorgfltig lesen sollten, wenn Sie bereits vorhandene Flash MX- oder ltere Dateien in Flash Player 7 verffentlichen mchten (siehe Vorhandene Skripts nach Flash Player 7 portieren auf Seite 17).

Neue und genderte Sprachelemente


In diesem Abschnitt werden die neuen oder genderten Elemente der ActionScript-Sprache in Flash MX 2004 beschrieben. Damit Sie diese neuen oder genderten Elemente in Ihren Skripts verwenden knnen, mssen Sie beim Verffentlichen Ihrer Dokumente Flash Player 7 (die Voreinstellung) als Verffentlichungsziel festlegen.

Mit den Methoden Array.sort() und Array.sortOn() knnen Sie Parameter zur Angabe
von zustzlichen Sortieroptionen hinzufgen, wie z. B. auf- und absteigende Sortierung, die Beachtung von Gro- und Kleinschreibung beim Sortieren usw. Die Eigenschaften Button.menu, MovieClip.menu und TextField.menu arbeiten mit den neuen ContextMenu- und ContextMenuItem-Klassen, damit Sie Kontextmenelemente wie Button-, MovieClip- oder TextField-Objekte verknpfen knnen. Mit der ContextMenu-Klasse und der ContextMenuItem-Klasse knnen Sie das Kontextmen anpassen, das angezeigt wird, wenn der Benutzer im Flash Player die rechte Maustaste (Windows) bzw. bei gedrckter Taste <Ctrl> die Maustaste drckt (Macintosh). Mit der Error class und den Befehlen throw und try..catch..finally knnen Sie eine robustere Ausnahmebehandlung implementieren. Mit den Methoden LoadVars.addRequestHeader() und XML.addRequestHeader() knnen Sie HTTP-Anforderungsheader (wie z. B. Content-Type oder SOAPAction) hinzufgen oder ndern, die mit POST-Aktionen gesendet werden. Mit der MMExecute()-Funktion knnen Sie Flash JavaScript API-Befehle mit ActionScript ausgeben.

15

(nur Windows) Der Ereignis-Listener Mouse.onMouseWheel wird generiert, wenn der


Benutzer mit dem Mausrad scrollt.

Mit der Methode MovieClip.getNextHighestDepth() knnen Sie MovieClip-Instanzen zur


Laufzeit erstellen und dadurch gewhrleisten, dass die Objekte dieser Instanzen in einem ZKoordinatenfeld eines bergeordneten Movieclips vor den anderen Objekten wiedergegeben werden. Mit der Methode MovieClip.getInstanceAtDepth() erhalten Sie Zugriff auf dynamisch erstellte MovieClip-Instanzen, indem Sie die Tiefe als Suchindex verwenden. Mit der Methode MovieClip.getSWFVersion() knnen Sie festlegen, welche Flash PlayerVersion von einer geladenen SWF-Datei untersttzt wird. Mit der Methode MovieClip.getTextSnapshot() und dem TextSnapshot-Objekt knnen Sie mit Text arbeiten, der sich in einem Movieclip in statischen Textfeldern befindet. Mit der Eigenschaft MovieClip._lockroot knnen Sie festlegen, dass ein Movieclip als _root fr alle darin geladenen Movieclips dient oder dass sich die Bedeutung von _root in einem Movieclip nicht ndert, wenn dieser Movieclip in einen anderen Movieclip geladen wird. Mit der MovieClipLoader-Klasse knnen Sie den Status von Dateien beim Laden in Movieclips berwachen. Mit der NetConnection-Klasse und der NetStream-Klasse knnen Sie lokale Videodateien (FLV-Dateien) streamen. Durch die PrintJob-Klasse knnen Sie (und der Benutzer) das Drucken vom Flash Player aus besser steuern. Die Ereignisprozedur Sound.onID3() ermglicht den Zugriff auf ID3-Daten, die mit einem Sound-Objekt verknpft sind, das eine MP3-Datei enthlt. Die Eigenschaft Sound.ID3 ermglicht den Zugriff auf die Metadatei, die Teil einer MP3Datei ist. Die System-Klasse hat neue Objekte und Methoden, und das System.capabilities-Objekt verfgt ber mehrere neue Eigenschaften. Mit der Eigenschaft TextField.condenseWhite knnen Sie berflssige Leerzeichen aus HTML-Textfeldern entfernen, die in einem Browser wiedergegeben werden. Mit der Eigenschaft TextField.mouseWheelEnabled knnen Sie festlegen, ob der Inhalt eines Textfelds scrollen soll, wenn sich der Mauszeiger ber einem Textfeld befindet und der Benutzer das Mausrad rollt. Mit der TextField.StyleSheet-Klasse knnen Sie ein Stylesheet-Objekt erstellen, das Textformatierungsregeln wie z. B. Schriftgre, Schriftfarbe und andere Formatierungskonventionen enthlt. Mit der Eigenschaft TextField.styleSheet knnen Sie einem Textfeld ein Stylesheet-Objekt zuweisen. Die Methode TextFormat.getTextExtent() akzeptiert einen neuen Parameter, und das zurckgegebene Objekt enthlt ein neues Element. Mit der Methode XML.addRequestHeader() knnen Sie HTTP-Anforderungsheader (wie z. B. Content-Type oder SOAPAction) hinzufgen oder ndern, die mit POST-Aktionen gesendet werden.

16

Kapitel 1: Was ist neu in Flash MX 2004 ActionScript

Das neue Sicherheitsmodell und alte SWF-Dateien


Die Regeln, anhand derer der Flash Player bestimmt, ob zwei Domnen gleich sind, haben sich in Flash Player 7 gendert. Ebenfalls gendert haben sich die Regeln, die festlegen, ob und wie eine von einer HTTP-Domne bereitgestellte SWF-Datei auf eine SWF-Datei zugreifen oder Daten von einer HTTP-Domne laden kann. In den meisten Fllen werden diese nderungen Sie nicht betreffen, es sei denn, Sie portieren bereits vorhandene SWF-Dateien nach Flash Player 7. Wenn Sie jedoch fr Flash Player 6 oder frhere Versionen verffentlichte SWF-Dateien besitzen, die Daten von einer auf einem Server gespeicherten Datei laden, und die aufrufende SWF-Datei in Flash Player 7 wiedergegeben wird, wird der Benutzer in einem neuen Dialogfeld gefragt, ob der Zugriff erlaubt werden soll. Sie knnen verhindern, dass dieses Dialogfeld angezeigt wird, indem Sie auf der Site, auf der die Daten gespeichert sind, eine Richtliniendatei implementieren. Weitere Informationen zu diesem Dialogfeld finden Sie unter Kompatibilitt mit frheren Flash Player-Sicherheitsmodellen auf Seite 214. Mglicherweise mssen Sie eine Richtliniendatei implementieren, wenn Sie Runtime Shared Libraries verwenden. Wenn die ladende oder die geladene SWF-Datei fr Flash Player 7 verffentlicht wird und die ladende sowie die geladene Datei nicht von genau derselben Domne bereitgestellt werden, erlauben Sie den Zugriff mit Hilfe einer Richtliniendatei. Weitere Informationen zu Richtliniendateien finden Sie unter Domnenbergreifendes Laden von Daten ermglichen auf Seite 213.

Vorhandene Skripts nach Flash Player 7 portieren


Wie bei jeder neuen Version untersttzt auch die neue Version Flash Player 7 mehr ActionScriptBefehle als frhere Player-Versionen. Mit diesen Befehlen knnen Sie stabilere Skripts implementieren. (Siehe Neue und genderte Sprachelemente auf Seite 15.)Falls Sie einen dieser Befehle jedoch in Ihren bereits vorhandenen Skripts verwendet haben, funktionieren diese Skripts mglicherweise nicht, wenn Sie sie fr Flash Player 7 verffentlichen. Wenn Sie beispielsweise ein Skript mit der Funktion Error besitzen, kann es sein, dass es scheinbar korrekt kompiliert wird, aber in Flash Player 7 nicht erwartungsgem ausgefhrt wird, weil Error nun eine integrierte Klasse (und damit ein reserviertes Wort) in ActionScript ist. Sie knnen das Skript reparieren, indem Sie der Funktion Error einen anderen Namen geben, z. B. ErrorCondition. Auerdem enthlt Flash Player 7 mehrere nderungen, die beeinflussen, wie eine SWF-Datei auf eine andere zugreifen kann, wie externe Daten geladen werden knnen und wie auf lokale Einstellungen und Daten (z. B. Sicherheitseinstellungen und lokal permanente gemeinsame Objekte) zugegriffen werden kann. Schlielich hat sich noch das Verhalten einiger bereits vorhandener Funktionsmerkmale gendert. Wenn Sie ber Skripts verfgen, die zwar fr den Flash Player 6 oder eine frhere Version geschrieben wurden, die Sie aber fr den Flash Player 7 verffentlichen mchten, mssen Sie mglicherweise die Skripts ndern, damit sie der Implementierung von Flash Player 7 entsprechen und richtig ausgefhrt werden. Diese nderungen werden in diesem Abschnitt besprochen.

Vorhandene Skripts nach Flash Player 7 portieren

17

Konformitt mit ECMA-262 Edition 4 In Flash Player 7 wurden mehrere nderungen implementiert, damit der Flash Player dem Entwurf des Standards ECMA-262 Edition 4 besser entspricht (siehe www.mozilla.org/js/ language/es4/index.html). Neben den klassenbasierten Programmiertechniken, die in ActionScript 2.0 zur Verfgung stehen (siehe Neues objektorientierteres Programmiermodell auf Seite 25), wurden andere Funktionen hinzugefgt und bestimmte Verhalten gendert. Wenn Sie fr Flash Player 7 verffentlichen und ActionScript 2.0 verwenden, knnen Sie einen Objekttyp in einen anderen konvertieren. Weitere Informationen finden Sie unter Objekte umwandeln auf Seite 43. Bei diesen Funktionalitten ist es nicht erforderlich, vorhandene Skripts zu aktualisieren. Mglicherweise mchten Sie sie jedoch nutzen, wenn Sie Ihre Skripts fr Flash Player 7 verffentlichen, und sie dann berarbeiten und verbessern. Im Gegensatz zu den oben erwhnten nderungen knnen die in der folgenden Tabelle aufgefhrten nderungen (von denen einige ebenfalls die ECMA-Konformitt verbessern) dazu fhren, dass bereits vorhandene Skripts anders funktionieren als frher. Wenn Sie diese Funktionen in vorhandenen Skripts verwendet haben, die Sie fr Flash Player 7 verffentlichen mchten, sollten Sie die nderungen berprfen und so sicherstellen, dass der Code immer noch wie gewnscht ausgefhrt wird, oder bestimmen, ob der Code neu geschrieben werden muss. Insbesondere sollten Sie alle Variablen in Skripts, die Sie nach Flash Player 7 portieren, initialisieren, da undefined in bestimmten Fllen anders ausgewertet wird.
Fr Flash Player 7 verffentlichte SWF-Dateien Fr frhere Flash Player-Versionen verffentlichte SWF-Dateien Gro- und Kleinschreibung wird untersttzt (Variablennamen, die sich nur in der Groschreibung unterscheiden, werden als verschiedene Variablen interpretiert). Diese nderung betrifft auch Dateien, die mit #include, sowie externe Variablen, die mit LoadVars.load() geladen wurden. Weitere Informationen finden Sie unter Gro- und Kleinschreibung auf Seite 32. Die Auswertung von undefined in einem numerischen Kontext gibt NaN zurck.
meineAnzahl +=1; trace(meineAnzahl); // NaN

Gro- und Kleinschreibung wird nicht untersttzt (Variablennamen, die sich nur in der Groschreibung unterscheiden, werden als gleiche Variablen interpretiert).

Die Auswertung von undefined in einem numerischen Kontext gibt 0 zurck.


meineAnzahl +=1; trace(meineAnzahl); // 1

Wenn undefined in einen String umgewandelt wird, lautet das Ergebnis undefined.
firstname = "Johanna "; lastname = "Fischer"; trace(firstname + middlename + lastname); // Johanna undefinedFischer

Bei der Umwandlung in einen String ergibt undefined "" (einen leeren String).
firstname = "Johanna "; lastname = "Fischer"; trace(firstname + middlename + lastname); // Johanna Fischer

18

Kapitel 1: Was ist neu in Flash MX 2004 ActionScript

Fr Flash Player 7 verffentlichte SWF-Dateien Fr frhere Flash Player-Versionen verffentlichte SWF-Dateien Wenn Sie einen String in einen Booleschen Wert konvertieren, ist das Ergebnis true, sofern der String eine Lnge von mehr als Null hat. Fr einen leeren String ist das Ergebnis false. Wenn Sie einen String in einen Booleschen Wert konvertieren, wird der String zuerst in eine Zahl konvertiert. Wenn diese Zahl ungleich Null ist, ist das Ergebnis true. Wenn die Zahl gleich Null ist, ist das Ergebnis false.

Die Festlegung der Array-Lnge kann nur mit einem Die Festlegung der Array-Lnge kann auch mit einem fehlerhaften Zahlen-String gltigen Zahlen-String erfolgen. Beispiel: 6" erfolgen. funktioniert, 6" oder 6xyz" funktionieren nicht.
mein_array=new Array(); mein_array[" 6"] ="x"; trace(mein_array.length); // 0 mein_array["6xyz"] ="x"; trace(mein_array.length); // 0 mein_array["6"] ="x"; trace(mein_array.length); // 7 mein_array=new Array(); mein_array[" 6"] ="x"; trace(mein_array.length); // 7 mein_array["6xyz"] ="x"; trace(mein_array.length); // 7 mein_array["6"] ="x"; trace(mein_array.length); // 7

Domnennamenregeln fr Einstellungen und lokale Daten In Flash Player 6 werden Regeln fr die bereinstimmung von Superdomnen standardmig verwendet, wenn auf lokale Einstellungen (z. B. Zugriffsberechtigungen fr eine Kamera oder ein Mikrofon) oder lokal permanente Daten (gemeinsame Objekte) zugegriffen wird. Das heit, die Einstellungen und Daten fr SWF-Dateien, die unter hier.xyz.com, dort.xyz.com und xyz.com gehostet werden, werden gemeinsam genutzt und unter xyz.com gespeichert. In Flash Player 7 werden standardmig Regeln fr die exakte bereinstimmung von Domnen verwendet. Das heit, die Einstellungen und Daten, die unter hier.xyz.com gehostet werden, sind unter hier.xyz.com gespeichert, die Einstellungen und Daten, die unter dort.xyz.com gehostet werden, sind unter dort.xyz.com gespeichert usw. Mit der neuen Eigenschaft System.exactSettings knnen Sie festlegen, welche Regeln verwendet werden sollen. Diese Eigenschaft wird fr Dateien untersttzt, die fr Flash Player 6 oder hher verffentlicht wurden. Fr Flash Player 6 verffentlichte Dateien besitzen den Standardwert false, d. h. die Regeln fr die bereinstimmung von Superdomnen werden verwendet. Fr Flash Player 7 verffentlichte Dateien besitzen den Standardwert true, d. h. die Regeln fr die exakte bereinstimmung von Domnen werden verwendet. Wenn Sie Einstellungen oder permanente lokale Daten verwenden und eine Flash Player 6-SWFDatei fr Flash Player 7 verffentlichen mchten , mssen Sie diesen Wert in der portierten Datei mglicherweise auf false setzen. Weitere Informationen finden Sie unter System.exactSettings auf Seite 679.

Vorhandene Skripts nach Flash Player 7 portieren

19

Zugriff zwischen SWF-Dateien unterschiedlicher Domnen und Subdomnen Wenn Sie mehrere SWF-Dateien erstellen, die miteinander kommunizieren - z. B. bei der Verwendung von loadMovie(), MovieClip.loadMovie(), MovieClipLoader.LoadClip() oder Local Connection-Objekten - knnen Sie die Filme in unterschiedlichen Domnen oder in unterschiedlichen Subdomnen einer einzelnen Superdomne bereitstellen. In Dateien, die fr Flash Player 5 oder frher verffentlicht wurden, gab es keine Einschrnkungen fr den Zugriff auf unterschiedliche Domnen oder auf Subdomnen. In Dateien, die fr Flash Player 6 verffentlicht wurden, konnten Sie mit der LocalConnection.allowDomain-Prozedur oder der System.security.allowDomain()Methode den erlaubten Zugriff auf unterschiedliche Domnen festlegen (z. B. damit auf eine Datei unter eineSite.com von einer anderen Datei unter eineAndereSite.com zugegriffen werden kann). Fr den Zugriff auf unterschiedliche Subdomnen wurde kein Befehl bentigt (beispielsweise konnte auf eine Datei unter www.eineSite.com von einer anderen Datei unter speicher.eineSite.com zugegriffen werden). Bei Dateien, die fr Flash Player 7 verffentlicht wurden, gibt es beim Zugriff zwischen SWFDateien zwei Unterschiede gegenber den Vorgngerversionen. Erstens implementiert Flash Player 7 Regeln fr die exakte bereinstimmung von Domnen anstelle von Regeln fr die bereinstimmung von Superdomnen. Deshalb muss die Datei, auf die zugegriffen wird (auch wenn sie fr eine Vorgngerversion von Flash Player 7 verffentlicht wurde) den Zugriff zwischen Domnen oder Subdomnen explizit erlauben. Dieses Thema wird unten behandelt. Zweitens muss eine Datei, die auf einer Site mit einem sicheren Protokoll (HTTPS) bereitgestellt wird, den Zugriff durch eine Datei, die auf einer Site mit einem unsicheren Protokoll (HTTP oder FTP) bereitgestellt wird, explizit erlauben. Dieses Thema wird im nchsten Abschnitt behandelt (siehe HTTP-zu-HTTPS-Protokollzugriff zwischen SWF-Dateien auf Seite 22). Da Flash Player 7 Regeln fr die exakte bereinstimmung von Domnen anstelle von Regeln fr die bereinstimmung von Superdomnen implementiert, mssen Sie bereits vorhandene Skripts mglicherweise ndern, wenn auf sie durch Dateien zugegriffen werden soll, die fr Flash Player 7 verffentlicht wurden. (Sie knnen die genderten Dateien noch immer fr Flash Player 6 verffentlichen.) Wenn Sie LocalConnection.allowDomain()- oder System.security.allowDomain()-Anweisungen in Ihren Dateien verwendet und Superdomnen zugelassen haben, mssen Sie die Parameter so ndern, dass stattdessen exakte Domnen angegeben werden. Der folgende Code enthlt ein Beispiel fr die Arten von nderungen, die mglicherweise durchzufhren sind:
// Flash Player 6-Befehle in einer SWF-Datei unter www.eineAlteSite.com, // um den Zugriff durch SWF-Dateien zu erlauben, die unter www.eineSite.com // oder speicher.eineSite.com bereitgestellt werden System.security.allowDomain("eineSite.com"); meine_lc.allowDomain = function(sendendeDomaene) { return(sendendeDomaene=="eineSite.com"); } // Entsprechende Befehle, um den Zugriff durch SWF-Dateien zu erlauben, // die fr Flash Player 7 verffentlicht wurden System.security.allowDomain("www.eineSite.com", "speicher.eineSite.com"); meine_lc.allowDomain = function(sendendeDomaene) { return(sendendeDomaene=="www.eineSite.com" || sendendeDomaene=="speicher.eineSite.com"); }

20

Kapitel 1: Was ist neu in Flash MX 2004 ActionScript

Mglicherweise mssen Sie solche Anweisungen Ihren Dateien auch dann hinzufgen, wenn Sie diese gegenwrtig nicht verwenden. Wenn die SWF-Datei beispielsweise unter www.eineSite.com bereitgestellt wird, und Sie den Zugriff durch eine SWF-Datei erlauben mchten, die fr Flash Player 7 unter speicher.eineSite.com verffentlicht wurde, mssen Sie Anweisungen wie die folgenden zur Datei unter www.eineSite.com hinzufgen (Sie knnen die Datei unter www.eineSite.com dennoch fr Flash Player 6 verffentlichen):
System.security.allowDomain("speicher.eineSite.com"); meine_lc.allowDomain = function(sendendeDomaene) { return(sendendeDomaene=="speicher.eineSite.com"); }

Zusammenfassend bedeutet dies, dass Sie Ihre Dateien mglicherweise anpassen und allowDomain-Anweisungen hinzufgen oder ndern mssen, wenn Sie Dateien fr Flash Player 7 verffentlichen, die folgende Bedingungen erfllen:

Sie haben SWF-bergreifende Skripts (erstellt mit loadMovie(), MovieClip.loadMovie(),


oder Local Connection-Objekten) implementiert. Die aufgerufene SWF-Datei wird nicht auf einer Site mit einem sicheren Protokoll (HTTPS) bereitgestellt, oder sowohl die aufrufende als auch die aufgerufene SWF-Datei werden auf HTTPS-Sites bereitgestellt. (Informationen fr den Fall, dass sich nur die aufgerufene SWFDatei auf einer HTTPS-Site befindet, finden Sie unter HTTP-zu-HTTPS-Protokollzugriff zwischen SWF-Dateien auf Seite 22.) Die SWF-Dateien befinden sich nicht in derselben Domne (eine Datei befindet sich z. B. unter www.domaene.com und die andere unter speicher.domaene.com).
MovieClipLoader.LoadClip()

Sie mssen folgende nderungen vornehmen:

Wenn die aufgerufene SWF-Datei fr Flash Player 7 verffentlicht wird, fgen Sie
System.security.allowDomain oder LocalConnection.allowDomain mit exakter bereinstimmung von Domnennamen in die aufgerufene SWF-Datei ein. Wenn die aufgerufene SWF-Datei fr Flash Player 6 verffentlicht wird, fgen Sie eine System.security.allowDomain- oder LocalConnection.allowDomain-Anweisung mit exakter bereinstimmung von Domnennamen ein bzw. ndern eine solche Anweisung entsprechend, wie in den Codebeispielen weiter oben in diesem Abschnitt dargestellt. Die genderte Datei kann fr Flash Player 6 oder 7 verffentlicht werden. Wenn die aufgerufene SWF-Datei fr Flash Player 5 oder frher verffentlicht wurde, portieren Sie die aufgerufene Datei nach Flash Player 6 oder 7 und fgen eine System.security.allowDomain-Anweisung mit exakter bereinstimmung von Domnennamen hinzu, wie in den Codebeispielen weiter oben in diesem Abschnitt dargestellt. (LocalConnection-Objekte werden in Flash Player 5 oder frher nicht untersttzt.)

Vorhandene Skripts nach Flash Player 7 portieren

21

HTTP-zu-HTTPS-Protokollzugriff zwischen SWF-Dateien Wie im vorherigen Abschnitt erlutert, haben sich die Regeln fr den Zugriff zwischen Domnen und auf Subdomnen in Flash Player 7 gendert. Zustzlich zu den implementierten Regeln fr die exakte bereinstimmung von Domnennamen mssen Sie den Zugriff auf Dateien, die auf Sites mit einem sicheren Protokoll (HTTPS) bereitgestellt werden, durch Dateien, die auf Sites mit einem unsicheren Protokoll bereitgestellt werden, explizit erlauben. Abhngig davon, ob die aufgerufene Datei fr Flash Player 7 oder Flash Player 6 verffentlicht wird, mssen Sie eine der beiden allowDomain-Anweisungen (siehe Zugriff zwischen SWF-Dateien unterschiedlicher Domnen und Subdomnen auf Seite 20) implementieren, oder die neue LocalConnection.allowInsecure Domain- bzw. System.security.allowInsecureDomain()-Anweisung verwenden.
Warnung: Die Implementierung einer allowInsecureDomain()-Anweisung beeintrchtigt die durch das HTTPS-Protokoll gebotene Sicherheit. Sie sollten diese nderungen nur dann durchfhren, wenn Sie die Site nicht so umstrukturieren knnen, dass alle SWF-Dateien ber das HTTPS-Protokoll bereitgestellt werden.

Der folgende Code enthlt ein Beispiel fr die Arten von nderungen, die mglicherweise durchzufhren sind:
// Befehle in einer Flash Player 6-SWF-Datei unter https://www.eineSite.com, // um den Zugriff durch Flash Player 7-SWF-Dateien zu erlauben, die // unter http://www.eineSite.com oder http://www.eineAndereSite.com bereitgestellt werden System.security.allowDomain("eineAndereSite.com"); meine_lc.allowDomain = function(sendendeDomaene) { return(sendendeDomaene=="eineAndereSite.com"); } // Entsprechende Befehle in einer Flash Player 7-SWF-Datei, // um den Zugriff durch Flash Player 7-SWF-Dateien zu erlauben, die // unter http://www.eineSite.com oder http://www.eineAndereSite.com bereitgestellt werden System.security.allowInsecureDomain("www.eineSite.com", "www.eineAndereSite.com"); mein_lc.allowInsecureDomain = function(sendendeDomaene) { return(sendendeDomaene=="www.eineSite.com" || sendendeDomaene=="www.eineAndereSite.com"); }

Mglicherweise mssen Sie solche Anweisungen Ihren Dateien auch dann hinzufgen, wenn Sie diese gegenwrtig nicht verwenden. Eine nderung kann auch dann erforderlich sein, wenn beide Dateien sich in derselben Domne befinden (z. B. ruft eine Datei unter http:// www.domaene.com eine Datei unter https://www.domaene.com auf ). Zusammenfassend bedeutet dies, dass Sie Ihre Dateien mglicherweise anpassen und Anweisungen hinzufgen oder ndern mssen, wenn Sie Dateien fr Flash Player 7 verffentlichen, die folgende Bedingungen erfllen:

Sie haben SWF-bergreifende Skripts (erstellt mit loadMovie(), MovieClip.loadMovie(),


oder Local Connection-Objekten) implementiert. Der Host der aufrufenden Datei verwendet nicht das HTTPS-Protokoll. Die aufgerufene Datei verwendet HTTPS.
MovieClipLoader.LoadClip()

Sie mssen folgende nderungen vornehmen:

22

Kapitel 1: Was ist neu in Flash MX 2004 ActionScript

Wenn die aufgerufene Datei fr Flash Player 7 verffentlicht wird, fgen Sie
oder LocalConnection.allowInsecureDomain mit exakter bereinstimmung von Domnennamen in die aufgerufene Datei ein, wie in den Codebeispielen weiter oben in diesem Abschnitt dargestellt. Diese Anweisung ist auch dann erforderlich, wenn sich die aufrufende und die aufgerufene Datei in derselben Domne befinden. Wurde die aufgerufene Datei fr Flash Player 6 oder frher verffentlicht und sowohl die aufrufende als auch die aufgerufene Datei befinden sich in derselben Domne (z. B. ruft eine Datei unter http://www.domaene.com eine Datei unter https://www.domaene.com auf ), ist keine nderung notwendig. Wenn die aufgerufene Datei fr Flash Player 6 verffentlicht wurde, die Dateien sich nicht in derselben Domne befinden und die aufgerufene Datei nicht nach Flash Player 7 portiert werden soll, bearbeiten Sie die aufgerufene Datei, um eine System.security.allowDomainoder LocalConnection.allowDomain-Anweisung mit exakter bereinstimmung von Domnennamen hinzuzufgen oder zu ndern, wie in den Codebeispielen weiter oben in diesem Abschnitt dargestellt. Wenn die aufgerufene Datei fr Flash Player 6 verffentlicht wurde und nach Flash Player 7 portiert werden soll, fgen Sie System.security.allowInsecureDomain oder LocalConnection.allowInsecureDomain mit exakter bereinstimmung von Domnennamen in die aufgerufene Datei ein, wie in den Codebeispielen weiter oben in diesem Abschnitt dargestellt. Diese Anweisung ist auch dann erforderlich, wenn sich beide Dateien in derselben Domne befinden. Wenn die aufgerufene Datei fr Flash Player 5 oder frher verffentlicht wurde und sich die beiden Dateien nicht in derselben Domne befinden, haben Sie zwei Mglichkeiten. Sie knnen entweder die aufgerufene Datei nach Flash Player 6 portieren und eine System.security.allowDomain-Anweisung mit exakter bereinstimmung von Domnennamen hinzufgen bzw. eine solche Anweisung entsprechend ndern, wie in den Codebeispielen oben in diesem Abschnitt dargestellt, oder Sie portieren die aufgerufene Datei nach Flash Player 7 und fgen eine System.security.allowInsecureDomain-Anweisung mit exakter bereinstimmung von Domnennamen ein, wie in den Codebeispielen oben in diesem Abschnitt dargestellt.
System.security.allowInsecureDomain

Serverseitige Richtliniendateien fr das Zulassen von Datenzugriff Flash-Dokumente knnen mit Hilfe eines der folgenden Aufrufe Daten aus externen Quellen laden: XML.load(), XML.sendAndLoad(), LoadVars.load(), LoadVars.sendAndLoad(), loadVariables(), loadVariablesNum(), MovieClip.loadVariables(), XMLSocket.connect() und Macromedia Flash Remoting (NetServices.createGatewayConnection). Darber hinaus knnen SWF-Dateien Runtime Shared Libraries (RSLs) oder in einer anderen SWF-Datei definierte Bestnde zur Laufzeit importieren. Standardmig mssen sich die Daten oder die RSLs in derselben Domne befinden wie die SWF-Datei, die diese externen Daten oder Medien ldt. Um Runtime Shared Library-Daten und -Bestnde fr SWF-Dateien in verschiedenen Domnen zur Verfgung zu stellen, sollten Sie eine domnenbergreifende Richtliniendatei verwenden. Eine domnenbergreifende Richtliniendatei ist eine XML-Datei, mit der der Server angeben kann, dass seine Daten und Dokumente fr SWF-Dateien bestimmter Domnen oder aller Domnen verfgbar sind. Jede SWF-Datei, die von einer in der Richtliniendatei des Servers festgelegten Domne bereitgestellt wird, kann auf Daten oder RSLs dieses Servers zugreifen.

Vorhandene Skripts nach Flash Player 7 portieren

23

Falls Sie externe Daten laden, sollten Sie auch dann Richtliniendateien erstellen, wenn keine Dateien nach Flash Player 7 portiert werden sollen. Falls Sie RSLs verwenden, sollten Sie Richtliniendateien erstellen, wenn die aufrufende oder die aufgerufene Datei fr Flash Player 7 verffentlicht wird. Weitere Informationen finden Sie unter Domnenbergreifendes Laden von Daten ermglichen auf Seite 213.

nderungen im ActionScript-Editor
Der ActionScript-Editor wurde auf verschiedene Weise aktualisiert und ist nun sowohl robuster als auch leichter anzuwenden. In diesem Abschnitt werden diese nderungen zusammengefasst. Zum Aktivieren bzw. Deaktivieren des Zeilenumbruchs knnen Sie jetzt im Skriptfenster und in den Bedienfeldern Debugger und Ausgabe das Popupmen Optionen verwenden. Sie knnen den Zeilenumbruch auch ber das Popupmen im Bedienfeld Aktionen ein- oder ausschalten. Die Tastenkombination lautet <Strg>+<Umschalt>+<W> (Windows) bzw. <Befehlstaste>+ <Umschalt>+<W> (Macintosh).
Zeilenumbruch Kontextsensitive Hilfe anzeigen

Wenn sich der Mauszeiger in der Werkzeugleiste Aktionen oder im Skriptfenster auf einem Element der ActionScript-Sprache befindet, knnen Sie mit dem Element Hilfe anzeigen im Kontextmen eine Hilfeseite zu diesem Element anzeigen.

Skripts importieren Wenn Sie im Bedienfeld Aktionen im Popupmen die Option Skript importieren auswhlen, wird das importierte Skript an der Position des Mauszeigers (der Einfgemarke) in Ihrer Codedatei in das Skript eingefgt. In frheren Versionen von Flash wurde der Inhalt des vorhandenen Skripts beim Importieren eines Skripts berschrieben. Haltepunkte durch einfaches Klicken

Sie knnen im Bedienfeld Debugger oder im Skriptfenster einen Haltepunkt setzen, indem Sie einfach neben der gewnschten Codezeile auf den linken Rand klicken. In frheren Versionen von Flash wurde eine Codezeile markiert, wenn Sie auf den linken Rand geklickt haben. Um jetzt eine Codezeile zu markieren, klicken Sie bei gedrckter Taste <Strg> (Windows) bzw. gedrckter Befehlstaste (Macintosh) auf den linken Rand. In frheren Versionen von Flash konnten Sie im Bedienfeld Aktionen entweder im Normalmodus arbeiten, in dem Sie Optionen und Parameter eingefgt haben, um Codes zu erstellen, oder im Expertenmodus, in dem Sie Befehle direkt im Skriptfenster hinzugefgt haben. In Flash MX 2004 und Flash MX Professional 2004 knnen Sie ber das Bedienfeld Aktionen einfach Befehle direkt dem Skriptfenster hinzufgen. Sie knnen weiterhin Befehle aus der Werkzeugleiste Aktionen in das Skriptfenster ziehen oder die Schaltflche Hinzufgen ber dem Skriptfenster verwenden, um einem Skript Befehle hinzuzufgen.

Bedienfeld Aktionen jetzt ohne Normalmodus und Expertenmodus

Sie knnen mehrere Skripts in einer FLA-Datei am unteren Rand des Skriptfensters im Bedienfeld Aktionen immer vorne anzeigen. In frheren Flash-Versionen konnten Sie jeweils nur ein Skript fixieren.
Mehrere Skripts immer vorne anzeigen

Das Bedienfeld Aktionen enthlt jetzt auf der linken Seite zwei Fenster: die Werkzeugleiste Aktionen und einen neuen Skript-Navigator. Der Skript-Navigator ist eine visuelle Darstellung der Struktur von FLA-Dateien. Hier knnen Sie durch Ihre FLA-Datei navigieren, um nach ActionScript-Code zu suchen.
Skript-Navigator

24

Kapitel 1: Was ist neu in Flash MX 2004 ActionScript

Integriertes Skriptfenster zur Bearbeitung von externen Dateien (nur Flash Professional) Sie knnen externe Skriptdateien mit dem ActionScript-Editor in

einem Skriptfenster (auerhalb des Bedienfelds Aktionen) schreiben und bearbeiten. Im Skriptfenster werden Syntaxfarbcodierungen, Codehinweise und andere Voreinstellungen untersttzt. Auerdem steht die Werkzeugleiste Aktionen zur Verfgung. Zum Anzeigen des Skriptfensters whlen Sie Datei > Neu, und whlen Sie anschlieend den externen Dateityp aus, den Sie bearbeiten mchten. Sie knnen mehrere externe Dateien gleichzeitig geffnet haben. Die Dateinamen werden auf Registerkarten am oberen Rand des Skriptfensters angezeigt. (Die Registerkarten werden nur unter Windows angezeigt.)

nderungen beim Debugging


In diesem Abschnitt werden nderungen zum verbesserten Debuggen Ihrer Skripts beschrieben.
Ausgabefenster in Bedienfeld Ausgabe gendert

Sie knnen jetzt das Bedienfeld Ausgabe wie jedes andere Bedienfeld in Flash verschieben und andocken.

Verbesserte Fehlerberichtausgabe zur Kompilierungszeit Neben der robusteren Behandlung von Ausnahmefehlern bietet ActionScript 2.0 eine Reihe von neuen Fehlermeldungen zur Kompilierungszeit. Weitere Informationen finden Sie in Anhang A, Fehlermeldungen, auf Seite 799. Verbesserte Ausnahmebehandlung Mit der Error-Klasse und den Befehlen throw und try..catch..finally knnen Sie eine robustere Ausnahmebehandlung implementieren.

Neues objektorientierteres Programmiermodell


Seit ihrer Einfhrung vor einigen Jahren ist die ActionScript-Sprache gewachsen und weiterentwickelt worden. In jeder neuen Version von Flash wurden zustzliche Schlsselwrter, Objekte, Methoden und andere Sprachelemente hinzugefgt. Im Gegensatz zu frheren Versionen von Flash werden in Flash MX 2004 und Flash MX Professional 2004 jedoch erstmals mehrere Sprachelemente eingefhrt, bei denen ein standardisierteres objektorientiertes Programmieren implementiert wird. Da diese Sprachelemente eine erhebliche Verbesserung der Kernelemente von ActionScript darstellen, bilden sie eine neue Version von ActionScript selbst: ActionScript 2.0. ActionScript 2.0 ist keine neue Sprache. Es umfasst vielmehr einen Kernsatz an Sprachelementen, durch die die Entwicklung von objektorientierten Programmen vereinfacht wird. Durch die Einfhrung von Schlsselwrtern wie z. B. class, interface, extends, implements und anderen wird Programmierern, die mit anderen Sprachen vertraut sind, das Erlernen der ActionScript-Syntax erleichtert. Neue Programmierer knnen standardisiertere Terminologie erlernen, die sie zuknftig auch auf andere objektorientierte Sprachen anwenden knnen. ActionScript 2.0 untersttzt alle Standardelemente der ActionScript-Sprache. Dadurch knnen Sie Skripts schreiben, die nher an den Standards anderer objektorientierter Sprachen wie z. B. Java liegen. ActionScript 2.0 ist vor allem fr Entwickler mit durchschnittlichen oder fortgeschrittenen Kenntnissen beim Erstellen von Anwendungen interessant, fr die eine Implementierung von Klassen und Unterklassen erforderlich ist. Mit ActionScript 2.0 knnen Sie auerdem beim Erstellen von Variablen deren Objekttyp deklarieren (siehe Strikte Typisierung auf Seite 42). Darber hinaus werden erheblich verbesserte Compiler-Fehlerbehandlungen bereitgestellt (siehe Anhang A, Fehlermeldungen, auf Seite 799).

Neues objektorientierteres Programmiermodell

25

Im Folgenden sind die neuen Sprachelemente in ActionScript 2.0 aufgefhrt.

class extends implements interface dynamic static public private get set import

Zu den Schlsselfunktionen von ActionScript 2.0 gehren folgende Punkte:

Skripts, die ActionScript 2.0 zum Definieren von Klassen oder Oberflchen verwenden,
mssen als externe Skriptdateien mit einer in jedem Skript einzeln definierten Klasse gespeichert werden, d. h., dass Klassen und Oberflchen nicht im Bedienfeld Aktionen definiert werden knnen. Sie knnen einzelne Klassendateien implizit importieren, indem Sie sie in einem durch globale oder dokumentspezifische Suchpfade angegebenen Ordner speichern und danach in einem Skript verwenden, oder explizit importieren, indem Sie den Befehl import verwenden. Pakete (Sammlungen von Klassendateien in einem Verzeichnis) knnen Sie mit Platzhaltern importieren. Anwendungen, die mit ActionScript 2.0 entwickelt wurden, werden von Flash Player ab Version 6 untersttzt.

Vorsicht: Die standardmige Verffentlichungseinstellung fr neu erstellte Dateien in Flash MX 2004 ist ActionScript 2.0. Wenn Sie eine bereits vorhandene FLA-Datei so ndern mchten, dass die ActionScript 2.0-Syntax verwendet wird, vergewissern Sie sich, dass ActionScript 2.0 in den Verffentlichungseinstellungen der FLA-Datei festgelegt ist. Ist dies nicht der Fall, wird die Datei fehlerhaft kompiliert, obwohl Flash keine Compiler-Fehler ausgibt.

Weitere Informationen zur Verwendung von ActionScript 2.0 zum Schreiben von objektorientierten Programmen in Flash finden Sie in Kapitel 9, Klassen mit ActionScript 2.0 erstellen, auf Seite 173.

26

Kapitel 1: Was ist neu in Flash MX 2004 ActionScript

KAPITEL 2 ActionScript-Grundlagen

Die Grammatik- und Zeichensetzungsregeln der ActionScript-Sprache legen fest, welche Zeichen und Wrter sinnvoll verwendet und in welcher Reihenfolge sie geschrieben werden knnen. Im Deutschen steht am Satzende beispielsweise ein Punkt, whrend das Ende einer Anweisung in ActionScript durch ein Semikolon (Strichpunkt) gekennzeichnet ist. Die im Folgenden beschriebenen Regeln gelten fr alle ActionScript-Anweisungen. Darber hinaus erfordern die meisten ActionScript-Begriffe die Einhaltung bestimmter Syntaxregeln, die Sie unter den jeweiligen Eintrgen in Kapitel 12, ActionScript-Lexikon, auf Seite 229 nachlesen knnen.

Unterschiede zwischen ActionScript und JavaScript


ActionScript weist groe hnlichkeit mit JavaScript-Programmiersprache auf. Sie brauchen JavaScript nicht zu beherrschen, um ActionScript erlernen und einsetzen zu knnen. Wenn Sie jedoch mit JavaScript vertraut sind, wird Ihnen ActionScript gleich bekannt vorkommen. Dieses Handbuch ist lediglich als allgemeine Einfhrung in die Grundlagen der Anwendungsprogrammierung vorgesehen. Informationen ber grundlegende Programmierverfahren und die JavaScript-Sprache finden Sie in einer Vielzahl anderer Quellen.

Die Vereinigung europischer Computerhersteller (ECMA) hat ein Dokument mit dem Titel
ECMA-262 herausgegeben, das die JavaScript-Sprache beschreibt und als internationaler Standard fr JavaScript dient. ActionScript basiert auf der ECMA-262-Spezifikation. Netscape DevEdge Online unterhlt eine Website namens JavaScript Developer Central (http://developer.netscape.com/tech/javascript/index.html), auf der Dokumentationen und weiterfhrende Artikel zum Thema ActionScript zu finden sind. Besonders zu empfehlen ist in diesem Zusammenhang der Core JavaScript Guide.

Die folgende Liste enthlt einen berblick ber einige der wesentlichen Unterschiede zwischen ActionScript und JavaScript:

ActionScript bietet keine Untersttzung fr browserspezifische Objekte wie Document,


Window und Anchor.

In ActionScript werden nicht alle integrierten JavaScript-Objekte vollstndig untersttzt. Einige JavaScript-Syntaxkonstrukte, wie zum Beispiel Anweisungsbezeichnungen, werden in
ActionScript nicht untersttzt. In ActionScript kann die Aktion eval() nur Variablenverweise ausfhren.

27

Unicode-Untersttzung fr ActionScript
Macromedia Flash MX 2004 und Macromedia Flash MX Professional 2004 untersttzen die Unicode-Textcodierung fr ActionScript. Das bedeutet, dass Sie in ActionScript-Dateien Text in verschiedenen Sprachen verwenden knnen. So knnen Sie beispielsweise englischen, japanischen und franzsischen Text in derselben Datei verwenden. Sie knnen ActionScript-Voreinstellungen festlegen, um den zu verwendenden Kodierungstyp beim Importieren oder Exportieren von ActionScript-Dateien anzugeben. Sie haben die Auswahl zwischen UTF-8-Kodierung und Standardkodierung. UTF-8 ist ein 8-Bit-Unicode-Format; die Standardkodierung ist die Kodierung, die von der von Ihrem System verwendeten Sprache untersttzt wird. Sie wird auch als traditionelle Codeseite bezeichnet. Im Allgemeinen verwenden Sie beim Importieren oder Exportieren von ActionScript-Dateien im UTF-8-Format die Voreinstellung UTF-8. Beim Importieren oder Exportieren von Dateien in der traditionellen Codeseite, die in Ihrem System verwendet wird, verwenden Sie die Voreinstellung Standardkodierung. Wenn der Text in Ihren Skripts beim ffnen oder Importieren einer Datei nicht wie erwartet aussieht, ndern Sie die Voreinstellung zur Importkodierung. Wenn beim Exportieren von ActionScript-Dateien eine Warnmeldung angezeigt wird, knnen Sie die Voreinstellung zur Exportkodierung ndern oder diese Warnmeldung in den ActionScript-Voreinstellungen deaktivieren.
So whlen Sie Textkodierungsoptionen zum Importieren oder Exportieren von ActionScript-Dateien aus:

1 Klicken Sie im Dialogfeld Voreinstellungen (Bearbeiten > Voreinstellungen) auf die

Registerkarte ActionScript.
2 Fhren Sie unter Bearbeitungsoptionen einen oder beide der folgenden Schritte aus:

Whlen Sie fr die Option ffnen/Importieren den Eintrag UTF-8, um beim ffnen oder Importieren die Unicode-Kodierung zu verwenden, oder whlen Sie Standardkodierung, um beim ffnen oder Importieren die Kodierungsform der Sprache zu verwenden, die momentan in Ihrem System verwendet wird. Whlen Sie fr die Option Speichern/Exportieren den Eintrag UTF-8, um beim Speichern oder Exportieren die Unicode-Kodierung zu verwenden, oder whlen Sie Standardkodierung, um beim Speichern oder Exportieren die Kodierungsform der Sprache zu verwenden, die momentan in Ihrem System verwendet wird.

So aktivieren oder deaktivieren Sie die Warnung zur Exportkodierung:

1 Klicken Sie im Dialogfeld Voreinstellungen (Bearbeiten > Voreinstellungen) auf die

Registerkarte Warnungen. 2 Aktivieren oder deaktivieren Sie Warnmeldung bei Kodierungskonflikten beim Export von .as-Dateien.
Vorsicht: Der Befehl Film testen (siehe Skripts debuggen auf Seite 75) schlgt fehl, wenn ein beliebiger Teil des SWF-Dateipfads Zeichen enthlt, die nicht mit dem MBCS-Codiersystem dargestellt werden knnen. Japanische Pfade funktionieren beispielsweise nicht auf einem englischen System. Diese Einschrnkung gilt fr alle Anwendungsbereiche, die den externen Player verwenden.

28

Kapitel 2: ActionScript-Grundlagen

Terminologie
Wie in jeder Skriptsprache wird auch in ActionScript eine spezielle Terminologie verwendet. In der folgenden Liste finden Sie eine bersicht ber wichtige ActionScript-Begriffe. sind Anweisungen, die ein bestimmtes Verhalten in einer wiedergegebenen SWF-Datei bewirken. gotoAndStop() beispielsweise bewegt den Abspielkopf in ein bestimmtes Bild oder an eine bestimmte Bezeichnung. In diesem Handbuch sind die Begriffe Aktion und Anweisung austauschbar.
Aktionen Boolescher Wert

ist ein Ergebniswerttyp (true oder false).

Klassen sind Datentypen, die Sie erstellen knnen, um einen neuen Objekttyp zu definieren. Eine Klasse wird mit Hilfe des Schlsselworts class in einer externen Skriptdatei definiert (jedoch nicht in einem Skript, das Sie im Bedienfeld Aktionen schreiben). Konstanten

sind Elemente mit unvernderlichem Wert. Die Konstante key.TAB beispielsweise hat stets dieselbe Bedeutung und bezeichnet die Tabulatortaste einer Tastatur. Konstanten eignen sich hervorragend zum Vergleichen von Werten.

Konstruktoren sind Funktionen, mit denen Sie die Eigenschaften und Methoden einer Klasse definieren knnen. Laut Definition sind Konstruktoren Funktionen innerhalb einer Klassendefinition, die denselben Namen wie die Klasse haben. Der folgende Code definiert beispielsweise die Circle-Klasse und implementiert eine Konstruktorfunktion: // Datei Circle.as class Circle { private var radius:Number private var circumference:Number // Konstruktor function Circle(radius:Number) { circumference = 2 * Math.PI * radius; } }

Der Begriff Konstruktor wird auerdem verwendet, wenn Sie ein Objekt erstellen (instanziieren), das auf einer bestimmten Klasse basiert. Die folgenden Anweisungen sind Konstruktoren fr die integrierte Array-Klasse und die benutzerdefinierte Circle-Klasse:
mein_array:Array = new Array(); mein_circle:Circle = new Circle(); Datentypen

beschreiben die Art der Informationen, die eine Variable oder ein ActionScriptElement enthalten kann. ActionScript kennt die folgenden Datentypen: String, Zahl, Boolescher Wert, Objekt, Movieclip, Funktion, Null und Nicht definiert. Weitere Informationen hierzu finden Sie unter Datentypen auf Seite 37. sind Aktionen, die whrend der Wiedergabe einer SWF-Datei auftreten. Sie werden beispielsweise erzeugt, wenn ein Movieclip geladen wird, der Abspielkopf ein bestimmtes Bild erreicht oder der Benutzer auf eine Schaltflche oder einen Movieclip klickt bzw. eine Taste drckt.

Ereignisse

Terminologie

29

sind spezielle Aktionen, die Ereignisse wie mouseDown oder load verwalten. Flash kennt zwei Arten von Ereignisprozeduren, nmlich Ereignisprozedurmethoden und Ereignis-Listener. (Es gibt auch zwei Ereignisprozeduren, on() und onClipEvent(), die Sie Schaltflchen und Movieclips direkt zuweisen knnen.) Im Bedienfeld Aktionen weist jedes ActionScript-Objekt, das ber Ereignisprozedurmethoden oder Ereignis-Listener verfgt, eine Unterkategorie namens Ereignisse oder Listener auf. Einige Befehle knnen sowohl als Ereignisprozeduren als auch als Ereignis-Listener verwendet werden. Sie sind in beiden Unterkategorien enthalten.
Ereignisprozeduren Ausdrcke sind zulssige Kombinationen von ActionScript-Symbolen, die einen Wert darstellen, und setzen sich aus Operatoren und Operanden zusammen. Im Ausdruck x + 2 beispielsweise sind x und 2 Operanden, whrend es sich bei + um einen Operator handelt. Funktionen sind wiederverwendbare Codeblcke, die bergebene Parameter verarbeiten und einen Wert zurckgeben knnen. Weitere Informationen hierzu finden Sie unter Funktionen erstellen auf Seite 57.

sind Namen, mit denen auf Variablen, Eigenschaften, Objekte, Funktionen oder Methoden verwiesen wird. Diese Namen mssen mit einem Buchstaben, einem Unterstrich (_) oder einem Dollarzeichen ($) beginnen, drfen ansonsten jedoch neben diesen Zeichen auch Ziffern enthalten. Bei dem Bezeichner firstName beispielsweise handelt es sich um den Namen einer Variablen.
Bezeichner Instanzen sind Objekte, die zu einer bestimmten Klasse gehren. Jede Instanz einer Klasse enthlt alle dieser Klasse zugeordneten Eigenschaften und Methoden. Alle Movieclips sind beispielsweise Instanzen der integrierten MovieClip-Klasse, sodass Sie eine beliebige Methode oder Eigenschaft der MovieClip-Klasse bei jeder Movieclip-Instanz verwenden knnen. Instanznamen sind eindeutige Namen, mit denen Sie Movieclip- und Schaltflcheninstanzen in einem Skript gezielt ansprechen knnen. Sie werden den Instanzen auf der Bhne mit Hilfe des Eigenschafteninspektors zugewiesen. So knnten beispielsweise von einem Mastersymbol namens counter, das in der Bibliothek gespeichert ist, in einer SWF-Datei zwei Instanzen mit den Instanznamen scorePlayer1_mc und scorePlayer2_mc verwendet werden. Der folgende Code legt anhand von Instanznamen in allen Movieclip-Instanzen eine Variable namens score fest: _root.scorePlayer1_mc.score += 1; _root.scorePlayer2_mc.score -= 1;

Beim Benennen von Instanzen knnen Sie spezielle Suffixe verwenden, damit Codehinweise (siehe Codehinweise verwenden auf Seite 70) beim Eingeben des Codes angezeigt werden. Weitere Informationen finden Sie unter Suffixe zum Auslsen von Codehinweisen verwenden auf Seite 69.
Schlsselwrter sind reservierte Wrter, denen eine bestimmte Bedeutung zugewiesen ist. Das Schlsselwort var beispielsweise dient zum Deklarieren lokaler Variablen. Da Schlsselwrter nicht als Bezeichner verwendet werden drfen, ist var zum Beispiel kein zulssiger Variablenname. Eine Liste der Schlsselwrter finden Sie unter Schlsselwrter auf Seite 37.

30

Kapitel 2: ActionScript-Grundlagen

ist. Auerdem haben Sie die Mglichkeit, Funktionen zu erstellen, die als Methoden fr Objekte agieren, die auf integrierten Klassen oder von Ihnen erstellten Klassen basieren. Beispielsweise wird clear() im folgenden Code zu einer Methode fr das Objekt controller, das Sie zuvor definiert haben:
function reset(){ this.x_pos = 0; this.x_pos = 0; } controller.clear = reset; controller.clear(); Objekte

Methoden sind Funktionen, die mit einer Klasse verknpft sind. Beispielsweise ist getBytesLoaded() eine integrierte Methode, die mit der MovieClip-Klasse verknpft

sind Elemente mit bestimmten Eigenschaften und Methoden. Jedes Objekt weist einen eindeutigen Namen auf und ist eine Instanz einer bestimmten Klasse. Die ActionScript-Sprache verfgt ber eine Reihe integrierter (vordefinierter) Objekte. Das integrierte Date-Objekt beispielsweise dient zum Abfragen von Informationen der Systemuhr.

Operatoren sind Begriffe, die aus einem oder mehreren Werten einen neuen Wert errechnen. Der Additionsoperator (+) beispielsweise addiert zwei oder mehr Werte und gibt als neuen Wert deren Summe zurck. Die Werte, auf die ein Operator angewendet wird, bezeichnet man als Operanden. Parameter (oder Argumente) sind Platzhalter, mit deren Hilfe Sie Werte an eine Funktion bergeben knnen. Die folgende Funktion welcome() beispielsweise erhlt zwei Werte in Form der Parameter firstName und hobby: function welcome(firstName, hobby) { welcomeText = "Hallo " + firstName + ", ich sehe, Sie haben Freude am " + hobby; } Pakete sind Verzeichnisse, die eine oder mehrere Klassendateien enthalten und sich in einem bestimmten Classpath-Verzeichnis befinden (siehe Mit Classpath arbeiten auf Seite 189). Eigenschaften

sind Attribute, die ein Objekt definieren. Die Eigenschaft _visible ist beispielsweise eine Eigenschaft aller Movieclips, die bestimmt, ob ein Movieclip sichtbar ist oder nicht. sind hierarchische Adressen von Movieclip-Instanznamen, Variablen und Objekten in einer SWF-Datei. Der Name einer Movieclip-Instanz wird im Movieclip-Eigenschafteninspektor festgelegt. (Die Hauptzeitleiste weist immer den Namen _root auf.) Mit Hilfe eines Zielpfades knnen Sie eine Aktion einem bestimmten Movieclip zuordnen oder den Wert einer Variablen abfragen bzw. einstellen. Bei der folgenden Anweisung handelt es sich beispielsweise um den Zielpfad der Variablen volume im Movieclip stereoControl:

Zielpfade

_root.stereoControl.volume

Weitere Informationen zu Zielpfaden finden Sie unter Absolute und relative Zielpfade in der Hilfe Flash verwenden.

Terminologie

31

Variablen sind Bezeichner, die Werte beliebiger Datentypen enthalten knnen. Variablen knnen

erstellt, gendert und aktualisiert und die in ihnen gespeicherten Werte abgerufen und in Skripts verwendet werden. Im folgenden Beispiel sind die Bezeichner auf der linken Seite des Gleichheitszeichens Variablen:
var x = 5; var name = "Lolo"; var c_color = new Color(mcinstanceName);

Weitere Informationen zum Verwenden von Variablen finden Sie unter Variablen auf Seite 45.

Syntax
Wie jede Sprache gibt es auch bei ActionScript Syntaxregeln, die Sie befolgen mssen, um Skripts zu erstellen, die korrekt kompiliert und ausgefhrt werden knnen. In diesem Abschnitt werden die Elemente der ActionScript-Syntax beschrieben. Gro- und Kleinschreibung Bei Programmiersprachen, die zwischen Gro- und Kleinschreibung unterscheiden, gelten Variablen, die sich lediglich durch Gro- und Kleinschreibung voneinander unterscheiden (buch und Buch), als unterschiedliche Variablen. Es wird daher empfohlen, einmal aufgestellte Groschreibungsregeln (z. B. die in diesem Handbuch verwendeten Konventionen) konsequent einzuhalten, weil die Funktions- und Variablennamen in Ihren in ActionScript geschriebenen Skripts dadurch wesentlich leichter zu erkennen sind. Wenn Sie Dateien fr Flash Player 7 oder sptere Versionen verffentlichen, implementiert Flash die Unterscheidung zwischen Gro- und Kleinschreibung unabhngig davon, ob Sie ActionScript 1 oder ActionScript 2.0 verwenden. Dies bedeutet, dass fr alle Schlsselwrter, Klassennamen, Variablen, Methodennamen usw. die Gro- und Kleinschreibung beachtet werden muss. Beispiel:
// In Datei, die Flash Player 7 anspricht // und entweder ActionScript 1 oder ActionScript 2.0 // // Legt Eigenschaften von zwei verschiedenen Objekten fest cat.hilite = true; CAT.hilite = true; // Erstellt drei verschiedene Variablen, var meineVar=10; var meinevar=10; var mEinevAr=10; // Erzeugt keinen Fehler var array = new Array(); var date = new Date();

Diese nderung betrifft auch externe Variablen, die mit LoadVars.load() geladen wurden.

32

Kapitel 2: ActionScript-Grundlagen

Die Gro- und Kleinschreibung wird auerdem fr externe Skripts bercksichtigt, wie z. B. ActionScript 2.0-Klassendateien oder mit dem Befehl #include importierte Skripts. Sie sollten alle Dateien prfen und besttigen, dass Sie durchgehend die richtige Schreibweise verwendet haben, wenn Sie Dateien fr Flash Player 7 verffentlichen und zuvor erstellte externe Dateien mit der Anweisung #include zu Ihren Skripts hinzufgen. Eine Mglichkeit hierfr wre, die Datei im Skriptfenster (nur in Flash Professional) zu ffnen. Sie knnen auch in einer neuen FLA-Datei die Verffentlichungseinstellungen an Flash Player 7 adressieren und den Inhalt der Datei in das Bedienfeld Aktionen kopieren. Klicken Sie anschlieend auf die Schaltflche Syntax berprfen (siehe Syntax und Interpunktion berprfen auf Seite 74), oder verffentlichen Sie die Datei. Im Bedienfeld Ausgabe werden die Fehler angezeigt, die durch Namenskonflikte verursacht werden. Wenn die Option Syntaxfarbcodierungen aktiviert ist, werden korrekt geschriebene Sprachelemente automatisch blau dargestellt. Weitere Informationen hierzu finden Sie unter Schlsselwrter auf Seite 37 und Syntax hervorheben auf Seite 67. Punktsyntax In ActionScript verweist ein Punkt (.) auf die einem Objekt oder einem Movieclip zugeordneten Eigenschaften und Methoden. Auerdem dient er zur Angabe des Zielpfades bei Movieclips, Variablen, Funktionen und Objekten. Ein in der Punktsyntax geschriebener Ausdruck beginnt mit dem Namen des Objekts oder Movieclips, gefolgt von einem Punkt, und endet mit dem Element, das Sie spezifizieren mchten. Die Movieclipeigenschaft _x bezeichnet beispielsweise die x-Koordinate der Position eines Movieclips auf der Bhne. Der Ausdruck ballMC._x bezieht sich demnach auf die Eigenschaft _x der Movieclip-Instanz ballMC. Ein weiteres Beispiel: Die Variable submit wird im Movieclip form eingestellt, welcher wiederum im Movieclip shoppingCart verschachtelt ist. In diesem Fall setzt der Ausdruck shoppingCart.form.submit = true die Variable submit der Instanzform auf true. Nach demselben Muster wird auch die Methode eines Objekts oder Movieclips ausgedrckt. Die Methode play()der Movieclip-Instanz ball_mc in der folgenden Anweisung beispielsweise bewegt den Abspielkopf in der Zeitleiste von ball_mc.
ball_mc.play();

Die Punktsyntax kennt zwei spezielle Aliase: _root und _parent. Das Alias _root bezeichnet die Hauptzeitleiste. Mit dem Alias _root knnen Sie einen absoluten Zielpfad erzeugen. Die folgende Anweisung beispielsweise ruft die Funktion buildGameBoard() in den Movieclipfunctions in der Hauptzeitleiste auf:
_root.functions.buildGameBoard();

Das Alias _parent bezeichnet einen bergeordneten Movieclip, in dem das aktuelle Objekt verschachtelt ist. Mit dem Alias _parent knnen Sie einen relativen Zielpfad erzeugen. Wenn beispielsweise ein Movieclip dog_mc in einem Movieclip animal_mc verschachtelt ist, knnen Sie mit der folgenden Anweisung aus der Instanz dog_mc heraus den bergeordneten Movieclip animal_mc anhalten:
_parent.stop();

Syntax

33

Schrgstrichsyntax In Flash 3 und Flash 4 wurde der Zielpfad eines Movieclips oder einer Variablen in der Schrgstrichsyntax angegeben. Diese Syntax wird von Flash Player 7 zwar noch untersttzt, sollte aber nicht mehr verwendet werden. Die Schrgstrichsyntax wird von ActionScript 2.0 nicht untersttzt. Wenn Sie jedoch Inhalte erstellen, die speziell fr Flash Player 4 gedacht sind, mssen Sie die Schrgstrichsyntax verwenden. Weitere Informationen finden Sie unter Syntax mit Schrgstrichen verwenden auf Seite 815. Geschweifte Klammern Ereignisprozeduren, Klassendefinitionen und Funktionen von ActionScript werden in Blcken mit geschweiften Klammern ({}) gruppiert. Sie knnen die ffnende Klammer auf die gleiche Zeile setzen wie die Deklaration oder wie im folgenden Beispiel auf die nchste Zeile. Sie sollten sich fr ein Format entscheiden und sich konsequent daran halten, um die Lesbarkeit Ihres Codes zu verbessern.
// Ereignisprozedur on(release) { meinDatum = new Date(); aktuellerMonat = meinDatum.getMonth(); } on(release) { meinDatum = new Date(); aktuellerMonat = meinDatum.getMonth(); } // Klasse class Circle(radius) { } class Square(side) { } // Funktion circleArea = function(radius) { return radius * radius * MATH.PI } squareArea = function(side) { return side * side; }

Sie knnen berprfen, ob ffnende und schlieende Klammern bereinstimmen. Weitere Informationen hierzu finden Sie unter Syntax und Interpunktion berprfen auf Seite 74.

34

Kapitel 2: ActionScript-Grundlagen

Strichpunkte Anweisungen werden wie in den folgenden Beispielen in ActionScript mit einem Strichpunkt (;) abgeschlossen:
var column = passedDate.getDay(); var row = 0;

Flash kompiliert Ihr Skript zwar auch, wenn Sie den abschlieenden Strichpunkt in einer Anweisung vergessen, blicherweise werden sie in Skripts jedoch gesetzt. Runde Klammern Beim Definieren einer Funktion werden die Parameter in runde Klammern gesetzt:
function meineFunktion (name, alter, leser){ // hier folgt Ihr Code }

Beim Aufrufen einer Funktion werden alle zu bergebenden Parameter in runde Klammern gesetzt:
meineFunktion ("Christian", 28, true);

Auerdem knnen Sie mit Hilfe von runden Klammern die Reihenfolge der Verarbeitung von ActionScript-Operationen festlegen oder die Lesbarkeit von ActionScript-Anweisungen verbessern. (Weitere Informationen finden Sie unter Vorrang und Assoziativitt von Operatoren auf Seite 50.) Sie knnen runde Klammern auch dazu verwenden, einen Ausdruck auf der linken Seite einer in Punktsyntax geschriebenen Anweisung auszuwerten. In der folgenden Anweisung beispielsweise bewirken die runden Klammern, dass der Ausdruck new Color(this) ausgewertet und ein Color-Objekt erzeugt wird:
onClipEvent (enterFrame) { (new Color(this)).setRGB(0xffffff); }

Wenn Sie denselben Code ohne Klammern schreiben, mssen Sie den Ausdruck mit Hilfe einer gesonderten Anweisung auswerten:
onClipEvent (enterFrame) { meineFarbe = new Color(this); meineFarbe.setRGB(0xffffff); }

Sie knnen berprfen, ob ffnende und schlieende Klammern bereinstimmen. Weitere Informationen hierzu finden Sie unter Syntax und Interpunktion berprfen auf Seite 74.

Syntax

35

Kommentare Es wird dringend empfohlen, Kommentare in Skripts einzufgen. Auf diese Weise haben Sie beispielsweise die Mglichkeit, Informationen zu den gewnschten Resultaten einzelner Abschnitte in den Code einzubinden und an andere Mitarbeiter Ihres Entwicklungsteams weiterzugeben oder kommentierte Skriptmuster zu erstellen. Selbst einfache Skripts lassen sich wesentlich leichter nachvollziehen, wenn Sie bei der Skripterstellung Anmerkungen einfgen. Um eine Zeile oder einen Teil der Zeile als Kommentar zu kennzeichnen, stellen Sie dem Kommentar zwei Schrgstriche (//) voran:
on(release) { // neues Date-Objekt erzeugen meinDatum = new Date(); aktuellerMonat = meinDatum.getMonth(); // Monatszahl in Monatsnamen umwandeln monatsname = calcMonth(aktuellerMonat); jahr = meinDatum.getFullYear(); aktuellesDatum = meinDatum.getDate(); }

Wenn die Option Syntaxfarbcodierungen aktiviert ist (siehe Syntax hervorheben auf Seite 67), werden Kommentare automatisch grau dargestellt. Die Lnge Ihrer Kommentare hat keinen Einfluss auf die Gre der exportierten Datei. Auerdem unterliegen Kommentare nicht den fr die ActionScript-Syntax und Schlsselwrter geltenden Regeln. Wenn Sie einen gesamten Abschnitt Ihres Skripts als Kommentar kennzeichnen mchten, platzieren Sie ihn in einen Kommentarblock, anstatt // am Anfang jeder Zeile einzufgen. Diese Technik ist einfacher und bietet sich an, wenn Sie nur Teile eines Skripts prfen mchten und dazu groe Teile des Skripts auskommentieren. Um einen Kommentarblock zu erstellen, setzen Sie /* an den Anfang der Kommentarzeilen und */ an das Ende. Wenn beispielsweise das folgende Skript ausgefhrt wird, wird kein Teil des Codes im Kommentarblock ausgefhrt:
// Der untere Code fhrt Folgendes aus var x:Number = 15; var y:Number = 20; // Der untere Code fhrt nicht aus: /* on(release) { // neues Date-Objekt erzeugen meinDatum = new Date(); aktuellerMonat = meinDatum.getMonth(); // Monatszahl in Monatsnamen umwandeln monatsname = calcMonth(aktuellerMonat); jahr = meinDatum.getFullYear(); aktuellesDatum = meinDatum.getDate(); } */ // Der untere Code fhrt Folgendes aus var name:String = Ich heie; var age:Number = 20;

36

Kapitel 2: ActionScript-Grundlagen

Schlsselwrter Schlsselwrter sind fr bestimmte ActionScript-Funktionen reserviert und knnen nicht als Namen fr Bezeichner, wie z. B. Variablen, Funktionen oder Bezeichnungen verwendet werden. In der folgenden Tabelle finden Sie eine Liste aller ActionScript-Schlsselwrter:
break default extends if instanceof private static var case delete for implements interface public switch void class dynamic function import intrinsic return this while continue else get in new set typeof with

Konstanten Eine Konstante ist eine Eigenschaft mit unvernderlichem Wert. Die Konstanten BACKSPACE, ENTER, QUOTE, RETURN, SPACE und TAB beispielsweise sind Eigenschaften des Key-Objekts und verweisen auf Tasten der Computertastatur. In der folgenden Anweisung wird mit Hilfe der Konstanten ENTER geprft, ob der Anwender die Eingabetaste drckt:
if(Key.getCode() == Key.ENTER) { alert = "Sind Sie spielbereit?"; controlMC.gotoAndStop(5); }

Datentypen
Ein Datentyp beschreibt die Art der Informationen, die eine Variable oder ein ActionScriptElement enthalten kann. In Flash sind zwei Arten von Datentypen integriert, nmlich: Grunddatentypen und Referenzdatentypen. Die Grunddatentypen (String, Zahl und Boolescher Wert) weisen einen konstanten Wert auf und knnen daher den tatschlichen Wert des von ihnen dargestellten Elements enthalten. Die Referenzdatentypen (MovieClip und Objekt) weisen einen vernderlichen Wert auf und enthalten daher einen Verweis auf den tatschlichen Wert des Elements. Variablen, die Grunddatentypen enthalten, verhalten sich in bestimmten Situationen anders als solche, die Referenzdatentypen enthalten. (Weitere Informationen finden Sie unter Variablen in einem Programm verwenden auf Seite 48.) Darber hinaus untersttzt Flash die beiden speziellen Datentypen Null und undefined. In Flash sind alle integrierten Objekte, die keine Grunddatentypen oder Movieclip-Datentypen sind (z. B. Array oder Math) vom Datentyp Objekt. Eine Beschreibung der verschiedenen Datentypen und ihrer Regeln finden Sie in den folgenden Hilfethemen:

String auf Seite 38 Zahl auf Seite 39 Boolean auf Seite 39

Datentypen

37

Objekt auf Seite 39 MovieClip auf Seite 40 Null auf Seite 40 Undefined auf Seite 40

Beim Debuggen von Skripts mssen Sie mglicherweise den Datentyp eines Ausdrucks oder einer Variablen bestimmen, um festzustellen, warum der Ausdruck oder die Variable sich auf eine bestimmte Weise verhlt. Zu diesem Zweck knnen Sie den Operator typeof verwenden (siehe Datentypen von Elementen ermitteln auf Seite 40). Ein Datentyp wird mit Hilfe einer der folgenden Umwandlungsfunktionen in einen anderen Datentyp umgewandelt: Array(), Boolean(), Number(), Object(), String(). String Ein String ist eine Zeichenfolge aus Buchstaben, Ziffern und Sonderzeichen. Strings stehen in ActionScript-Anweisungen stets in einfachen oder doppelten Anfhrungszeichen und werden nicht als Variablen, sondern als Zeichen behandelt. Die folgende Anweisung beispielsweise enthlt den String "L7":
lieblingsgruppe = "L7";

Mit dem Additionsoperator (+) lassen sich zwei Strings verketten, d. h. miteinander verbinden. ActionScript behandelt Leerzeichen am Anfang oder Ende eines Strings als tatschlichen Bestandteil der Zeichenfolge. Der folgende Ausdruck enthlt ein Leerzeichen nach dem Komma:
gruss = "Willkommen, " + vorname;

Wenn Sie ein Anfhrungszeichen in den String selbst einfgen mchten, mssen Sie ihm einen umgekehrten Schrgstrich (\\) voranstellen. Die Kombination eines Zeichens mit einem vorangestellten Rckwrtsschrgstrich wird als Escape-Sequenz bezeichnet. Neben dem Anfhrungszeichen knnen noch eine Reihe weiterer Zeichen in ActionScript nur durch eine solche Escape-Sequenz dargestellt werden. Eine vollstndige Liste der in ActionScript verwendeten Escape-Sequenzen finden Sie in der folgenden Tabelle:
Escape-Sequenz
\b \f \n \r \t \" \' \\ \000 - \377 \x00 - \xFF \u0000 - \uFFFF

Zeichen Rckschritt (Backspace, ASCII 8) Seitenvorschub (Form Feed, ASCII 12) Zeilenvorschub (Line Feed, ASCII 10) Wagenrcklauf (Carriage Return, ASCII 13) Tabulator (Tab, ASCII 9) Doppeltes Anfhrungszeichen Einfaches Anfhrungszeichen Rckwrtsschrgstrich Ein oktaler Byte-Wert Ein hexadezimaler Byte-Wert Ein 16-Bit-Unicode-Zeichen in Hexadezimalschreibweise

38

Kapitel 2: ActionScript-Grundlagen

Zahl Der Datentyp Zahl gibt eine Gleitkommazahl mit zwei Kommastellen an. Zahlen lassen sich mit Hilfe der entsprechenden arithmetischen Operatoren addieren (+), subtrahieren (-), multiplizieren (*), dividieren (/), modulieren (%), inkrementieren (++) und dekrementieren (--). Auerdem knnen Sie Zahlen mit den integrierten Math- und Number-Klassen manipulieren. Im folgenden Beispiel wird die Methode sqrt() verwendet, um die Quadratwurzel (engl: square root) der Zahl 100 zu berechnen und zurckzugeben:
Math.sqrt(100);

Weitere Informationen finden Sie unter Numerische Operatoren auf Seite 50. Boolean Die beiden mglichen Booleschen Werte sind true (wahr) und false (falsch). ActionScript wandelt die Werte true und false gegebenenfalls in 1 und 0 um. Boolesche Werte werden zumeist in Verbindung mit logischen Operatoren in ActionScript-Anweisungen verwendet, die anhand eines Vergleichs den Ablauf eines Skripts steuern. Im folgenden Skript beispielsweise wird eine SWF-Datei wiedergegeben, wenn die Variable password den Wert true aufweist:
onClipEvent (enterFrame) { if (userName == true && password == true){ play(); } }

Weitere Informationen hierzu finden Sie unter Integrierte Funktionen verwenden auf Seite 56 und Logische Operatoren auf Seite 52. Objekt Ein Objekt ist eine Sammlung von Eigenschaften. Jede Eigenschaft hat einen Namen und einen Wert. Da es sich bei dem Wert einer Eigenschaft um einen beliebigen Flash-Datentyp, also auch um ein anderes Objekt, handeln kann, lassen sich Objekte durch Festlegen ihrer Eigenschaften ineinander verschachteln. Die Zuweisung der Eigenschaften von Objekten geschieht mit Hilfe des Punkt-Operators (.). Der folgende Code beispielsweise definiert arbeitsstunden als Eigenschaft von wochenstatistik und dieses wiederum als Eigenschaft von mitarbeiter:
mitarbeiter.wochenstatistik.arbeitsstunden

Mit Hilfe der integrierten ActionScript-Objekte knnen Sie auf bestimmte Arten von Informationen zugreifen und diese manipulieren. Das Math-Objekt beispielsweise verfgt ber Methoden zur Durchfhrung mathematischer Berechnungen mit Zahlen, die Sie an sie bergeben. In diesem Beispiel wird die Methode sqrt() verwendet:
quadratwurzel = Math.sqrt(100);

Das MovieClip-Objekt verfgt ber Methoden, mit deren Hilfe Sie Movieclip-Symbolinstanzen auf der Bhne steuern knnen. In diesem Beispiel werden die Methoden play() und nextFrame() verwendet:
mcInstanceName.play(); mc2InstanceName.nextFrame();

Datentypen

39

Sie knnen auch benutzerdefinierte Objekte erstellen, um die Informationen in Ihrer FlashAnwendung zu strukturieren. Fr die Gestaltung einer interaktiven Anwendung mit ActionScript bentigen Sie die unterschiedlichsten Informationen, zum Beispiel einen Benutzernamen, die Geschwindigkeit eines Balles, die Namen der Artikel in einem Einkaufswagen, die Anzahl der geladenen Bilder, die Postleitzahl des Benutzers oder die zuletzt gedrckte Taste. Mit Hilfe selbst definierter Objekte knnen Sie diese Informationen zu Gruppen zusammenfassen, die Skripterstellung vereinfachen und Ihre Skripts wiederverwenden. MovieClip Movieclips sind Symbole, die Animationen in einer Flash-Anwendung abspielen knnen. Sie stellen den einzigen Datentyp dar, der auf ein Grafikelement verweist. Der Movieclip-Datentyp ermglicht die Steuerung von Moveclipsymbolen mit Hilfe der Methoden der MovieClip-Klasse. Der Aufruf einer Methode erfolgt wie im folgenden Beispiel dargestellt mit dem Punkt-Operator (.):
mein_mc.startDrag(true); parent_mc.getURL("http://www.macromedia.com/support/" + Produkt);

Null Der Nulldatentyp besteht aus dem einen Wert null. Dieser Wert steht fr kein Wert und gibt an, dass keine Daten vorhanden sind. Der Wert null kann in verschiedenen Situationen verwendet werden. Hier einige Beispiele fr derartige Situationen:

Eine Variable hat noch keinen Wert erhalten. Eine Variable enthlt keinen Wert mehr. Eine Funktion kann keinen Wert zurckgeben, weil kein entsprechender Wert verfgbar ist; in
diesem Fall wird der Nullwert zurckgegeben.

Ein erwarteter Parameter fehlt; in diesem Fall wird der Nullwert als Parameter bergeben.
Undefined Der Datentyp Nicht definiert besteht aus dem einen Wert undefined und wird fr eine Variable verwendet, der kein Wert zugewiesen ist. Datentypen von Elementen ermitteln Beim Prfen und Debuggen Ihrer Programme stoen Sie mglicherweise auf Probleme, die mit den Datentypen von verschiedenen Elementen zusammenhngen. In diesen Fllen knnen Sie den Datentyp eines Elements ermitteln. Verwenden Sie hierzu wie im folgenden Beispiel den typeof-Operator:
trace(typeof(variablenname));

Weitere Informationen zum Prfen und Debuggen finden Sie in Kapitel 3, Skripts schreiben und debuggen, auf Seite 61.

40

Kapitel 2: ActionScript-Grundlagen

Elementen Datentypen zuweisen


Wie im folgenden Abschnitt Automatische Typisierung beschrieben, weist Flash Sprachelementen automatisch die folgenden Arten von Datentypen zu:

Variablen An Funktionen, Methoden oder Klassen bergebene Parameter Von Funktionen oder Methoden zurckgegebene Werte Als Unterklassen von vorhandenen Klassen erstellte Objekte

Sie knnen Datentypen jedoch auch explizit Elementen zuweisen. Hierdurch knnen Sie bestimmte Fehler in Ihren Skripts vermeiden bzw. diagnostizieren. Weitere Informationen finden Sie unter Strikte Typisierung auf Seite 42. Automatische Typisierung Sie mssen in Flash nicht ausdrcklich definieren, dass Elemente Zahlen, Strings oder andere Datentypen enthalten. Flash legt beim Zuweisen den Datentyp eines Elements fest:
var x = 3;

Im Ausdruck var x = 3 wertet Flash das Element auf der rechten Seite des Operators aus und erkennt, dass es sich um den Datentyp Zahl handelt. Durch eine sptere Zuweisung wird der Typ von x mglicherweise gendert. Die Anweisung x = "hallo" beispielsweise ndert den Typ von x in einen String. Eine Variable, der kein Wert zugewiesen wurde, weist den Datentyp undefined (nicht definiert) auf. Wenn ein Ausdruck dies erfordert, werden Datentypen in ActionScript automatisch konvertiert. Wenn Sie zum Beispiel einen Wert an die Aktion trace() bergeben, wandelt trace() den Wert automatisch in einen String um und sendet ihn an das Bedienfeld Ausgabe In Ausdrcken mit Operatoren wandelt ActionScript den Datentyp je nach Bedarf um. Wenn der Operator + beispielsweise in Verbindung mit einem String verwendet wird, muss es sich bei dem anderen Operanden ebenfalls um einen String handeln.
"Der Nchste bitte, Nummer " + 7

ActionScript wandelt die Zahl 7 in den String "7" um und hngt ihn an das Ende des ersten Strings an. Das Ergebnis dieser Operation ist wiederum ein String:
"Der Nchste bitte, Nummer 7"

Elementen Datentypen zuweisen

41

Strikte Typisierung Mit ActionScript 2.0 knnen Sie beim Erstellen von Variablen den Objekttyp explizit festlegen. Dies wird als strikte Typisierung bezeichnet. Bei nicht bereinstimmenden Datentypen werden Compiler-Fehler ausgelst. Durch die strikte Typisierung wird verhindert, dass Sie vorhandenen Variablen den falschen Datentyp zuweisen. Um einem Element einen bestimmten Datentyp zuzuweisen, verwenden Sie zur Angabe des Typs das Schlsselwort var und die Syntax mit nachgestelltem Doppelpunkt:
// strikte Variablen- oder Objekttypisierung var x:Number = 7; var birthday:Date = new Date(); // strikte Parametertypisierung function welcome(vorname:String, alter:Number){ } // strikte Typisierung des Parameters und des Rckgabewertes function square(x:Number):Number { var squared = x*x; return squared; }

Da Sie das Schlsselwort var zur strikten Typisierung von Variablen verwenden mssen, knnen Sie eine globale Variable nicht strikt typisieren (siehe Variablen deklarieren und Gltigkeitsbereiche festlegen auf Seite 46). Sie knnen den Datentyp von Objekten deklarieren, die auf integrierten Klassen (Button, Date, MovieClip usw.) und auf von Ihnen erstellten Klassen und Schnittstellen basieren. Wenn Sie beispielsweise in der Datei Student.as die Student-Klasse definieren, knnen Sie festlegen, dass von Ihnen erstellte Objekte den Typ Student aufweisen:
var student:Student = new Student();

Auerdem knnen Sie festlegen, dass Objekte den Typ Function oder Void aufweisen. Durch die strikte Typisierung wird verhindert, dass Sie einem Objekt unbeabsichtigt den falschen Datentyp zuweisen. Flash prft beim Kompilieren, ob Fehler durch nicht bereinstimmende Eingaben vorliegen. Angenommen, Sie geben folgenden Code ein:
// in der Student.as-Klassendatei class Student { var status:Boolean; // Eigenschaft von Student-Objekten } // in einem Skript var studentChristianFedder:Student = new Student(); studentChristianFedder.status = "eingeschrieben";

Wenn dieses Skript von Flash kompiliert wird, wird ein Fehler durch nicht bereinstimmende Eingaben erzeugt. Die strikte Typisierung bietet den weiteren Vorteil, dass Flash MX 2004 automatisch Codehinweise fr integrierte Objekte anzeigt, wenn diese strikt typisiert werden. Weitere Informationen finden Sie unter Objekte zum Auslsen von Codehinweisen strikt typisieren auf Seite 68.

42

Kapitel 2: ActionScript-Grundlagen

Dateien, die mit ActionScript 1 verffentlicht werden, akzeptieren keine strikte Typisierung beim Kompilieren. Daher wird kein Kompilierfehler erzeugt, wenn einer Variablen, die Sie strikt typisiert haben, der falsche Datentyp zugewiesen wird.
var x:String = "abc" x = 12 ; // kein Fehler in ActionScript 1, Fehler durch nicht bereinstimmende Eingaben in ActionScript 2

Der Grund hierfr ist, dass Flash eine Anweisung wie beispielsweise var x:String = "abc" beim Verffentlichen einer Datei fr ActionScript 1 als Schrgstrichsyntax statt als strikte Typisierung interpretiert. (ActionScript 2.0 untersttzt keine Schrgstrichsyntax.) Dieses Verhalten kann dazu fhren, dass der Compiler durch Objekte, die einer Variable des falschen Typs zugewiesen sind, ohne Meldung illegale Methodenaufrufe und undefinierte Verweise auf Eigenschaften durchfhrt. Achten Sie daher beim Implementieren strikter Typisierung darauf, dass Sie Dateien fr ActionScript 2.0 verffentlichen. Objekte umwandeln Mit ActionScript 2.0 knnen Sie einen Objekttyp in einen anderen konvertieren. Der von Flash verwendete Typumwandlungsoperator hat die Form eines Funktionsaufrufs und stimmt mit der im Entwurf des Standards ECMA-262 Edition 4 festgelegten expliziten Typumwandlung berein. Mit ihm knnen Sie besttigen, dass ein Objekt von einem bestimmten Typ ist, sodass der Compiler bei einer Typberprfung erkennt, dass das Objekt Eigenschaften hat, die im ursprnglichen Typ nicht enthalten sind. Dies ist beispielsweise beim Durchlaufen von ObjektArrays hilfreich, die mglicherweise unterschiedlichen Typen entsprechen. In Dateien, die fr Flash Player 7 oder sptere Versionen verffentlicht wurden, geben Anweisungen fr die Umwandlung, die whrend der Laufzeit fehlschlagen, null zurck. In fr Flash Player 6 verffentlichten Dateien ist keine Laufzeituntersttzung fr fehlgeschlagene Umwandlungen implementiert. Die Syntax fr die Umwandlung ist type(item), bei der der Compiler sich so verhalten soll, als wenn der Datentyp von item type ist. Grundstzlich ist die Umwandlung ein Funktionsaufruf, und dieser gibt null zurck, wenn die Umwandlung fehlschlgt. Wenn die Umwandlung erfolgreich war, gibt der Funktionsaufruf das ursprngliche Objekt zurck. Der Compiler erzeugt jedoch keine Typdiskrepanzen, wenn Sie Elemente in Datentypen umwandeln, die Sie in externen Klassendateien erstellt haben, auch wenn die Umwandlung whrend der Laufzeit fehlschlgt.
// in Animal.as class Animal {} // in Dog.as class Dog extends Animal { function bark (){} } // in Cat.as class Cat extends Animal { function meow (){} } // in FLA-Datei var spot:Dog = new Dog(); var temp:Cat = Cat (spot); // besttigen Sie, dass ein Dog-Objekt dem Typ Cat entspricht temp.meow(); // keine Auswirkung, jedoch auch kein Compiler-Fehler

Elementen Datentypen zuweisen

43

In dieser Situation haben Sie dem Compiler gegenber angegeben, dass temp ein Cat-Objekt ist, der Compiler geht daher davon aus, dass temp.meow() eine gltige Anweisung ist. Der Compiler wei jedoch nicht, dass die Umwandlung fehlschlagen wird (d. h., dass Sie versucht haben, ein Dog-Objekt in einen Cat-Typ umzuwandeln), daher tritt keine Fehlerberichtausgabe auf. Wenn Sie eine berprfung zu Ihrem Skript hinzufgen, um sicherzustellen, dass die Umwandlung erfolgreich ist, knnen Sie Typdiskrepanzen whrend der Laufzeit feststellen.
var spot:Dog = new Dog(); var temp:Cat = Cat (spot); trace(temp); // zeigt whrend der Laufzeit null an

Sie knnen einen Ausdruck in eine Schnittstelle umwandeln. Wenn der Ausdruck ein Objekt ist, das die Schnittstelle implementiert, oder eine Basisklasse hat, die die Schnittstelle implementiert, wird das Objekt zurckgegeben. Wenn nicht, wird null zurckgegeben. Im folgenden Beispiel werden die Ergebnisse der Umwandlung von integrierten Objekttypen gezeigt. Wie die erste Zeile im Block with(results) zeigt, gibt eine illegale Umwandlung - in diesem Fall die Umwandlung eines Strings in einen Movieclip - null zurck. Wie die letzten zwei Zeilen anzeigen, gibt eine Umwandlung in null oder nicht definiert undefined zurck.
var mc:MovieClip; var arr:Array; var bool:Boolean; var num3:Number; var obj:Object; var str:String; _root.createTextField("Ergebnisse",2,100,100,300,300); with(results){ text = "type MovieClip : "+(typeof MovieClip(str)); // gibt null zurck text += "\ntype object : "+(typeof Object(str)); // gibt object zurck text += "\ntype Array : "+(typeof Array(num3)); // gibt object zurck text += "\ntype Boolean : "+(typeof Boolean(mc)); // gibt boolean zurck text += "\ntype String : "+(typeof String(mc)); // gibt string zurck text += "\ntype Number : "+(typeof Number(obj)); // gibt number zurck text += "\ntype Function : "+(typeof Function(mc)); // gibt object zurck text += "\ntype null : "+(typeof null(arr)); // gibt undefined zurck text += "\ntype undefined : "+(typeof undefined(obj)); // gibt undefined zurck } //Ergebnisse im Bedienfeld Ausgabe type MovieClip : null type object : Objekt type Array : Objekt type Boolean : boolean type String : string type Number : number type Function : Objekt type null : undefined type undefined : undefined

Sie knnen Grunddatentypen wie Boolean, Date und Number mit einem Typumwandlungsoperator mit demselben Namen nicht berschreiben.

44

Kapitel 2: ActionScript-Grundlagen

Variablen
Eine Variable ist ein Behlter fr Informationen. Der Behlter an sich bleibt dabei immer gleich, nur der Inhalt kann sich ndern. Indem Sie whrend der Wiedergabe einer SWF-Datei den Wert einer Variablen ndern, knnen Sie Informationen zu den Aktionen des Benutzers erfassen und speichern, die Vernderung von Werten whrend der SWF-Wiedergabe erfassen oder feststellen, ob eine bestimmte Bedingung erfllt ist. Es empfiehlt sich, einer Variablen beim Definieren stets einen bekannten Wert zuzuweisen. Dies wird als Initialisieren einer Variablen bezeichnet und geschieht oftmals im ersten Bild der SWFDatei. Die Initialisierung ermglicht Ihnen, den Wert der Variablen whrend der SWFWiedergabe zu berwachen und Vernderungen zu erfassen. Variablen knnen beliebige Datentypen enthalten (siehe Datentypen auf Seite 37). Der Datentyp des Wertes einer Variablen bestimmt, wie dieser sich bei einer Zuweisung in einem Skript ndert. Zu den am hufigsten in Variablen gespeicherten Informationen gehren URL-Adressen, Benutzernamen, Ergebnisse mathematischer Berechnungen, Ereigniszhler und Schaltflchenstatus. Jede SWF-Datei und jede Movieclipinstanz verfgen ber einen Satz von Variablen, wobei jede Variable unabhngig von den Variablen anderer SWF-Dateien oder Movieclips einen Wert enthlt. Wenn Sie den Wert einer Variablen testen mchten, senden Sie ihn mit der Aktion trace() an das Bedienfeld Ausgabe. Der Ausdruck trace(arbeitsstunden) beispielsweise bewirkt, dass der Wert der Variablen arbeitsstunden im Testmodus an das Bedienfeld Ausgabe gesendet wird. Sie knnen die Werte von Variablen auch im Testmodus des Debuggers berprfen und einstellen. Weitere Informationen hierzu finden Sie unter trace-Anweisung verwenden auf Seite 88 und Variablen anzeigen und ndern auf Seite 79. Variablen benennen Der Name einer Variablen muss folgende Bedingungen erfllen:

Es muss sich um einen Bezeichner handeln (siehe Terminologie auf Seite 29). Es darf sich nicht um ein Schlsselwort oder einen ActionScript-Begriff wie true, false, null
oder undefined handeln.

Er muss innerhalb seines Gltigkeitsbereichs eindeutig sein (siehe Variablen deklarieren und
Gltigkeitsbereiche festlegen auf Seite 46). Darber hinaus sollten Sie kein Element der ActionScript-Sprache als Variablenname verwenden, da dies zu Syntaxfehlern oder unerwarteten Ergebnissen fhren kann. Wenn Sie beispielsweise einer Variablen den Namen String geben und dann versuchen, mit newString() ein StringObjekt zu erstellen, ist das neue Objekt nicht definiert.
hello_str = new String(); trace(hello_str.length); // Rckgabewert: 0 String = "hello"; // Die Variable erhlt den gleichen Namen wie die integrierte Klasse hello_str = new String(); trace(hello_str.length); // Rckgabewert: nicht definiert

Variablen

45

Der ActionScript-Editor untersttzt Codehinweise fr integrierte Klassen und fr Variablen, die auf diesen Klassen basieren. Wenn Flash Codehinweise fr einen bestimmten Objekttyp bereitstellen soll, der einer Variablen zugewiesen ist, knnen Sie die Variable strikt typisieren oder die Variable mit einem speziellen Suffix benennen. Angenommen, Sie geben folgenden Code ein:
var members:Array = new Array(); members.

Sobald Sie den Punkt (.) eingeben, zeigt Flash eine Liste von Methoden und Eigenschaften an, die fr Array-Objekte verfgbar sind. Weitere Informationen finden Sie unter Code zum Auslsen von Codehinweisen schreiben auf Seite 68. Variablen deklarieren und Gltigkeitsbereiche festlegen Der Gltigkeitsbereich einer Variablen ist der Bereich, innerhalb dessen sie erkannt und darauf verwiesen werden kann. ActionScript kennt drei verschiedene Gltigkeitsbereiche fr Variablen:

Lokale Variablen sind im Hauptteil der Funktion verfgbar, in der sie deklariert sind
(innerhalb des durch die geschweiften Klammern begrenzten Abschnitts). Zeitleistenvariablen sind fr alle Skripts auf der Zeitleiste verfgbar. Globale Variablen und Funktionen sind in allen Zeitleisten und Gltigkeitsbereichen in Ihrem Dokument sichtbar.

Hinweis: Von Ihnen erstellte ActionScript 2.0-Klassen untersttzen ffentliche, private und statische Variablengltigkeitsbereiche. Weitere Informationen hierzu finden Sie unter Mitgliedszugriff steuern auf Seite 183 und Klassenmitglieder erstellen auf Seite 185.

Lokale Variablen Lokale Variablen werden mit Hilfe der Anweisung var innerhalb des Hauptabschnittes einer Funktion deklariert. Eine lokale Variable ist nur innerhalb des Codeblocks gltig, in dem sie deklariert wird, und verliert ihre Gltigkeit am Ende dieses Blocks. Eine lokale Variable, die nicht innerhalb eines Blocks deklariert wird, verliert ihre Gltigkeit am Ende des Skripts. Die Variablen i und j werden beispielsweise gerne als Schleifenzhler verwendet. Im folgenden Code wird i als lokale Variable verwendet, die nur innerhalb der Funktion makeDays() existiert:
function makeDays() { var i; for( i = 0; i < monthArray[month]; i++ ) { _root.Days.attachMovie( "DayDisplay", i, i + 2000 ); _root.Days[i].num = i + 1; _root.Days[i]._x = column * _root.Days[i]._width; _root.Days[i]._y = row * _root.Days[i]._height; column = column + 1; if (column == 7 ) { column = 0; row = row + 1; } } }

46

Kapitel 2: ActionScript-Grundlagen

Die Verwendung lokaler Variablen trgt auch dazu bei, Namenskonflikte zu vermeiden, die zu Fehlern in Ihrer Anwendung fhren knnen. Wenn Sie beispielsweise name als lokale Variable deklarieren, knnen Sie sie in einem Zusammenhang fr einen Benutzernamen und in einem anderen Zusammenhang fr den Namen einer Movieclip-Instanz verwenden. In diesem Fall tritt kein Konflikt auf, da beide Variablen unterschiedliche Gltigkeitsbereiche aufweisen. Es empfiehlt sich, im Hauptabschnitt einer Funktion lokale Variablen zu verwenden, damit die Funktion als in sich abgeschlossener Code arbeiten kann. Eine lokale Variable kann nur innerhalb ihres Codeblocks gendert werden. Wenn ein Ausdruck in einer Funktion hingegen eine globale Variable enthlt, kann deren Wert auch durch einen Ausdruck auerhalb dieser Funktion gendert werden, was sich wiederum auf die Funktion selbst auswirken wrde. Sie knnen einer lokalen Variable einen Datentyp zuweisen, wenn Sie diese definieren, wodurch verhindert wird, dass Sie vorhandenen Variablen den falschen Datentyp zuweisen. Weitere Informationen hierzu finden Sie unter Strikte Typisierung auf Seite 42. Zeitleistenvariablen Zeitleistenvariablen sind fr alle Skripts auf der Zeitleiste verfgbar. Zeitleistenvariablen werden deklariert, indem sie auf einem Bild in der Zeitleiste initialisiert werden. Sie sollten die Variable auf alle Flle initialisieren, bevor Sie versuchen, in einem Skript auf sie zuzugreifen. Wenn Sie beispielsweise den Code var x = 10; in Bild 20 eingeben, kann ein Skript, das mit einem Bild vor Bild 20 verknpft ist, nicht auf diese Variable zugreifen. Globale Variablen Globale Variablen und Funktionen sind in allen Zeitleisten und Gltigkeitsbereichen in Ihrem Dokument sichtbar. Um eine Variable mit einem globalen Gltigkeitsbereich zu erstellen, fgen Sie den Bezeichner _global vor dem Variablennamen ein. Verwenden Sie nicht die Syntax var =. Der folgende Code beispielsweise erstellt die globale Variable meinName:
var _global.meinName = "Georg"; // Syntaxfehler _global.meinName = "Georg";

Wenn Sie jedoch eine lokale Variable mit dem gleichen Namen wie eine globale Variable initialisieren, haben Sie keinen Zugriff auf die globale Variable, wenn Sie sich im Gltigkeitsbereich der lokalen Variablen befinden:
_global.counter = 100; counter++; trace(counter); // Anzeige: 101 function count(){ for( var counter = 0; counter <= 10 ; counter++ ) { trace(counter); // Anzeige: 0 bis 10 } } count(); counter++; trace(counter); // Anzeige: 102

Variablen

47

Variablen in einem Programm verwenden Eine Variable muss im Skript deklariert werden, bevor Sie sie in einem Ausdruck verwenden knnen. Bei undeklarierten Variablen ist wie im folgenden Beispiel der Variablenwert NaN oder undefiniert, und das Skript kann unter Umstnden unerwartete Ergebnisse liefern:
var squared = x*x; trace(squared); // NaN var x = 6;

Im folgenden Beispiel muss die Anweisung, durch die die Variable x deklariert wird, an erster Stelle stehen, damit squared durch einen Wert ersetzt werden kann:
var x = 6; var squared = x*x; trace(squared); // 36

Ein hnliches Verhalten tritt auf, wenn Sie eine undefinierte Variable an eine Methode oder Funktion bergeben:
getURL(meineWebsite); // keine Aktion var meineWebsite = "http://www.macromedia.com"; var meineWebsite = "http://www.macromedia.com"; getURL(meineWebsite); // Browser zeigt www.macromedia.com an

Der Wert einer Variablen kann in einem Skript beliebig oft gendert werden. Wann und auf welche Weise dies geschieht, hngt vom Datentyp des durch die Variable beschriebenen Wertes ab. Grunddatentypen wie Strings und Zahlen werden als Wert bergeben. Dies bedeutet, dass der tatschliche Inhalt der Variablen an die Variable bergeben wird. Im folgenden Beispiel wird die Variable x auf den 15 gesetzt und dieser Wert anschlieend in die Variable y kopiert. Whrend die Variable x anschlieend in Zeile 3 den Wert 30 erhlt, behlt die Variable y den Wert 15 bei, da y ihren Wert nicht aus x abruft, sondern ihn aus x in Zeile 2 zugewiesen bekommt.
var x = 15; var y = x; var x = 30;

Im folgenden Beispiel enthlt die Variable inValue den Wert 3. Da es sich bei diesem Wert um einen Grunddatentyp handelt, wird der tatschliche Wert an die Funktion sqrt() bergeben und der Ergebniswert 9 zurckgegeben.
function sqrt(x){ return x * x; } var inValue = 3; var out = sqrt(inValue);

Der Wert der Variablen inValue ndert sich nicht. Der Datentyp Objekt kann derart viele und komplexe Informationen enthalten, dass eine Variable dieses Typs nicht den eigentlichen Wert, sondern einen Verweis auf den Wert enthlt. Dieser Verweis dient sozusagen als Platzhalter fr den tatschlichen Inhalt der Variablen. Wenn die Variable ihren Wert bentigt, fragt der Verweis den Inhalt der Variablen ab und gibt ihn zurck, ohne den Wert der Variablen selbst zu bertragen.

48

Kapitel 2: ActionScript-Grundlagen

Im folgenden Beispiel werden Daten mit Hilfe eines Verweises bergeben:


var meinArray = ["tom", "josie"]; var neuesArray = meinArray; meinArray[2] = "jack"; trace(neuesArray);

Der Code im oben stehenden Beispiel erzeugt ein Array-Objekt namens meinArray, das zwei Elemente enthlt. Anschlieend wird die Variable neuesArray erzeugt und ein Verweis auf meinArray als Wert an die neue Variable bergeben. Die nderung des zweiten Elements von meinArray in Zeile 3 wirkt sich auf alle Variablen aus, die einen Verweis auf dieses Array enthalten. Die Aktion trace() sendet tom, jack an das Bedienfeld Ausgabe. Im folgenden Beispiel enthlt meinArray ein Array-Objekt und wird daher mit Hilfe eines Verweises an die Funktion zeroArray() bergeben. Die Funktion zeroArray() ndert den Inhalt des Arrays in meinArray.
function zeroArray (theArray){ var i; for (i=0; i < theArray.length; i++) { theArray[i] = 0; } } var meinArray = new Array(); meinArray[0] = 1; meinArray[1] = 2; meinArray[2] = 3; zeroArray(meinArray);

Die Funktion zeroArray() erhlt als Parameter ein Array-Objekt und setzt alle Elemente des Arrays auf 0. Sie kann das Array deshalb modifizieren, weil es ihr mit Hilfe eines Verweises bergeben wird.

Werte in Ausdrcken mit Operatoren manipulieren


Ein Ausdruck ist eine Anweisung, die von Flash ausgewertet werden kann und einen Wert zurckgibt. Sie knnen einen Ausdruck erstellen, indem Sie Operatoren und Werte miteinander kombinieren oder eine Funktion aufrufen. Operatoren sind Zeichen, die festlegen, auf welche Weise die Werte in einem Ausdruck miteinander kombiniert, verglichen oder gendert werden. Die Elemente, auf die der Operator angewendet wird, bezeichnet man als Operanden. In der folgenden Anweisung beispielsweise addiert der Operator + die Werte eines numerischen Literals und der Variablen foo. foo und 3 sind also die Operanden:
foo + 3

In diesem Abschnitt werden die allgemeinen Regeln fr hufig verwendete Operatortypen, deren Rangfolge und deren Assoziativitt beschrieben. Detaillierte Informationen zu den hier erwhnten Operatoren sowie zu speziellen Operatoren, die keiner dieser Kategorien angehren, finden Sie in den entsprechenden Eintrgen unter Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Werte in Ausdrcken mit Operatoren manipulieren

49

Vorrang und Assoziativitt von Operatoren Wenn in einer Anweisung mehrere Operatoren enthalten sind, werden bestimmte Operatoren vorrangig vor anderen Operatoren ausgefhrt. Die Rangfolge der Operatoren ist in ActionScript genau festgelegt. Eine Multiplikation wird beispielsweise grundstzlich vor einer Addition ausgefhrt. Elemente in Klammern haben jedoch Vorrang vor Multiplikationen. Im folgenden Beispiel fhrt ActionScript die Multiplikation zuerst aus, da der Ausdruck keine Klammern enthlt:
summe = 2 + 4 * 3;

Das Ergebnis ist 14. Steht die Addition hingegen in Klammern, so fhrt ActionScript zuerst die Addition aus:
summe = (2 + 4) * 3;

Das Ergebnis ist 18. Wenn ein Ausdruck mehrere Operatoren enthlt, die hinsichtlich ihrer Rangfolge gleichwertig sind, wird die Reihenfolge ihrer Ausfhrung durch ihre Assoziativitt bestimmt. Hierbei wird zwischen Linksassoziativitt (in Links-Rechts-Richtung) und Rechtsassoziativitt (in RechtsLinks-Richtung) unterschieden. Der Multiplikationsoperator ist beispielsweise linksassoziativ. Daher sind die beiden folgenden Anweisungen austauschbar:
summe = 2 * 3 * 4; summe = (2 * 3) * 4;

Eine tabellarische bersicht ber die Operatoren, ihre Rangfolge und ihre Assoziativitt finden Sie in Anhang B, Vorrang und Assoziativitt von Operatoren, auf Seite 805. Numerische Operatoren Numerische Operatoren dienen zur Ausfhrung von Additionen, Subtraktionen, Multiplikationen, Divisionen und anderer arithmetischer Operationen. Der Inkrementoperator wird zumeist im Ausdruck i++ als Kurzform des ausfhrlicheren Ausdrucks i = i+1 verwendet und kann sowohl vor als auch nach einem Operanden stehen. Im folgenden Beispiel wird der Wert der Variable alter zuerst um eins erhht und anschlieend mit der Zahl 30 verglichen:
if (++alter >= 30)

Im folgenden Beispiel wird der Wert der Variable alter zuerst mit der Zahl 30 verglichen und anschlieend um eins erhht:
if (alter++ >= 30)

Eine bersicht ber die numerischen Operatoren in ActionScript finden Sie in der folgenden Tabelle:
Operator
+ * / %

Ausgefhrte Operation Addition Multiplikation Division Modulo (Rest einer Division)

50

Kapitel 2: ActionScript-Grundlagen

Operator
++ --

Ausgefhrte Operation Subtraktion Inkrement Dekrement

Vergleichsoperatoren Vergleichsoperatoren dienen zum Vergleichen der Werte zweier Ausdrcke und geben einen Booleschen Wert (true oder false) zurck. Sie werden zumeist in Schleifen und bedingten Anweisungen verwendet. Im folgenden Beispiel werden zwei verschiedene SWF-Dateien geladen, je nachdem, ob die Variable punktzahl den Wert 100 oder einen anderen Wert aufweist:
if (punktzahl > 100){ loadMovieNum("gewinner.swf", 5); } else { loadMovieNum("verlierer.swf", 5); }

Eine bersicht ber die Vergleichsoperatoren in ActionScript finden Sie in der folgenden Tabelle:
Operator
< > <= >=

Ausgefhrte Operation Kleiner als Grer als Kleiner oder gleich Grer oder gleich

String-Operatoren Wenn der Operator + auf Strings angewendet wird, verkettet er diese zu einer gemeinsamen Zeichenfolge. In der folgenden Anweisung beispielsweise werden die Strings "Herzlichen Glckwunsch, " und "Doris!" miteinander verkettet:
"Herzlichen Glckwunsch, " + "Doris!"

Als Ergebnis wird der String "Herzlichen Glckwunsch, Doris!" zurckgegeben. Wenn es sich nur bei einem der beiden Operanden des Operators + um einen String handelt, wird der andere Operand automatisch ebenfalls in eine Zeichenfolge umgewandelt. Wenn die Vergleichsoperatoren >, >=, < und <= auf Strings angewendet werden, vergleichen sie diese unter dem Gesichtspunkt der alphabetischen Reihenfolge. Dies geschieht allerdings nur, wenn es sich bei beiden Operanden um Strings handelt. Ist nur einer der beiden Operatoren eine Zeichenfolge, so wandelt ActionScript beide Operanden in Zahlen um und fhrt einen numerischen Vergleich durch.

Werte in Ausdrcken mit Operatoren manipulieren

51

Logische Operatoren Logische Operatoren dienen zum Vergleichen Boolescher Werte (true und false) und geben einen dritten Booleschen Wert zurck. Wenn beide Operanden beispielsweise den Wert true aufweisen, gibt der logische AND-Operator (&&) den Ergebniswert true zurck. Wenn mindestens einer der beiden Operanden den Wert true aufweist, gibt der logische OR-Operator (||) den Ergebniswert true zurck. Logische Operatoren werden oftmals in Verbindung mit Vergleichsoperatoren eingesetzt, um die Bedingung fr eine if-Aktion festzulegen. Im folgenden Skript wird die if-Aktion beispielsweise ausgefhrt, wenn beide Ausdrcke den Wert true aufweisen:
if (i > 10 && _framesloaded > 50){ play(); }

Eine bersicht ber die logischen Operatoren in ActionScript finden Sie in der folgenden Tabelle:
Operator
&& || !

Ausgefhrte Operation Logisches AND Logisches OR Logisches NOT

Bitweise Operatoren Bitweise Operatoren wandeln Gleitkommazahlen intern in 32-Bit-Ganzzahlen um. Welche Rechenoperation jeweils ausgefhrt wird, hngt vom verwendeten Operator ab, in jedem Falle werden bei der Berechnung des Ergebniswertes jedoch die einzelnen Binrziffern (Bit) der 32-BitGanzzahl unabhngig voneinander ausgewertet. Eine bersicht ber die bitweisen Operatoren in ActionScript finden Sie in der folgenden Tabelle:
Operator & | ^ ~ << >> >>> Ausgefhrte Operation Bitweises AND Bitweises OR Bitweises XOR Bitweises NOT Verschiebung nach links Verschiebung nach rechts Verschiebung nach rechts, auffllen mit 0

52

Kapitel 2: ActionScript-Grundlagen

Gleichheitsoperatoren Der Gleichheitsoperator (==) dient dazu, festzustellen, ob zwei Operanden gleichwertig oder identisch sind. Das Ergebnis dieses Vergleichs ist ein Boolescher Wert (true oder false). Wenn es sich bei den Operanden um Strings, Zahlen oder Boolesche Werte handelt, werden ihre Werte verglichen. Handelt es sich hingegen um Objekte oder Arrays, so werden sie per Verweis miteinander verglichen. Flschlicherweise wird hufig versucht, zwei Operanden mit dem Zuweisungsoperator auf ihre Gleichwertigkeit hin zu berprfen. Der folgende Code beispielsweise vergleicht x mit 2:
if (x == 2)

In diesem Beispiel wre der Ausdruck x = 2 fehl am Platze, da dieser die Operanden nicht miteinander vergleicht, sondern dazu dient, der Variablen x den Wert 2 zuzuweisen. Der Operator === (strikte Gleichheit) funktioniert hnlich wie der Gleichheitsoperator, fhrt jedoch keine Typumwandlung durch. Wenn zwei Operanden nicht denselben Typ aufweisen, gibt der strikte Gleichheitsoperator also den Ergebniswert false zurck. Der Operator !== (strikte Ungleichheit) funktioniert genau umgekehrt wie der strikte Gleichheitsoperator. Eine bersicht ber die Gleichheitsoperatoren in ActionScript finden Sie in der folgenden Tabelle:
Operator
== === != !==

Ausgefhrte Operation Gleichheit Strikte Gleichheit Ungleichheit Strikte Ungleichheit

Zuweisungsoperatoren Der Zuweisungsoperator (=) dient dazu, einer Variablen wie im folgenden Beispiel dargestellt einen Wert zuzuweisen:
var password = "Sk8tEr";

Mit dem Zuweisungsoperator knnen auch Zuweisungen an mehrere Variablen in ein- und demselben Ausdruck erfolgen. Die folgende Anweisung beispielsweise weist den Wert von a den Variablen b, c und d zu:
a = b = c = d;

Auerdem haben Sie die Mglichkeit, mit Hilfe zusammengesetzter Operatoren mehrere Operationen in einem Ausdruck zusammenzufassen. Zusammengesetzte Operatoren fhren zunchst eine Operation mit beiden Operanden aus und weisen anschlieend den auf diese Weise ermittelten Wert dem ersten Operanden zu. Die beiden folgenden Anweisungen beispielsweise sind austauschbar:
x += 15; x = x + 15;

Werte in Ausdrcken mit Operatoren manipulieren

53

Der Zuweisungsoperator kann, wie im folgenden Beispiel dargestellt, auch inmitten eines Ausdrucks verwendet werden:
// Wenn der Wert von "geschmack" nicht "vanille" ist, Meldung ausgeben. if ((geschmack = getIceCreamFlavor()) != "vanille") { trace ("Die Geschmacksrichtung war " + geschmack + ", nicht Vanille."); }

Dieser Code entspricht dem etwas ausfhrlicheren Code im folgenden Beispiel:


geschmack = getIceCreamFlavor(); if (geschmack != "vanille") { trace ("Die Geschmacksrichtung war " + geschmack + ", nicht Vanille."); }

Eine bersicht ber die Zuweisungsoperatoren in ActionScript finden Sie in der folgenden Tabelle:
Operator
= += -= *= %= /= <<= >>= >>>= ^= |= &=

Ausgefhrte Operation Zuweisung Addition und Zuweisung Subtraktion und Zuweisung Multiplikation und Zuweisung Modulo und Zuweisung Division und Zuweisung Bitweises Verschiebung nach links und Zuweisung Bitweises Verschiebung nach rechts und Zuweisung Verschiebung nach rechts, auffllen mit 0 und Zuweisung Bitweises XOR und Zuweisung Bitweises OR und Zuweisung Bitweises AND und Zuweisung

Punkt- und Array-Zugriffsoperatoren Der Punkt-Operator (.) und der Array-Zugriffsoperator ([]) dienen dazu, auf die integrierten oder benutzerdefinierten Eigenschaften eines ActionScript-Objekts, einschlielich der Eigenschaften eines Movieclips, zuzugreifen. Der Punkt-Operator steht zwischen dem Namen eines Objekts auf der linken und dem Namen einer Eigenschaft oder einer Variablen auf der rechten Seite. Bei dem Eigenschaften- oder Variablennamen darf es sich weder um einen String noch um eine Variable handeln, die zu einem String ausgewertet wird. Als Namen sind in diesem Fall nur Bezeichner zulssig. In den folgenden Beispielen wird der Punkt-Operator verwendet:
year.month = "June"; year.month.day = 9;

54

Kapitel 2: ActionScript-Grundlagen

Der Punkt-Operator und der Array-Zugriffsoperator erfllen dieselbe Funktion. Der Unterschied zwischen ihnen besteht darin, dass der Punkt-Operator als Eigenschaft einen Bezeichner erhlt, whrend der Array-Zugriffsoperator seinen Inhalt zu einem Namen auswertet und auf den Wert dieser benannten Eigenschaft zugreift. Die beiden folgenden Ausdrcke beispielsweise greifen auf dieselbe Variable velocity im Movieclip rocket zu:
rocket.velocity; rocket["velocity"];

Mit dem Array-Zugriffsoperator knnen Instanznamen und Variablen dynamisch eingestellt und abgerufen werden. Im folgenden Codebeispiel wird der vom Array-Zugriffsoperator ([]) umschlossene Ausdruck ausgewertet und der Ergebniswert als Name der Variablen verwendet, deren Wert aus dem Movieclip name abgerufen werden soll:
name["mc" + i]

Sie knnen zu diesem Zweck auch die im folgenden Beispiel dargestellte Funktion eval() verwenden:
eval("mc" + i)

Der Array-Zugriffsoperator kann auch auf der linken Seite einer Zuweisungsanweisung eingesetzt werden, um Instanz-, Variablen- und Objektnamen wie im folgenden Beispiel dargestellt dynamisch festzulegen:
name[index] = "Gerhard";

Durch Erstellen eines Arrays, bei dessen Elementen es sich wiederum um Arrays handelt, knnen Sie in ActionScript auch mehrdimensionale Arrays einrichten. Fr den Zugriff auf die Elemente eines mehrdimensionalen Arrays knnen Sie den Array-Zugriffsoperator wie im folgenden Beispiel dargestellt in sich selbst verschachteln:
var chessboard = new Array(); for (var i=0; i<8; i++) { chessboard.push(new Array(8)); } function getContentsOfSquare(row, column){ chessboard[row][column]; }

Sie knnen in Ihren Skripts berprfen, ob die [] Operatoren bereinstimmen. Weitere Informationen hierzu finden Sie unter Syntax und Interpunktion berprfen auf Seite 74.

Objektpfade angeben
Wenn Sie einen Movieclip oder eine geladene SWF-Datei mit Hilfe einer Aktion steuern mchten, mssen Sie dessen bzw. deren Namen und Adresse in Form eines so genannten Zielpfades angeben. In ActionScript wird ein Movieclip ber seinen Instanznamen angesprochen. Die folgende Anweisung beispielsweise stellt die Eigenschaft _alpha des Movieclips star auf 50 % ein:
star._alpha = 50; So weisen Sie einem Movieclip einen Instanznamen zu:

1 Whlen Sie den Movieclip auf der Bhne aus. 2 Geben Sie im Eigenschafteninspektor einen Instanznamen an.

Objektpfade angeben

55

So sprechen Sie eine geladene SWF-Datei an:

Verwenden Sie in einer Anweisung den Ausdruck _levelX, wobei X fr die Nummer der Stufe
steht, die Sie beim Laden der SWF-Datei in der Aktion loadMovie() angegeben haben. Der Zielpfad einer SWF-Datei, die in Stufe 5 geladen wurde, lautet beispielsweise _level5. Im folgenden Beispiel wird eine SWF-Datei in Stufe 5 geladen und ihre Sichtbarkeitseigenschaft auf false eingestellt:
onClipEvent(load) { loadMovieNum("meinFilm.swf", 5); } onClipEvent (enterFrame) { _level5._visible = false; } So geben Sie den Zielpfad einer SWF-Datei ein:

Klicken Sie im Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen) auf
die Schaltflche Zielpfad einfgen, und whlen Sie aus der angezeigten Liste einen Movieclip aus. Weitere Informationen zu Zielpfaden finden Sie unter Absolute und relative Zielpfade in der Hilfe Flash verwenden.

Integrierte Funktionen verwenden


Eine Funktion ist ein ActionScript-Codeblock, der in einer SWF-Datei nach Belieben wiederverwendet werden kann. Wenn Sie Werte als Parameter an eine Funktion bergeben, werden diese von ihr verarbeitet. Eine Funktion kann auch Werte zurckgeben. Flash verfgt ber integrierte (vordefinierte) Funktionen, mit deren Hilfe Sie auf bestimmte Informationen zugreifen und bestimmte Aufgaben ausfhren knnen, um beispielsweise die Versionsnummer des Flash Players zu ermitteln, in dem die SWF-Datei wiedergegeben wird (getVersion()). Funktionen, die zu einem Objekt gehren, werden als Methoden bezeichnet. Funktionen, die nicht zu einem Objekt gehren, werden als Top-Level-Funktionen bezeichnet und sind im Bedienfeld Aktionen unter der Kategorie Funktionen aufgefhrt. Jede Funktion weist bestimmte Merkmale auf, und manche Funktionen erfordern die bergabe bestimmter Werte. Wenn Sie einer Funktion mehr Werte bergeben, als sie bentigt, werden die berzhligen Werte ignoriert. Wenn Sie einen erforderlichen Parameter nicht bergeben, wird dem leeren Parameter der Datentypwert undefined zugewiesen, was beim Exportieren des Skripts zu Fehlern fhren kann. Es knnen nur diejenigen Funktionen aufgerufen werden, die sich in einem Bild befinden, das der Abspielkopf erreicht hat. Rufen Sie Funktionen einfach mit dem Funktionsnamen auf, und bergeben Sie die erforderlichen Parameter:
isNaN(someVar); getTimer(); eval("someVar");

Weitere Informationen zu den einzelnen Funktionen finden Sie im jeweiligen Eintrag unter Kapitel 12, ActionScript-Lexikon, auf Seite 229.

56

Kapitel 2: ActionScript-Grundlagen

Funktionen erstellen
Sie knnen Funktionen definieren, um eine Reihe von Anweisungen mit bergebenen Werten auszufhren. Eine Funktion kann auch Werte zurckgeben. Nachdem eine Funktion definiert wurde, kann sie von jeder beliebigen Zeitleiste aus aufgerufen werden, so auch aus der Zeitleiste einer geladenen SWF-Datei. Eine gut geschriebene Funktion kann als eine Art Blackbox angesehen werden. Wenn ihre Einund Ausgaben sowie ihr Zweck sorgfltig dokumentiert sind, kann der Benutzer sie auch ohne genaue Kenntnis ihrer internen Funktionsweise einsetzen. Funktionen definieren Funktionen sind ebenso wie Variablen mit der Zeitleiste des Movieclips verknpft, in dem sie definiert sind, und mssen unter Angabe eines Zielpfades aufgerufen werden. Wie im Falle einer Variablen knnen Sie mit dem Bezeichner _global eine globale Funktion deklarieren, die auch ohne Zielpfad in allen Zeitleisten zur Verfgung steht. Um eine globale Funktion zu definieren, stellen Sie dem Funktionsnamen wie im folgenden Beispiel den Bezeichner _global voran:
_global.meineFunktion = function (x) { return (x*2)+3; }

Zum Definieren einer Zeitleistenfunktion verwenden Sie die Aktion function, gefolgt vom Namen der Funktion, den ihr zu bergebenden Parametern und den ActionScript-Anweisungen, die ihre Funktionsweise festlegen. Das folgende Beispiel zeigt eine Funktion namens areOfCircle mit dem Parameter radius:
function areaOfCircle(radius) { return Math.PI * radius * radius; }

Sie knnen eine Funktion auch definieren, indem Sie ein Funktionsliteral erstellen, d. h. eine unbenannte Funktion, die nicht in einer Anweisung, sondern in einem Ausdruck deklariert wird. Mit Hilfe eines Funktionsliterals knnen Sie wie im folgenden Beispiel in nur einem Ausdruck eine Funktion definieren sowie ihren Wert zurckgeben und einer Variablen zuweisen.
area = (function() {return Math.PI * radius *radius;})(5);

Wenn Sie eine Funktion neu definieren, wird ihre ursprngliche Definition durch die neue Definition ersetzt. Parameter an eine Funktion bergeben Parameter geben die Elemente an, auf die der Code einer Funktion angewendet wird. (In diesem Handbuch sind die Begriffe Parameter und Argument austauschbar.) Die folgende Funktion beispielsweise erhlt die Parameter initialen und endstand:
function spielstandAusfuellen(initialen, endstand) { spielstand.anzeige = initialen; spielstand.punktzahl = endstand; }

Funktionen erstellen

57

Beim Aufrufen der Funktion mssen die erforderlichen Parameter an sie bergeben werden. Die Funktion ersetzt die Parameter in der Funktionsdefinition durch die bergebenen Werte. In diesem Beispiel ist spielstand der Instanzname eines Movieclips, bei anzeige und punktzahl handelt es sich um Texteingabefelder der Instanz. Der folgende Funktionsaufruf weist der Variablen display den Wert "JEB" und der Variablen score den Wert 45000 zu:
spielstandAusfuellen("JEB", 45000);

Der Parameter initialen der Funktion spielstandAusfuellen() existiert hnlich wie bei lokalen Variablen nur so lange die Funktion aktiv ist und verliert seine Gltigkeit, sobald die Funktion beendet wird. Wenn Sie bei einem Funktionsaufruf einen erforderlichen Parameter nicht eingeben, wird dieser mit dem Wert undefined bergeben. Wenn Sie in einem Funktionsaufruf zustzliche Parameter bergeben, die die Funktion laut Deklaration nicht bentigt, werden diese ignoriert. Variablen in einer Funktion verwenden Mit Hilfe lokaler Variablen knnen Sie Ihren Code strukturieren und so gestalten, dass seine Funktionsweise leicht nachvollziehbar ist. Die lokalen Variablen einer Funktion sind fr alle anderen Skripts der SWF-Datei unsichtbar. Sie gelten nur innerhalb des Codeabschnittes der Funktion, in der sie deklariert sind, und verlieren ihre Gltigkeit, sobald die Funktion beendet wird. Alle an eine Funktion bergebenen Parameter werden ebenfalls als lokale Variablen behandelt. Sie knnen in einer Funktion auch globale und regulre Variablen verwenden. Wenn Sie globale oder regulre Variablen modifizieren, sollten Sie diese nderungen jedoch in Skriptkommentaren sorgfltig dokumentieren. Werte aus einer Funktion zurckgeben Mit Hilfe der Anweisung return knnen Sie Werte aus einer Funktion zurckgeben. Die Anweisung return beendet die Funktion und ersetzt sie durch die durch den Wert der Aktion return. Die folgenden Regeln bestimmen die Verwendung der return-Anweisung in Funktionen:

Wenn Sie einen anderen Rckgabetyp als void fr eine Funktion festlegen, mssen Sie eine
return-Anweisung

in die Funktion einschlieen.

Wenn Sie als Rckgabetyp void festlegen, sollten Sie keine return-Anweisung einschlieen. Wenn Sie keinen Rckgabetyp festlegen, ist der Einschluss einer return-Anweisung optional.
Wenn Sie keine Anweisung festlegen, wird ein leerer String zurckgegeben. Die folgende Funktion beispielsweise gibt das Quadrat des Parameters x wieder und legt fest, dass der zurckgegebene Wert eine Zahl sein muss:
function sqr(x):Number { return x * x; }

58

Kapitel 2: ActionScript-Grundlagen

Bestimmte Funktionen fhren eine Reihe von Aufgaben aus, ohne einen Wert zurckzugeben. Die folgende Funktion beispielsweise initialisiert mehrere globale Variablen:
function initialize() { boot_x = _global.boot._x; boot_y = _global.boot._y; pkw_x = _global.pkw._x; pkw_y = _global.pkw._y; }

Benutzerdefinierte Funktionen aufrufen Mit Hilfe eines Zielpfades knnen Sie eine Funktion in einer beliebigen Zeitleiste von einer beliebigen Zeitleiste aus aufrufen, so auch von der Zeitleiste einer geladenen SWF-Datei. Eine Funktion, die mit dem Bezeichner _global deklariert wurde, lsst sich auch ohne Angabe eines Zielpfades aufrufen. Um eine Funktion aufzurufen, geben Sie ggf. den Zielpfad zum Namen der Funktion ein, und bergeben Sie die erforderlichen Parameter in Klammern. Die Anweisung im folgenden Beispiel ruft die Funktion sqr() im Movieclip MathLib in der Hauptzeitleiste auf, bergibt ihr den Parameter 3 und speichert das Ergebnis in der Variablen temp:
var temp = _root.MathLib.sqr(3);

Im folgenden Beispiel wird die Funktion initialize(), die in der Hauptzeitleiste definiert wurde und keine Parameter erfordert, unter Angabe eines absoluten Pfades aufgerufen.
_root.initialize();

Im folgenden Beispiel wird die Funktion list(), die im Movieclip functionsClip definiert wurde, unter Angabe eines relativen Pfades aufgerufen:
_parent.functionsClip.list(6);

Funktionen erstellen

59

60

Kapitel 2: ActionScript-Grundlagen

KAPITEL 3 Skripts schreiben und debuggen

In Macromedia Flash MX 2004 und Macromedia Flash MX Professional 2004 knnen Sie Skripts schreiben, die in Ihre FLA-Datei eingebettet oder extern auf Ihrem Computer gespeichert sind. (Wenn Sie ActionScript 2.0 Klassendateien schreiben, mssen Sie jede Klasse als externe Datei mit demselben Namen wie die jeweilige Klasse speichern.) Um eingebettete Skripts zu schreiben, hngen Sie die jeweilige Aktion im Bedienfeld Aktionen an eine Schaltflche oder einen Movieclip bzw. an ein Bild in der Zeitleiste (siehe Ausfhrung von ActionScript steuern auf Seite 61). Sie knnen externe Skriptdateien mit einem beliebigen Texteditor oder CodeEditor schreiben. In Flash Professional knnen Sie auerdem das integrierte Skriptfenster verwenden. Weitere Informationen finden Sie unter Bedienfeld Aktionen und Skriptfenster verwenden auf Seite 64. Auerdem knnen Sie mit dem ActionScript-Editor Ihr Skript auf Syntaxfehler prfen, Code automatisch formatieren sowie Codehinweise mit Informationen zur Syntax von Anweisungen anzeigen. Darber hinaus haben Sie die Mglichkeit, automatisch fehlende Klammern in Ihrem Code ausfindig zu machen. Weitere Informationen finden Sie unter ActionScript-Editor verwenden auf Seite 67. Sie sollten jedes Dokument whrend der Bearbeitung regelmig testen, um sicherzustellen, dass die Wiedergabe flssig und wie erwartet erfolgt. Mit dem Bandbreiten-Profiler knnen Sie die Darstellung Ihrer Dokumente bei unterschiedlichen Verbindungsraten simulieren (siehe Downloadleistung eines Dokuments testen in der Hilfe Flash verwenden). Sie knnen Ihre Skripts mit einer speziellen Debugger-Version des Flash Players testen, die Sie bei der Fehlerbehebung untersttzt. Ein gut durchdachter Ansatz beim Programmieren in ActionScript erleichtert das Debuggen in Skripts, falls es zu unerwartetem Verhalten kommen sollte. Weitere Informationen finden Sie unter Skripts debuggen auf Seite 75.

Ausfhrung von ActionScript steuern


Nachdem Sie ein Skript geschrieben haben, weisen Sie es im Bedienfeld Aktionen einem Bild in einer Zeitleiste bzw. einer Schaltflche oder einem Movieclip auf der Bhne zu. Skripts, die einem Bild zugewiesen sind, werden ausgefhrt, sobald der Abspielkopf dieses Bild erreicht. Ein Skript, das dem ersten Bild einer SWF-Datei zugewiesen ist, kann sich hierbei allerdings anders verhalten als ein Skript in einem der nachfolgenden Bilder, da die in diesem Bild enthaltenen Objekte whrend des Herunterladens in den Flash Player auf der Bhne dargestellt werden, das Bild also schrittweise wiedergegeben wird und sich dies auf den Zeitpunkt der Aktionsaufrufe auswirkt. Alle weiteren Bilder hingegen werden vollstndig wiedergegeben, sobald smtliche in ihnen enthaltenen Objekte verfgbar sind.

61

Skripts, die einem Movieclip oder einer Schaltflche zugewiesen sind, werden ausgefhrt, wenn ein bestimmtes Ereignis eintritt. Ein Ereignis wird in der SWF-Datei ausgelst, wenn der Benutzer z. B. eine Mausaktion ausfhrt oder eine Taste drckt oder wenn ein Movieclip geladen wird. Mit Hilfe von ActionScript knnen Sie feststellen, wann ein solches Ereignis eintritt, und ein entsprechendes Skript ausfhren. Weitere Informationen finden Sie in Kapitel 4, Ereignisse verarbeiten, auf Seite 91. Um eine Aktion auszufhren, wenn eine bestimmte Bedingung erfllt ist, oder um eine Aktion zu wiederholen, knnen Sie die Anweisungen if, else, else if, for, while, do while, for..in oder switch verwenden, die spter in diesem Abschnitt kurz beschrieben werden. Bedingungen prfen Anweisungen, die prfen, ob eine bestimmte Bedingung erfllt ist (true) oder nicht (false), beginnen mit dem Schlsselwort if. Wenn die Bedingung erfllt ist, wird die auf die Bedingung folgende Anweisung ausgefhrt, Andernfalls berspringt ActionScript die bedingte Anweisung und fhrt mit der ersten auf den betreffenden Codeblock folgenden Anweisung fort. Um eine mglichst hohe Leistung Ihres Codes zu erzielen, sollten Sie die Bedingungen, die mit der grten Wahrscheinlichkeit erfllt sein drften, als erste berprfen. Die folgenden Anweisungen berprfen drei Bedingungen. Mit dem Schlsselwort else if werden alternative Bedingungen angegeben, die berprft werden, wenn die vorhergehenden Bedingungen nicht erfllt (false) sind.
if (kennwort == null || email == null) { gotoAndStop("reject"); } else if (kennwort == benutzerID){ gotoAndPlay("startMovie"); }

Wenn Sie eine oder mehrere Bedingungen berprfen mchten, knnen Sie die switchAnweisung anstelle mehrerer else if-Anweisungen verwenden. Aktionen wiederholen ActionScript kann eine Aktion so lange wiederholen, bis eine bestimmte Anzahl von Durchlufen erreicht oder eine bestimmte Bedingung erfllt bzw. nicht mehr erfllt ist. Dies geschieht mit Hilfe von Schleifen, die durch die Aktionen while, do..while, for und for..in erzeugt werden knnen.
So wiederholen Sie eine Aktion, bis eine bestimmte Bedingung nicht mehr erfllt ist:

Verwenden Sie eine while-Anweisung.


In einer while-Schleife wird ein Ausdruck ausgewertet und der Code im Schleifenabschnitt ausgefhrt, wenn die Auswertung den Ergebniswert true zurckgibt. Nachdem alle Anweisungen im Schleifenabschnitt ausgefhrt wurden, wird der Ausdruck erneut ausgewertet. Im folgenden Beispiel wird die Schleife viermal ausgefhrt:
i = 4; while (var i > 0) { mein_mc.duplicateMovieClip("neuerMC" + i, i ); i--; }

62

Kapitel 3: Skripts schreiben und debuggen

Mit einer do..while-Anweisung knnen Sie eine Schleife erzeugen, die hnlich funktioniert wie die while-Schleife. In einer do...while-Schleife wird der Ausdruck am Ende des Codeblocks ausgewertet, sodass sie mindestens ein Mal ausgefhrt wird. Beispiel:
i = 4; do { mein_mc.duplicateMovieClip("neuerMC" +i, i ); i--; } while (var i > 0); So wiederholen Sie eine Aktion mit einem integrierten Zhler:

Verwenden Sie eine for-Anweisung.


In den meisten Schleifen wird irgendeine Art von Zhler verwendet, um die Anzahl der Wiederholungen zu steuern. Jede Ausfhrung einer Schleife wird als Iteration bezeichnet. Sie knnen eine Variable deklarieren und eine Anweisung schreiben, die ihren Wert bei jeder Ausfhrung der Schleife erhht oder herabsetzt. In der Aktion for sind sowohl der Zhler als auch die Anweisung, die den Wert dieses Zhlers mit jeder Iteration erhht, enthalten. Im folgenden Beispiel wird der ursprngliche Ausdruck (var i = 4) als erster Ausdruck vor der ersten Iteration ausgewertet. Der zweite Ausdruck (i > 0) enthlt die Bedingung, die vor der jeder Ausfhrung der Schleife geprft wird. Der dritte Ausdruck (i--) wird nach jeder Ausfhrung der Schleife ausgewertet.
for (var i = 4; i > 0; i--){ meinMC.duplicateMovieClip("neuerMC" + i, i + 10); } So durchlaufen Sie die Unterobjekte eines Movieclips oder Objekts:

Verwenden Sie eine for..in-Anweisung.


Bei Unterobjekten kann es sich um andere Movieclips, Funktionen, Objekte oder Variablen handeln. Im folgenden Beispiel wird die Anweisung trace zum Ausgeben der Ergebnisse im Bedienfeld Ausgabe verwendet:
meinObjekt = { name:'Joe', alter:25, ort:'San Francisco' }; for (propertyName in meinObjekt) { trace("meinObjekt hat die Eigenschaft: " + propertyName + ", mit dem Wert: " + meinObjekt[propertyName]); }

Das Ergebnis im Bedienfeld Ausgabe sieht folgendermaen aus:


meinObjekt hat die Eigenschaft: name, mit dem Wert: Joe meinObjekt hat die Eigenschaft: alter, mit dem Wert: 25 meinObjekt hat die Eigenschaft: ort, mit dem Wert: San Francisco

Unter Umstnden kann es sinnvoll sein, ein Skript nur auf Unterobjekte eines bestimmten Typs anzuwenden, zum Beispiel nur auf Movieclips. Dies lsst sich mit Hilfe einer for..in-Schleife in Verbindung mit dem Operator typeof realisieren.
for (name in meinMovieClip) { if (typeof (meinMovieclip[name]) == "movieclip") { trace("Ich habe einen untergeordneten Movieclip namens " + name); } }

Weitere Informationen zu den einzelnen Aktionen finden Sie in den jeweiligen Eintrgen unter Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Ausfhrung von ActionScript steuern

63

Bedienfeld Aktionen und Skriptfenster verwenden


Sie knnen Flash-Skripts in Ihre FLA-Datei einbetten oder sie als externe Dateien speichern. Es wird empfohlen, so viel ActionScript-Code wie mglich in externen Dateien zu speichern. Auf diese Weise kann Code in mehreren FLA-Dateien erneut verwendet werden. In Ihrer FLA-Datei knnen Sie anschlieend ein Skript erstellen, das Anweisungen vom Typ #include verwendet, um auf den extern gespeicherten Code zuzugreifen. Mit dem .as-Suffix knnen Sie Ihre Skripts als ActionScript (AS)-Dateien identifizieren. (Wenn Sie benutzerdefinierte Klassendateien schreiben, mssen Sie sie als externe AS-Dateien speichern.)
Hinweis: Wenn Sie FLA-Dateien verffentlichen, exportieren, testen oder debuggen, wird der ActionScript-Code in externen Dateien in eine SWF-Datei kompiliert. Wenn Sie also eine externe Datei ndern, mssen Sie die Datei speichern und alle FLA-Dateien, die sie verwenden, neu kompilieren.

Wenn Sie ActionScript-Code in Ihre FLA-Datei einbetten, knnen Sie den Code mit Bildern und Objekten verknpfen. Eingebetteter ActionScript-Code sollte nach Mglichkeit mit dem ersten Bild der Zeitleiste verknpft werden. Auf diese Weise mssen Sie die FLA-Datei nicht nach Ihrem Code durchsuchen, da er sich zentral an einer Stelle befindet. Erstellen Sie die Ebene Aktionen, und schreiben Sie den Code auf diese Ebene. Selbst wenn Sie Code in andere Bilder schreiben oder ihn mit Objekten verknpfen, mssen Sie so nur auf einer Ebene nach dem Code suchen. Um Skripts zu erstellen, die ein Teil Ihres Dokuments sind, geben Sie ActionScript-Code direkt in das Bedienfeld Aktionen ein. Externe Skripts knnen Sie mit Ihrem bevorzugten Texteditor bzw. in Flash Professional mit dem Skriptfenster erstellen. Beim Bedienfeld Aktionen bzw. Skriptfenster verwenden Sie denselben ActionScript-Editor und geben Ihren Code in das Skriptfenster auf der rechten Bedienfeld- bzw. Fensterseite ein. Zur Reduktion der Eingabemenge knnen Sie Aktionen auch aus der Werkzeugleiste fr Aktionen auswhlen und auf das Skriptfenster ziehen.
So rufen Sie das Bedienfeld Aktionen auf:

Whlen Sie Fenster > Entwicklungs-Bedienfelder > Aktionen. Drcken Sie die Funktionstaste <F9>.
(Nur in Flash Professional) Fhren Sie zum Anzeigen des Skriptfensters einen der folgenden Schritte aus:

Um ein neues Skript zu schreiben, whlen Sie Datei > Neu > ActionScript-Datei. Um ein vorhandenes Skript zu ffnen, whlen Sie Datei > ffnen, und ffnen Sie eine
vorhandene ActionScript-Datei (.as). Um ein geffnetes Skript zu bearbeiten, klicken Sie auf die Dokument-Registerkarte, die den Skriptnamen enthlt. (Dokument-Registerkarten werden nur unter Microsoft Windows untersttzt.)

64

Kapitel 3: Skripts schreiben und debuggen

Informationen ber die ActionScript Editor-Umgebung Die Umgebung des ActionScript-Editors besteht aus zwei Bereichen. Rechts befindet sich das Skriptfenster, d. h. der Bereich, in den Sie den Code eingeben. Links befindet sich die Werkzeugleiste fr Aktionen, die einen Eintrag fr jedes Element der ActionScript-Sprache enthlt. In der Werkzeugleiste fr Aktionen im Bedienfeld Aktionen befindet sich auerdem ein SkriptNavigator zur visuellen Darstellung der Struktur Ihrer FLA-Datei. Hier knnen Sie durch Ihre FLA-Datei navigieren, um nach ActionScript-Code zu suchen. Wenn Sie auf einen Eintrag im Skript-Navigator klicken, wird das mit dem Eintrag verknpfte Skript im Skriptfenster angezeigt, und der Abspielkopf wird zur der Position in der Zeitleiste verschoben. Wenn Sie auf einen Eintrag im Skript-Navigator doppelklicken, wird das Skript festgesetzt (siehe Skripts in einer FLA-Datei verwalten auf Seite 66).
Werkzeugleiste fr Aktionen Skript-Navigator* Popupmen

* nur Bedienfeld Aktionen

Bedienfeld Aktionen und Skriptfenster verwenden

65

Oberhalb des Skriptfensters befinden sich auerdem mehrere Schaltflchen:


Zielpfad einfgen* Elemente zu Skripts hinzufgen Suchen Ersetzen Syntax berprfen Auto-Format Codehinweis zeigen Referenz Debug-Optionen* Popupmen Ansichtsoptionen

* nur Bedienfeld Aktionen

Im Skriptfenster knnen Sie Aktionen bearbeiten, Parameter fr Aktionen eingeben oder Aktionen lschen. Darber hinaus knnen Sie auch auf eine Option in der Werkzeugleiste Aktionen oder auf die Schaltflche Hinzufgen (+) ber dem Skriptfenster doppelklicken, um Aktionen im Skriptfenster hinzuzufgen. Skripts in einer FLA-Datei verwalten Wenn Sie den gesamten Code in einer FLA-Datei nicht zentral an einer Stelle einfgen, knnen Sie im Bedienfeld Aktionen mehrere Skripts vorne anzeigen (fixieren), um leichter zwischen ihnen wechseln zu knnen. In der folgenden Abbildung befindet sich das Skript, das mit der aktuellen Position in der Zeitleiste verknpft ist, in Bild 1 der Ebene Cleanup. (Die Registerkarte ganz links folgt immer der aktuellen Position in der Zeitleiste.) Das Skript wird ebenfalls vorne angezeigt (es wird als Registerkarte ganz rechts angezeigt). Zwei weitere Skripts sind ebenfalls fixiert; das eine in Bild 1 und das andere in Bild 15 der Ebene Intro. Sie knnen zwischen den fixierten Skripts hin und her wechseln, indem Sie entweder auf die Registerkarten klicken oder Tastaturbefehle verwenden. Dadurch ndert sich nicht Ihre aktuelle Position in der Zeitleiste.

Tipp: ndert sich der im Skriptfenster angezeigte Inhalt nicht mit der Position, die Sie auf der Zeitleiste whlen, dann zeigt das Skriptfenster mglicherweise ein fixiertes Skript. Klicken Sie auf die Registerkarte unten links im Skriptfenster, um das ActionScript anzuzeigen, das mit Ihrer Position auf der Zeitleiste verknpft ist. So zeigen Sie ein Skript vorne an:

1 Setzen Sie den Mauszeiger in die Zeitleiste, sodass das Skript in einer Registerkarte unten links

im Skriptfenster des Bedienfelds Aktionen angezeigt wird.


2 Fhren Sie einen der folgenden Schritte aus:

Klicken Sie auf das Pinwandnadel-Symbol rechts von der Registerkarte. (Wenn die Pinwandnadel so wie das Symbol ganz links in der folgenden Abbildung aussieht, wird das Skript bereits vorne angezeigt; wenn Sie auf das Symbol klicken, wird die Fixierung aufgelst.) Klicken Sie mit der rechten Maustaste (Windows) bzw. mit gedrckter Befehlstaste (Macintosh) auf die Registerkarte, und whlen Sie Skript immer vorne. Whlen Sie aus dem Popupmen Optionen den Befehl Skript immer vorne (oben rechts im Bedienfeld).

66

Kapitel 3: Skripts schreiben und debuggen

So zeigen Sie ein oder mehrere Skripts nicht immer vorne an:

Fhren Sie einen der folgenden Schritte aus:

Wenn ein fixiertes Skript auf einer Registerkarte unten links im Skriptfenster des Bedienfelds Aktionen angezeigt wird, klicken Sie auf das Pinwandnadel-Symbol rechts von der Registerkarte. (Wenn die Pinwandnadel so wie das Symbol ganz links aussieht, wird das Skript bereits vorne angezeigt; wenn Sie auf das Symbol klicken, wird die Fixierung aufgelst.) Klicken Sie mit der rechten Maustaste (Windows) bzw. bei gedrckter Befehlstaste (Macintosh) auf eine Registerkarte, und whlen Sie Skript schlieen oder Alle Skripts schlieen. Whlen Sie aus dem Popupmen Optionen den Befehl Skript schlieen oder Alle Skripts schlieen (oben rechts im Bedienfeld).

Tastenkombinationen mit vorne angezeigten Skripts verwenden:

Fr die Arbeit mit vorne angezeigten Skripts knnen Sie folgende Tastenkombinationen
verwenden:
Aktion Skript fixieren Fixierung auflsen Fokus zur Registerkarte rechts verschieben Fokus zur Registerkarte links verschieben Windows Tastenkombination Strg-= (Ist-Gleich-Zeichen) Strg-- (Minus-Zeichen) Strg-Umschalt-. (Punkt) Strg-Umschalt-, (Komma) Macintosh Tastenkombination Befehl-= Befehl-Befehl-Umschalt-. Befehl-Umschalt-. Befehl-Umschalt-.

Fixierung aller Skripts auflsen Strg-Umschalt-- (Minus)

ActionScript-Editor verwenden
In Flash MX 2004 und Flash MX Professional 2004 stehen mehrere Werkzeuge zum Schreiben von syntaktisch korrektem Code und zum Festlegen der Voreinstellungen fr Codeformatierungen und andere Optionen zur Verfgung. Diese Funktionalitt wird in diesem Abschnitt beschrieben. Syntax hervorheben In ActionScript gelten, ebenso wie in jeder anderen Sprache, bestimmte Syntaxregeln, die festlegen, auf welche Weise die einzelnen Sprachelemente zu sinnvollen Aussagen zusammengefgt werden knnen. Eine fehlerhafte ActionScript-Syntax bewirkt, dass Ihr Skript nicht funktioniert. Beim Schreiben von Skripts in Flash MX 2004 und Flash MX Professional 2004 werden in der Werkzeugleiste fr Aktionen Befehle, die nicht von der adressierten Player-Version untersttzt werden, gelb dargestellt. Wenn beispielsweise die Flash Player SWF-Version auf Flash 6 eingestellt ist, werden in der Werkzeugleiste fr Aktionen ActionScript-Befehle gelb dargestellt, die nur von Flash Player 7 untersttzt werden. (Informationen zum Einstellen der Flash Player SWF-Version finden Sie unter Verffentlichungsoptionen fr das Flash SWF-Dateiformat einstellen

ActionScript-Editor verwenden

67

Sie knnen auerdem eine Voreinstellung festlegen, damit Flash Teile Ihrer Skripts beim Schreiben farblich kodiert. Auf diese Weise knnen Sie Tippfehler schneller ermitteln. Angenommen, Sie legen die Voreinstellung fr die Syntaxfarbcodierung so fest, dass Schlsselwrter dunkelgrn dargestellt werden. Wenn Sie beim Schreiben des Codes var eingeben, wird das Wort var grn dargestellt. Wenn Sie hingegen unbeabsichtigt vae schreiben, bleibt das Wort vae schwarz. Hierdurch knnen Sie sofort Ihren Tippfehler erkennen.
Um Voreinstellungen fr die Syntaxfarbcodierung beim Schreiben festzulegen, fhren Sie einen der folgenden Schritte aus:

Whlen Sie Bearbeiten > Voreinstellungen, und whlen Sie auf der Registerkarte ActionScript
die Einstellung Syntaxfarbcodierungen aus. Whlen Sie in der rechten oberen Ecke des Bedienfelds Aktionen aus dem Popupmen Optionen die Option Voreinstellungen, und whlen Sie auf der Registerkarte ActionScript die Einstellung Syntaxfarbcodierung aus.

Code zum Auslsen von Codehinweisen schreiben Wenn Sie im ActionScript-Editor arbeiten (entweder im Bedienfeld Aktionen oder im Skriptfenster), kann Flash die von Ihnen eingegebene Aktion ermitteln und einen entsprechenden Codehinweis anzeigen, d. h. eine QuickInfo mit der vollstndigen Syntax fr eine Aktion oder ein Popupmen mit einer Auflistung mglicher Methoden- oder Eigenschaftennamen. Codehinweise werden fr Parameter, Eigenschaften und Ereignisse angezeigt, wenn Sie Ihre Objekte strikt typisieren oder so benennen, dass der ActionScript-Editor die anzuzeigenden Codehinweise ermitteln kann. Dies wird im weiteren Verlauf dieses Abschnitts genauer beschrieben. Informationen zum Verwenden von angezeigten Codehinweisen finden Sie unter Codehinweise verwenden auf Seite 70.
Hinweis: Die Anzeige von Codehinweisen ist fr native Klassen automatisch aktiviert, fr die Sie keine Klassenobjekte erstellen und benennen mssen, wie z. B. Math, Key, Mouse usw.

Objekte zum Auslsen von Codehinweisen strikt typisieren In ActionScript 2.0 knnen Sie Variablen strikt typisieren, die auf einer integrierten Klasse basieren, wie z. B. Button, Array usw. Hierdurch zeigt der ActionScript-Editor Codehinweise fr die Variable an. Angenommen, Sie geben Folgendes ein:
var names:Array = new Array(); names.

Sobald Sie den Punkt (.) eingeben, zeigt Flash eine Liste von Methoden und Eigenschaften an, die fr Array-Objekte verfgbar sind, da Sie die Variable als Array deklariert haben. Weitere Informationen zur Datentypisierung finden Sie unter Strikte Typisierung auf Seite 42. Informationen zum Verwenden von angezeigten Codehinweisen finden Sie unter Codehinweise verwenden auf Seite 70.

68

Kapitel 3: Skripts schreiben und debuggen

Suffixe zum Auslsen von Codehinweisen verwenden Wenn Sie ActionScript 1 verwenden bzw. Codehinweise fr Objekte anzeigen mchten, die Sie ohne strikte Typisierung erstellen (siehe Objekte zum Auslsen von Codehinweisen strikt typisieren auf Seite 68), mssen Sie jedem Objektnamen beim Erstellen ein spezielles Suffix hinzufgen. Die Suffixe, die beispielsweise Codehinweise fr die Array-Klasse und die CameraKlasse auslsen, sind _array bzw. _cam. Geben Sie beispielsweise folgenden Code ein:
var mein_array = new Array(); var meine_cam = Camera.get();

Wenn Sie anschlieend einen der folgenden Variablennamen gefolgt von einem Punkt eingeben, werden Codehinweise fr das Array- bzw. das Camera-Objekt angezeigt.
mein_array. meine_cam.

Whlen Sie fr Objekte, die auf der Bhne angezeigt werden, das Suffix im Eigenschafteninspektor im Textfeld Instanzname. Um beispielsweise Codehinweise fr MovieClip-Objekte anzuzeigen, weisen Sie im Eigenschafteninspektor Instanznamen mit dem Suffix _mc allen MovieClip-Objekten zu. Wenn Sie spter den Instanznamen gefolgt von einem Punkt eingeben, werden Codehinweise angezeigt. Obwohl Suffixe nicht zum Auslsen von Codehinweisen bei der strikten Typisierung von Objekten erforderlich sind, empfiehlt es sich, Suffixe konsistent zu verwenden, damit Sie und andere Benutzer eine bessere bersicht ber Ihre Skripts erhalten. In der folgenden Tabelle sind die Suffixe zur Untersttzung automatischer Codehinweise aufgelistet.
Objekttyp Array Button Camera Color ContextMenu ContextMenuItem Date Error LoadVars LocalConnection Microphone MovieClip MovieClipLoader PrintJob NetConnection NetStream Variablensuffix _array _btn _cam _color _cm _cmi _date _err _lv _lc _mic _mc _mcl _pj _nc _ns

ActionScript-Editor verwenden

69

Objekttyp SharedObject Sound String TextField TextFormat Video XML XMLNode XMLSocket

Variablensuffix _so _sound _str _txt _fmt _video _xml _xmlnode _xmlsocket

Informationen zum Verwenden von angezeigten Codehinweisen finden Sie unter Codehinweise verwenden auf Seite 70. Kommentare zum Auslsen von Codehinweisen verwenden Sie knnen die Klasse eines Objekts fr die Anzeige der Codehinweise auch mit Hilfe von ActionScript-Kommentaren angeben. Der folgende Code teilt ActionScript beispielsweise mit, dass die Instanz theObject zur Object-Klasse usw. gehrt. Wenn Sie nach diesen Kommentaren beispielsweise mc gefolgt von einem Punkt eingeben, zeigt ein Codehinweis die Liste der MovieClip-Methoden und -Eigenschaften an. Wenn Sie theArray gefolgt von einem Punkt eingeben, zeigt ein Codehinweis die Liste der Array-Methoden und -Eigenschaften an usw.
// Object theObject; // Array theArray; // MovieClip mc;

Anstatt dieses Verfahrens werden von Macromedia jedoch die strikte Typisierung (siehe Objekte zum Auslsen von Codehinweisen strikt typisieren auf Seite 68) oder Suffixe (siehe Suffixe zum Auslsen von Codehinweisen verwenden auf Seite 69) empfohlen, da bei diesen Techniken Codehinweise automatisch aktiviert werden und Ihr Code verstndlicher wird. Codehinweise verwenden Standardmig sind die Codehinweise aktiviert. Sie haben jedoch die Mglichkeit, die Codehinweise in den Voreinstellungen zu deaktivieren oder festzulegen, wie rasch sie eingeblendet werden. Wenn Codehinweise in den Voreinstellungen deaktiviert werden, knnen Sie trotzdem einen Codehinweis fr einen bestimmten Befehl anzeigen.
Um die Einstellungen fr automatische Codehinweise festzulegen, fhren Sie einen der folgenden Schritte aus:

Whlen Sie Bearbeiten > Voreinstellungen, und aktivieren bzw. deaktivieren Sie anschlieend
auf der Registerkarte ActionScript die Option Codehinweise.

Whlen Sie in der rechten oberen Ecke des Bedienfelds Aktionen aus dem Popupmen
Optionen die Option Voreinstellungen aus, und aktivieren bzw. deaktivieren Sie auf der Registerkarte ActionScript die Option Codehinweise.

70

Kapitel 3: Skripts schreiben und debuggen

Wenn Sie die Codehinweise aktivieren, knnen Sie auch eine Verzgerung in Sekunden vor der Anzeige der Codehinweise angeben. Beispielsweise bevorzugen unerfahrene Benutzer von ActionScript mglicherweise keine Verzgerung, damit Codehinweise immer sofort angezeigt werden. Fortgeschrittene Benutzer, die im Allgemeinen wissen, was sie eingeben mssen, und lediglich Hinweise zu neuen Sprachelementen bentigen, knnen eine Verzgerung eingeben, damit Codehinweise nur bei Bedarf angezeigt werden.
So arbeiten Sie mit Codehinweisen in Form einer QuickInfo:

1 Geben Sie nach Elementen, fr die Klammern erforderlich sind, eine ffnende runde Klammer

[(] ein, z. B. Methodennamen, Befehle wie if oder do while usw. Der Codehinweis wird eingeblendet.

Hinweis: Wenn ein Codehinweis nicht angezeigt wird, prfen Sie, ob Sie die Codehinweise auf der Registerkarte ActionScript aktiviert haben. Wenn Codehinweise fr Variablen oder Objekte angezeigt werden sollen, die Sie erstellt haben, prfen Sie, ob Sie die Variablen oder Objekte richtig benannt (siehe Suffixe zum Auslsen von Codehinweisen verwenden auf Seite 69) bzw. die Variablen oder Objekte strikt typisiert haben (siehe Objekte zum Auslsen von Codehinweisen strikt typisieren auf Seite 68).

2 Geben Sie einen Parameterwert ein. Wenn Sie mehrere Parameter bergeben mchten, geben

Sie die entsprechenden Werte in Form einer Liste mit Kommas als Trennzeichen ein. Bei berladenen Befehlen wie gotoAndPlay() oder for (d. h. Funktionen oder Methoden, die mit unterschiedlichen Parametergruppen aufgerufen werden knnen) wird eine Auswahl der entsprechenden Parameter angezeigt. Klicken Sie zum Auswhlen des Parameters auf die kleinen Pfeilschaltflchen, oder drcken Sie <Strg>+<Nach-links> und <Strg>+<Nach-rechts>.

3 Fhren Sie einen der folgenden Schritte aus, um den Codehinweis auszublenden:

Geben Sie eine rechte runde Klammer [)] ein. Klicken Sie auf eine Stelle auerhalb der Anweisung. Drcken Sie die Taste <Esc>.

ActionScript-Editor verwenden

71

So arbeiten Sie mit Codehinweisen in Form eines Popupmens:

1 Geben Sie nach dem Variablen- oder Objektnamen einen Punkt ein.

Das Codehinweis-Men wird eingeblendet.

Hinweis: Wenn ein Codehinweis nicht angezeigt wird, prfen Sie, ob Sie die Codehinweise auf der Registerkarte ActionScript aktiviert haben. Wenn Codehinweise fr Variablen oder Objekte angezeigt werden sollen, die Sie erstellt haben, prfen Sie, ob Sie die Variablen oder Objekte richtig benannt (siehe Suffixe zum Auslsen von Codehinweisen verwenden auf Seite 69) bzw. die Variablen oder Objekte strikt typisiert haben (siehe Objekte zum Auslsen von Codehinweisen strikt typisieren auf Seite 68).

2 Bewegen Sie die Markierung mit Hilfe der Pfeiltasten auf den gewnschten Codehinweis. 3 Drcken Sie die Eingabe- oder Tab-Taste, um einen Listeneintrag auszuwhlen, oder

doppelklicken Sie auf den gewnschten Eintrag. 4 Fhren Sie einen der folgenden Schritte aus, um den Codehinweis auszublenden: Whlen Sie in der Menliste einen Eintrag aus. Klicken Sie auf eine Stelle auerhalb der Anweisung. Geben Sie eine rechte runde Klammer [)] ein (sofern Sie die Klammer in Schritt 1 geffnet haben.) Drcken Sie die Taste <Esc>.
So zeigen Sie Codehinweise manuell an:

1 Klicken Sie auf eine Stelle im Code, an der die Codehinweise angezeigt werden knnen. Hier

einige Beispiele fr derartige Situationen: Nach dem auf eine Anweisung bzw. einen Befehl folgenden Punkt, wo eine Eigenschaft oder Methode eingegeben werden muss Zwischen den Klammern in einem Methodennamen 2 Fhren Sie einen der folgenden Schritte aus: Klicken Sie oberhalb des Skriptfensters auf die Schaltflche Codehinweis zeigen. Halten Sie die Taste <Strg> (Windows) bzw. die Befehlstaste (Macintosh) gedrckt, und bettigen Sie die Leertaste. Im Bedienfeld Aktionen ffnen Sie das Popupmen (auf der rechten Seite der Titelleiste), und whlen Sie die Option Codehinweis zeigen.

72

Kapitel 3: Skripts schreiben und debuggen

Escape-Tastenkombinationen verwenden Sie knnen in Skripts viele Elemente mit Hilfe von Tastenkombinationen einfgen. Drcken Sie hierzu die Taste <Esc> gefolgt von zwei weiteren Tasten. (Diese Tastenkombinationen unterscheiden sich von den Tastaturkurzbefehlen, die bestimmte Menbefehle aufrufen.) Wenn Sie beispielsweise im Skriptfenster die Tastenkombination <Esc>+<d>+<o> drcken, wird der folgende Code in Ihr Skript gestellt, und der Cursor wird direkt hinter dem Wort while platziert, damit Sie die Bedingung eingeben knnen:
do { } while ();

Wenn Sie die Tastenkombination <Esc>+<c>+<h> drcken, wird der folgende Code in Ihr Skript gestellt, und der Cursor wird zwischen den Klammern platziert, damit Sie die Bedingung eingeben knnen:
catch () { }

Sie knnen die verfgbaren Escape-Tastenkombinationen fr Befehle im Bedienfeld Aktionen neben den Elementen anzeigen, wenn Sie lernen oder daran erinnert werden mchten, welche Befehle verfgbar sind.

So blenden Sie Escape-Tastenkombinationen ein und aus:

Aktivieren oder deaktivieren Sie im Popupmen Ansichtsoptionen die Option


Esc-Tastenkombinationen anzeigen.

ActionScript-Editor verwenden

73

Syntax und Interpunktion berprfen Um zu gewhrleisten, dass der von Ihnen geschriebene Code ordnungsgem ausgefhrt wird, mssen Sie die Datei verffentlichen oder testen. Sie knnen aber auch eine Schnellprfung Ihres ActionScript-Codes durchfhren, ohne die FLA-Datei zu schlieen. Syntaxfehler werden im Bedienfeld Ausgabe aufgelistet. (Wenn Sie die Syntax prfen, wird nur das aktuelle Skript geprft; andere Skripts, die sich in der FLA-Datei befinden knnen, werden nicht geprft.) Auerdem knnen Sie prfen, ob runde, geschweifte oder eckige Klammern (ArrayZugriffsoperatoren) um einen Codeblock fehlen.
So fhren Sie eine Syntaxprfung durch:

Klicken Sie oberhalb des Skriptfensters auf die Schaltflche Syntax berprfen. Blenden Sie in der rechten oberen Ecke des Bedienfelds Aktionen das Popupmen ein, und
whlen Sie Syntax berprfen. Drcken Sie <Strg>+<T> (Windows) bzw. <Befehl>+<T> (Macintosh).

So suchen Sie fehlende Klammern:

1 Klicken Sie auf einen Skriptabschnitt, der geschweifte Klammern {}, Array-Zugriffsoperatoren
[]

oder runde Klammern () enthlt.

2 Drcken Sie <Strg>+<'> (Windows) bzw. <Befehl>+<'> (Macintosh), um den Text zwischen

den runden, eckigen oder geschweiften Klammern hervorzuheben. Die Hervorhebung ermglicht Ihnen, auf einen Blick festzustellen, ob Sie eine geffnete Klammer ordnungsgem wieder geschlossen haben. Code formatieren Um zu bestimmen, ob Ihr Code automatisch oder manuell formatiert und eingerckt wird, knnen Sie entsprechende Einstellungen festlegen. Sie knnen auerdem auswhlen, ob Zeilennummern angezeigt und lange Codezeilen umgebrochen werden sollen.
So stellen Sie Formatoptionen ein:

1 Fhren Sie einen der folgenden Schritte aus:

Whlen Sie in der rechten oberen Ecke des Bedienfelds Aktionen im Popupmen Optionen die Option Auto-Format-Optionen. (Nur Flash Professional) Whlen Sie in einer externen Skriptdatei Bearbeiten > AutoFormat-Optionen. Das Dialogfeld Auto-Format-Optionen wird angezeigt. 2 Aktivieren Sie die gewnschten Kontrollkstchen. Im Vorschaufenster knnen Sie die Wirkungsweise Ihrer Einstellungen berprfen.

Nach dem Festlegen der Auto-Format-Optionen werden die Einstellungen automatisch auf den Code angewendet, den Sie schreiben, nicht jedoch auf bereits bestehenden Code. Um Einstellungen auf bestehenden Code anzuwenden, mssen Sie dies manuell durchfhren. Sie knnen dieses Verfahren zum Formatieren von Code verwenden, der mit anderen Einstellungen formatiert oder aus einem anderen Editor importiert wurde usw.

74

Kapitel 3: Skripts schreiben und debuggen

Um Code gem den Einstellungen unter Auto-Format-Optionen zu formatieren, fhren Sie einen der folgenden Schritte aus:

Klicken Sie oberhalb des Skriptfensters auf die Schaltflche Auto-Format. Whlen Sie im Popupmen des Bedienfelds Aktionen den Befehl Auto-Format. Drcken Sie <Strg>+<Umschalt>+<F> (Windows) bzw. <Befehl>+<Umschalt>+<F>
(Macintosh).
So verwenden Sie die automatische Einrckung:

Standardmig ist die automatische Einrckung aktiviert. Zum Deaktivieren dieser Funktion
klicken Sie in den Voreinstellungen von ActionScript auf das Kontrollkstchen Automatische Einrckung, um die Markierung zu entfernen. Wenn die automatische Einrckung aktiviert ist, wird der auf das Zeichen ( oder { folgende Text automatisch entsprechend der Tabulatoreinstellung in den Voreinstellungen von ActionScript eingerckt. Um eine weitere Zeile einzurcken, markieren Sie die entsprechende Zeile, und drcken Sie <Tab>. Zum Entfernen der Einrckung drcken Sie <Umschalt>+<Tab>.
So aktivieren bzw. deaktivieren Sie Zeilennummern und den Zeilenumbruch:

Aktivieren Sie im Popupmen Ansichtsoptionen die Optionen Zeilennummern anzeigen und


Zeilenumbruch.

Skripts debuggen
Flash bietet mehrere Tools zum Testen von ActionScript-Code in SWF-Dateien. Mit dem Debugger, der weiter hinten in diesem Abschnitt beschrieben wird, knnen Sie Fehler in einer im Flash Player laufenden SWF-Datei finden. Flash enthlt die folgenden zustzlichen DebuggingWerkzeuge:

Das Bedienfeld Ausgabe, in dem Fehlermeldungen und Listen der Variablen und Objekte
angezeigt werden (siehe Bedienfeld Ausgabe verwenden auf Seite 85) Die Anweisung trace, die Programmierhinweise und Ausdruckswerte in das Bedienfeld Ausgabe schreibt (siehe trace-Anweisung verwenden auf Seite 88) Die Anweisungen throw und try..catch..finally, mit denen Sie Laufzeitfehler aus Ihrem Skript heraus testen und darauf reagieren knnen Zugriffsmglichkeiten auf umfassende Compiler-Fehlermeldungen, mit denen Sie Probleme schneller diagnostizieren und lsen knnen (siehe Anhang A, Fehlermeldungen, auf Seite 799)

Sie mssen Ihre SWF-Datei in einer Sonderversion von Flash Player mit der Bezeichnung Flash Debug Player ansehen. Beim Installieren des Authoring-Tools wird der Flash Debug Player automatisch installiert. Wenn Sie also Flash installieren und eine Website mit Flash-Inhalt besuchen oder die Aktion Film testen durchfhren, dann verwenden Sie Flash Debug Player. Sie knnen auch das Installationsprogramm im Verzeichnis <anwendungsverzeichnis>\Players\Debug\ aktivieren oder aber den eigenstndigen Flash Debug Player aus demselben Verzeichnis heraus starten.

Skripts debuggen

75

Wenn Sie mit dem Befehl Film testen arbeiten, um Filme zu testen, die Tastatursteuerungen verwenden (Tabulatorbettigung, Tastenbefehle, die mit Key.addListener() erstellt werden usw.), dann whlen Sie Steuerung > Tastenbefehle deaktivieren. Diese Option verhindert, dass die Authoring-Umgebung Tastenanschlge fr sich ergreift, und sorgt dafr, dass diese bis zum Player gelangen. In der Authoring-Umgebung ffnet beispielsweise <Strg>+<U> das Dialogfeld Voreinstellungen. Wenn Ihr Skript <Strg>+<U> einer Aktion zuweist, die Text im Bildschirm unterstreicht, dann ffnen Sie mit dem Befehl Film testen durch Drcken der Tastenkombination <Strg>+<U> das Dialogfeld Voreinstellungen, anstatt die zur Textunterstreichung bentigte Aktion zu aktivieren. Damit der Befehl <Strg>+<U> bis zum Player gelangt, mssen Sie Strg > Tastenbefehle deaktivieren whlen.
Vorsicht: Der Befehl Film testen funktioniert nicht, wenn sich irgendwo im Pfad der SWF-Datei Zeichen befinden, die mit dem MBCS Codierschema nicht dargestellt werden knnen. Dies gilt beispielsweise fr japanische Pfade auf einem englischen System. Diese Einschrnkung ist gltig fr alle Bereiche der Anwendung, die mit einem externen Player arbeiten.

Im Debugger wird eine hierarchisch aufgebaute Liste der Movieclips angezeigt, die gegenwrtig im Flash Player geladen sind. Mit dem Debugger knnen Sie bei der Wiedergabe der SWF-Datei Variablen- und Eigenschaftswerte anzeigen und ndern sowie Haltepunkte setzen, um die SWFDatei anzuhalten und den ActionScript-Code Zeile fr Zeile zu durchlaufen. Der Debugger kann im Testmodus fr lokale Dateien sowie zum Testen von auf einem Webserver an einem Remote-Standort gespeicherten Dateien eingesetzt werden. Mit dem Debugger knnen Sie in Ihrem ActionScript Haltepunkte setzen, die den Flash Player stoppen und den Code whrend der Ausfhrung Schritt fr Schritt durchlaufen. Anschlieend knnen Sie zum Skript zurckkehren und dieses so bearbeiten, dass die gewnschten Ergebnisse erzielt werden. Nach Aktivierung des Debuggers sehen Sie in der Statusleiste die URL oder den lokalen Pfad der Datei, eine Angabe, ob die Datei im Testmodus oder an einem Remote-Standort ausgefhrt wird, sowie eine Live-Ansicht der Movieclip-Anzeigeliste. Wenn in der Datei Movieclips hinzugefgt oder entfernt werden, gehen diese nderungen sofort aus der Anzeigeliste hervor. Mit dem horizontalen Fensterteiler knnen Sie die Anzeigeliste bei Bedarf vergrern oder verkleinern.
So aktivieren Sie den Debugger im Testmodus:

Whlen Sie Steuerung > Film testen.

76

Kapitel 3: Skripts schreiben und debuggen

Dadurch wird der Debugger gestartet und die SWF-Datei im Testmodus geffnet.
Statusleiste Anzeigeliste berwachungsliste Codeansicht

An einem Remote-Standort gespeicherte SWF-Datei debuggen Zum Debuggen einer Remote-SWF-Datei knnen Sie den eigenstndigen Flash Player sowie die ActiveX- und Plug-In-Version des Players einsetzen. Beim Exportieren einer SWF-Datei knnen Sie das Debugging in der Datei aktivieren und ein Debugging-Kennwort erstellen. Wenn Sie das Debugging nicht aktivieren, wird der Debugger nicht gestartet. Sie knnen Ihre SWF-Datei mit einem Debugging-Kennwort verffentlichen, um sicherzustellen, dass nur autorisierte Benutzer die Dateien im Flash Debug Player ausfhren knnen. Wie bei JavaScript oder HTML knnen Benutzer auch bei ActionScript clientseitige Variablen sehen. Zur sicheren Speicherung von Variablen mssen Sie diese an eine Serveranwendung bertragen, statt sie in der Datei zu speichern. Viele Flash-Entwickler legen auerdem Wert darauf, andere Informationen, wie beispielsweise die Struktur von Movieclips, geheim zu halten. Mit Hilfe eines Debugging-Kennworts knnen Sie Ihre Arbeit schtzen. Beim Exportieren, Verffentlichen und Testen eines Films erstellt Flash eine SWD-Datei mit Debugging-Informationen. Um ein Remote-Debugging durchfhren zu knnen, mssen Sie die SWD-Datei auf dem Server im selben Ordner ablegen wie die SWF-Datei.
So aktivieren Sie das Remote-Debugging eines Flash-Films:

1 Whlen Sie Datei > Einstellungen fr Verffentlichungen. 2 Klicken Sie im Dialogfeld Einstellungen fr Verffentlichungen auf die Registerkarte Flash,

und whlen Sie Debugging zulassen.

Skripts debuggen

77

3 Geben Sie bei Bedarf ein Kennwort in das vorgesehene Feld ein.

Wenn Sie ein Kennwort festlegen, knnen ohne dieses Kennwort keine Informationen an den Debugger gesendet werden. Wenn Sie das Feld Kennwort leer lassen, ist kein Kennwort erforderlich. 4 Schlieen Sie das Dialogfeld Einstellungen fr Verffentlichungen, und whlen Sie einen der folgenden Befehle aus: Steuerung > Debugging Datei > Film exportieren Datei > Einstellungen fr Verffentlichungen > Verffentlichen Flash erstellt eine Debugging-Datei mit der Erweiterung .swd und speichert sie in demselben Verzeichnis wie die SWF-Datei. Die SWD-Datei enthlt Informationen, die den Einsatz von Haltepunkten und das schrittweise Durchlaufen von Code ermglichen. 5 Stellen Sie die SWD-Datei auf dem Server in dasselbe Verzeichnis wie die SWF-Datei. Wenn sich die SWD-Datei nicht im selben Verzeichnis wie die SWF-Datei befindet, knnen Sie zwar weiterhin ein Remote-Debugging durchfhren, doch der Debugger ignoriert Haltepunkte, und Sie knnen den Code nicht schrittweise durchlaufen. 6 Whlen Sie in Flash Fenster > Entwicklungs-Bedienfelder > Debugger. Whlen Sie im Debugger aus dem Popupmen Optionen den Befehl Remote-Fehlersuche aktivieren (oben rechts im Bedienfeld).
So aktivieren Sie den Debugger von einem Remote-Standort aus:

1 ffnen Sie die Flash-Authoring-Anwendung. 2 ffnen Sie in einem Browser oder im eigenstndigen Player die verffentlichte SWF-Datei vom

Remote-Standort aus. Das Dialogfeld Remote-Debugging wird angezeigt.

78

Kapitel 3: Skripts schreiben und debuggen

Wenn dieses Dialogfeld nicht erscheint, konnte Flash die SWD-Datei nicht finden. Klicken Sie in diesem Fall mit der rechten Maustaste (Windows) bzw. bei gedrckter Befehlstaste (Macintosh) auf die SWF-Datei, und whlen Sie im Kontextmen den Befehl Debugger.

3 Whlen Sie im Dialogfeld Remote-Debugging die Option Lokaler Host oder Anderer

Rechner: Whlen Sie Lokaler Host, wenn der Debug Player und die Flash-Authoring-Anwendung auf demselben Computer installiert sind. Whlen Sie Anderer Rechner, wenn der Debug Player und die Flash-AuthoringAnwendung nicht auf demselben Computer installiert sind. Geben Sie die IP-Adresse des Computers mit der Flash-Authoring-Anwendung ein. 4 Nach Herstellung der Verbindung werden Sie zur Eingabe des Kennworts aufgefordert. Geben Sie das Debugging-Kennwort ein, falls Sie eines festgelegt haben. Die Anzeigeliste der SWF-Datei wird im Debugger angezeigt. Variablen anzeigen und ndern Im Debugger werden auf der Registerkarte Variablen die Namen und Werte aller in der SWFDatei verwendeten globalen und Zeitleistenvariablen angezeigt. Wenn Sie den Wert einer Variablen auf dieser Registerkarte ndern, wirkt sich die nderung whrend der Wiedergabe auf die SWF-Datei aus. Wenn Sie beispielsweise die Kollisionserkennung in einem Spiel testen mchten, knnen Sie einen Variablenwert eingeben, mit dem ein Ball an der richtigen Stelle neben einer Wand positioniert wird. Auf der Registerkarte Lokale Variablen werden die Namen und Werte aller lokalen Variablen angezeigt, die an den Stellen, an denen die SWF-Datei an einem Haltepunkt angehalten wird, bzw. an einer beliebigen Stelle in einer benutzerdefinierten Funktion zur Verfgung stehen.
So zeigen Sie eine Variable an:

1 Whlen Sie in der Anzeigeliste den Movieclip aus, der die Variable enthlt.

Um globale Variablen anzuzeigen, whlen Sie in der Anzeigeliste den Clip _global aus. 2 Klicken Sie auf die Registerkarte Variablen.

Skripts debuggen

79

Die Anzeigeliste wird beim Abspielen der SWF-Datei automatisch aktualisiert. Wenn ein Movieclip in einem bestimmten Bild aus der SWF-Datei entfernt wird, wird dieser samt Variablen und Variablennamen aus der Anzeigeliste im Debugger gelscht. Wenn Sie jedoch eine Variable fr die berwachungsliste auswhlen (siehe berwachungsliste verwenden auf Seite 80), wird diese Variable nicht entfernt.

So ndern Sie einen Variablenwert:

Doppelklicken Sie auf den Wert, und geben Sie einen neuen Wert ein.
Der Wert kann kein Ausdruck sein. "Hallo", 3523 und "http://www.macromedia.com" sind beispielsweise zulssig, x + 2 oder eval("name:" +i) jedoch nicht. Der Wert kann ein String (ein beliebiger in Anfhrungszeichen stehender Wert), eine Zahl oder ein Boolescher Wert (true oder false) sein.
Hinweis: Im Testmodus knnen Sie mit der Aktion trace den Wert eines Ausdrucks in das Bedienfeld Ausgabe schreiben. Weitere Informationen hierzu finden Sie unter trace-Anweisung verwenden auf Seite 88.

berwachungsliste verwenden Wenn Sie eine Reihe wichtiger Variablen auf bersichtliche Weise berwachen mchten, knnen Sie diese zur Aufnahme in die berwachungsliste markieren. In der berwachungsliste werden der absolute Pfad einer Variablen und ihr Wert angezeigt. Sie knnen dort auch einen neuen Variablenwert eingeben. Wenn Sie eine lokale Variable zur berwachungsliste hinzufgen, erscheint ihr Wert nur, wenn der Flash Player in einer ActionScript-Zeile angehalten wird, in der diese Variable gltig ist. Alle anderen Variablen werden beim Abspielen der SWF-Datei angezeigt. Wenn der Debugger den Wert der Variablen nicht finden kann, wird die Variable als undefiniert angezeigt.

80

Kapitel 3: Skripts schreiben und debuggen

In der berwachungsliste knnen nur Variablen erscheinen, keine Eigenschaften oder Funktionen.

Fr die berwachungsliste markierte Variablen und Variablen in der berwachungsliste


Fhren Sie einen der folgenden Schritte aus, um Variablen zur berwachungsliste hinzuzufgen:

Klicken Sie auf der Registerkarte Variablen bzw. Lokale Variablen mit der rechten Maustaste
(Windows) bzw. bei gedrckter Taste <Ctrl> (Macintosh) auf eine markierte Variable, und whlen Sie im Kontextmen den Befehl berwachen. Neben der Variablen wird ein blauer Punkt angezeigt. Klicken Sie mit der rechten Maustaste (Windows) bzw. bei gedrckter Taste <Ctrl> (Macintosh) auf die Registerkarte berwachen, und whlen Sie im Kontextmen den Befehl Hinzufgen aus. Geben Sie den Zielpfad zum Variablennamen und den Wert in die vorgesehenen Felder ein.

So entfernen Sie Variablen aus der berwachungsliste:

Klicken Sie auf der Registerkarte berwachen mit der rechten Maustaste (Windows) bzw. bei
gedrckter Taste <Ctrl> (Macintosh), und whlen Sie im Kontextmen den Befehl Entfernen.

Skripts debuggen

81

Filmeigenschaften anzeigen und bearbeitbare Eigenschaften ndern In der Debugger-Registerkarte Eigenschaften werden smtliche Eigenschaftswerte aller auf der Bhne befindlichen Movieclips angezeigt. Die nderung eines Eigenschaftswertes wirkt sich whrend der Wiedergabe auf die SWF-Datei aus. Bestimmte Movieclip-Eigenschaften sind schreibgeschtzt und knnen nicht gendert werden.
So zeigen Sie die Eigenschaften eines Movieclips im Debugger an:

1 Whlen Sie in der Anzeigeliste einen Movieclip aus. 2 Klicken Sie im Debugger auf die Registerkarte Eigenschaften.

So ndern Sie einen Eigenschaftswert:

Doppelklicken Sie auf den Wert, und geben Sie einen neuen Wert ein.
Der Wert kann kein Ausdruck sein. 50 und "hochwasser" sind beispielsweise zulssig, x + 50 jedoch nicht. Der Wert kann ein String (ein beliebiger in Anfhrungszeichen stehender Wert), eine Zahl oder ein Boolescher Wert (true oder false) sein. Sie knnen im Debugger jedoch keine Objekt- und Arraywerte (beispielsweise {id: "bauer"} oder [1, 2, 3]) eingeben. Weitere Informationen hierzu finden Sie unter String-Operatoren auf Seite 51 und Werte in Ausdrcken mit Operatoren manipulieren auf Seite 49.
Hinweis: Im Testmodus knnen Sie mit der Aktion trace den Wert eines Ausdrucks in das Bedienfeld Ausgabe schreiben. Weitere Informationen hierzu finden Sie unter trace-Anweisung verwenden auf Seite 88.

82

Kapitel 3: Skripts schreiben und debuggen

Haltepunkte setzen und entfernen Mit Hilfe eines Haltepunkts knnen Sie eine im Flash Player ausgefhrte SWF-Datei an einer bestimmten ActionScript-Zeile anhalten. Haltepunkte erleichtern das Testen problematischer Stellen im Code. Wenn Sie beispielsweise eine Gruppe von if..else if-Anweisungen geschrieben haben und nicht ermitteln knnen, welche Schleife ausgefhrt wird, knnen Sie vor den Anweisungen einen Haltepunkt setzen und diese dann einzeln im Debugger durchlaufen. Haltepunkte knnen im Bedienfeld Aktionen oder im Debugger gesetzt werden (um Haltepunkte in externen Skripts zu setzen, mssen Sie den Debugger verwenden). Im Bedienfeld Aktionen gesetzte Haltepunkte werden zusammen mit dem Flash-Dokument (FLA-Datei) gespeichert. Im Debugger gesetzte Haltepunkte werden nicht in der FLA-Datei gespeichert und gelten nur fr die aktuelle Debugging-Sitzung.
Um im Bedienfeld Aktionen einen Haltepunkt zu setzen oder zu entfernen, fhren Sie einen der folgenden Schritte aus:

Klicken Sie auf den linken Rand. Haltepunkte werden durch einen roten Punkt dargestellt. Klicken Sie auf die Schaltflche Debug-Optionen oberhalb des Skriptfensters. Klicken Sie im Debugger mit der rechten Maustaste (Windows) oder bei gedrckter Taste
<Ctrl> (Macintosh), um das Kontextmen einzublenden, und whlen Sie dort Haltepunkt setzen, Haltepunkt entfernen oder Alle Haltepunkte entfernen. Drcken Sie <Strg> + <Umschalt> + <B> (Windows) bzw. <Befehl> + <Umschalt> + <B> (Macintosh).

Hinweis: In frheren Versionen von Flash wurde beim Klicken auf den linken Rand des Skriptfensters die Codezeile markiert. Jetzt wird hierdurch ein Haltepunkt hinzugefgt oder entfernt. Klicken Sie bei gedrckter Taste <Strg> (Windows) bzw. gedrckter Befehlstaste (Macintosh), um eine Codezeile auszuwhlen. Um im Debugger Haltepunkte zu setzen und zu entfernen, fhren Sie einen der folgenden Schritte aus:

Klicken Sie auf den linken Rand. Haltepunkte werden durch einen roten Punkt dargestellt. Klicken Sie oberhalb der Codeansicht auf die Schaltflche Haltepunkt ein/aus oder auf Alle
Haltepunkte entfernen. Klicken Sie im Debugger mit der rechten Maustaste (Windows) oder bei gedrckter Taste <Ctrl> (Macintosh), um das Kontextmen einzublenden, und whlen Sie dort Haltepunkt setzen, Haltepunkt entfernen oder Alle Haltepunkte entfernen. Drcken Sie <Strg> + <Umschalt> + <B> (Windows) bzw. <Befehl> + <Umschalt> + <B> (Macintosh). Wenn der Flash Player an einem Haltepunkt angehalten wird, knnen Sie in die entsprechende Codezeile wechseln bzw. die Codezeile verlassen oder berspringen. Wenn Sie im Bedienfeld Aktionen einen Haltepunkt in einem Kommentar oder einer leeren Zeile setzen, wird dieser ignoriert.

Skripts debuggen

83

Codezeilen durchlaufen Zu Beginn einer Debugging-Sitzung ist der Flash Player angehalten. Wenn Sie im Bedienfeld Aktionen Haltepunkte setzen, knnen Sie einfach auf die Schaltflche Weiter klicken, um die SWF-Datei abzuspielen, bis ein Haltepunkt erreicht ist. Angenommen, im folgenden Code ist in einer Schaltflche in der Zeile meineFunktion() ein Haltepunkt gesetzt.
on (press) { meineFunktion(); }

Wenn Sie auf die Schaltflche klicken, ist der Haltepunkt erreicht, und der Flash Player wird angehalten. Sie knnen jetzt in die Funktion meineFunktion() wechseln, damit der Debugger an der Stelle, an der die Funktion im Dokument definiert ist, zur ersten Zeile springt. Sie knnen die Funktion auch verlassen oder berspringen. Wenn Sie im Bedienfeld Aktionen keine Haltepunkte gesetzt haben, knnen Sie im Sprungmen im Debugger ein beliebiges Skript im Film auswhlen. Nach Auswahl eines Skripts knnen Sie Haltepunkte hinzufgen. Anschlieend mssen Sie auf die Schaltflche Weiter klicken, um den Film zu starten. Der Debugger wird angehalten, wenn der Haltepunkt erreicht ist. Beim Durchlaufen der verschiedenen Codezeilen ndern sich die Werte der Variablen und Eigenschaften in der berwachungsliste und in den Registerkarten Variablen, Lokale Variablen und Eigenschaften. Die Zeile, in der der Debugger angehalten ist, lsst sich an einem gelben Pfeil auf der linken Seite der Debugger-Codeansicht erkennen. Oberhalb der Codeansicht werden die folgenden Schaltflchen angezeigt:
Weiter Debuggen beenden Haltepunkt ein- oder ausschalten Alle Haltepunkte entfernen

Verlassen Hineinspringen berspringen

Wenn Sie auf Hineinspringen klicken, springt der Debugger in der mit dem gelben Pfeil gekennzeichneten Zeile in eine Funktion hinein. Hineinspringen kann nur bei benutzerdefinierten Funktionen verwendet werden.

84

Kapitel 3: Skripts schreiben und debuggen

Wenn Sie im folgenden Beispiel in Zeile 7 einen Haltepunkt setzen und auf Hineinspringen klicken, springt der Debugger auf Zeile 2. Wenn Sie erneut auf Hineinspringen klicken, springt der Debugger auf Zeile 3. Wenn Sie in einer Zeile ohne benutzerdefinierte Funktionen auf Hineinspringen klicken, wird diese Zeile bersprungen. Wenn der Debugger beispielsweise in Zeile 2 angehalten ist und Sie auf Hineinspringen klicken, springt der Debugger auf Zeile 3:
1 2 3 4 5 6 7 8 function meineFunktion() { x = 0; y = 0; } mover = 1; meineFunktion(); mover = 0;

Wenn Sie auf Verlassen klicken, springt der Debugger aus einer Funktion heraus. Diese Schaltflche funktioniert nur, wenn der Debugger gegenwrtig in einer benutzerdefinierten Funktion angehalten ist; sie verschiebt den gelben Pfeil auf die nchste Zeile nach der, in der diese Funktion aufgerufen wurde. Wenn Sie im obigen Beispiel in Zeile 3 einen Haltepunkt gesetzt haben und auf Verlassen klicken, springt der Debugger auf Zeile 8. Wenn Sie in einer Zeile, die nicht in einer benutzerdefinierten Funktion enthalten ist, auf Verlassen klicken, ergibt sich die gleiche Wirkung wie beim Klicken auf Weiter. Wenn der Debugger beispielsweise in Zeile 6 angehalten ist und Sie auf Verlassen klicken, setzt der Flash Player die Skriptausfhrung fort, bis ein Haltepunkt erreicht ist. Wenn Sie auf berspringen klicken, berspringt der Debugger eine Codezeile. Der gelbe Pfeil wird auf die nchste Zeile im Skript gesetzt, und alle benutzerdefinierten Funktionen werden ignoriert. Wenn der Debugger im obigen Beispiel in Zeile 7 angehalten ist und Sie auf berspringen klicken, gelangen Sie direkt zu Zeile 8. Dabei wird meineFunktion ignoriert. Wenn Sie auf Weiter klicken, wird die Zeile, in der der Player angehalten ist, verlassen und die Ausfhrung fortgesetzt, bis ein Haltepunkt erreicht ist. Wenn Sie auf Debuggen beenden klicken, wird zwar der Debugger deaktiviert, aber die Wiedergabe der SWF-Datei im Flash Player fortgesetzt.

Bedienfeld Ausgabe verwenden


Im Testmodus werden im Bedienfeld Ausgabe Informationen angezeigt, die Ihnen dabei helfen, Fehler in der SWF-Datei zu beheben. Manche Informationen, wie z. B. Syntaxfehler, werden automatisch angezeigt. Mit Hilfe der Befehle Objekte auflisten und Variablen auflisten knnen Sie sich weitere Informationen anzeigen lassen. Informationen hierzu finden Sie unter Objekte einer SWF-Datei auflisten auf Seite 86, Variablen einer SWF-Datei auflisten auf Seite 86 und . Wenn Sie in Ihren Skripts die Anweisung trace verwenden, knnen Sie spezifische Informationen an das Bedienfeld Ausgabe senden, whrend die SWF-Datei wiedergegeben wird, wie z. B. Anmerkungen zum Status der SWF-Datei oder den Wert eines Ausdrucks. (Weitere Informationen finden Sie unter trace-Anweisung verwenden auf Seite 88.) Um das Bedienfeld Ausgabe anzuzeigen, whlen Sie Fenster > Entwicklungs-Bedienfelder > Ausgabe, oder drcken Sie die Taste <F2>.
Hinweis: Wenn Sie bei Syntaxfehlern in einem Skript die Syntax prfen oder Ihre SWF-Datei testen, wird das Bedienfeld Ausgabe automatisch angezeigt.

Bedienfeld Ausgabe verwenden

85

Um mit dem Inhalt des Bedienfelds Ausgabe zu arbeiten, klicken Sie auf das Popupmen Optionen in der rechten oberen Ecke.

Objekte einer SWF-Datei auflisten Im Testmodus knnen Sie mit dem Befehl Objekte auflisten die Stufe, das Bild, den Objekttyp (Form, Movieclip oder Schaltflche), die Zielpfade und die Instanzennamen von Movieclips, Schaltflchen und Textfeldern in einer hierarchischen Liste anzeigen. Dies erleichtert insbesondere das Auffinden des korrekten Zielpfads und Instanznamens. Im Gegensatz zum Debugger wird diese Liste bei der Wiedergabe der SWF-Datei nicht automatisch aktualisiert. Wenn Sie Informationen an das Bedienfeld Ausgabe senden mchten, mssen Sie den Befehl Objekte auflisten jedes Mal neu auswhlen. Mit dem Befehl Objekte auflisten werden nicht alle ActionScript-Datenobjekte aufgelistet. In diesem Zusammenhang wird eine Form oder ein Symbol auf der Bhne als Objekt betrachtet.
So listen Sie die Objekte in einem Film auf:

1 Wenn der Film nicht im Testmodus luft, whlen Sie Steuerung > Film testen. 2 Whlen Sie Debuggen > Objekte auflisten.

Im Bedienfeld Ausgabe wird eine Liste der gegenwrtig auf der Bhne befindlichen Objekte angezeigt. Beispiel:
Level #0: Frame=1 Label="Scene_1" Button: Target="_level0.meinButton" Shape: Movie Clip: Frame=1 Target="_level0.meinMovieClip" Shape: Edit Text: Target="_level0.meinTextField" Text="Beispieltext."

Variablen einer SWF-Datei auflisten Im Testmodus knnen Sie mit dem Befehl Variablen auflisten alle gegenwrtig in der SWF-Datei vorhandenen Variablen anzeigen. Dies erleichtert insbesondere das Auffinden des korrekten Zielpfads und Variablennamens. Im Gegensatz zum Debugger wird diese Liste bei der Wiedergabe der SWF-Datei nicht automatisch aktualisiert. Wenn Sie Informationen an das Bedienfeld Ausgabe senden mchten, mssen Sie den Befehl Objekte auflisten jedes Mal neu auswhlen. Der Befehl Variablen auflisten zeigt auch globale Variablen an, die mit dem Bezeichner _global deklariert wurden. Die globalen Variablen werden am Anfang der Variablenausgabe im Abschnitt Globale Variablen angezeigt. Vor jeder Variablen steht das Prfix _global.

86

Kapitel 3: Skripts schreiben und debuggen

Darber hinaus zeigt der Befehl Variablen auflisten Get-/Set-Eigenschaften an, d. h. Eigenschaften, die mit der Methode Object.addProperty erstellt wurden und Get-/SetMethoden aufrufen. Eine Get-/Set-Eigenschaft wird im jeweiligen Objekt neben allen anderen Eigenschaften angezeigt. Damit sich diese Eigenschaften leicht von normalen Variablen unterscheiden lassen, steht vor dem Wert einer Get-/Set-Eigenschaft das Prfix [getter/ setter]. Der Wert einer Get-/Set-Eigenschaft wird durch Auswertung der entsprechenden GetFunktion berechnet.
So listen Sie die Variablen in einer SWF-Datei auf:

1 Wenn die SWF-Datei nicht im Testmodus luft, whlen Sie Steuerung > Film testen. 2 Whlen Sie Debuggen > Variablen auflisten.

Im Bedienfeld Ausgabe wird eine Liste der gegenwrtig in der SWF-Datei vorhandenen Variablen angezeigt. Beispiel:
Globale Variablen: Variable _global.MeinGlobalArray = [object #1] [ 0:1, 1:2, 2:3 ] Level #0: Variable _level0.$version = "WIN 6,0,0,101" Variable _level0.RegularVariable = "Gary" Variable _level0.AnObject = [object #1] { MeinProperty: [getter/setter] 3.14159 }

Textfeldeigenschaften zum Debuggen anzeigen Mit dem Befehl Debuggen > Variablen auflisten im Filmtestmodus knnen Sie DebuggingInformationen zu TextField-Objekten abrufen. Im Bedienfeld Ausgabe werden die folgenden Konventionen fr die Anzeige von TextField-Objekten verwendet:

Wenn eine Eigenschaft bei einem Objekt nicht gefunden wird, wird sie nicht angezeigt. Auf einer Zeile werden hchstens vier Eigenschaften angezeigt. Eine Eigenschaft mit einem Stringwert wird auf einer separaten Zeile angezeigt. Wenn weitere Eigenschaften fr das Objekt definiert wurden, nachdem die integrierten Eigenschaften verarbeitet wurden, werden sie mit den Regeln unter dem zweiten und dritten Aufzhlungspunkt der Anzeige hinzugefgt. Farbeigenschaften werden als Hexadezimalzahlen angezeigt (0x00FF00). Die Eigenschaften werden in der folgenden Reihenfolge anzeigt: variable, text, htmlText, html, textWidth, textHeight, maxChars, borderColor, backgroundColor, textColor, border, background, wordWrap, password, multiline, selectable, scroll, hscroll, maxscroll, maxhscroll, bottomScroll, type, embedFonts, restrict, length, tabIndex, autoSize.

Mit dem Befehl Debuggen > Variablen auflisten im Filmtestmodus knnen Sie TextFieldObjekte auflisten. Wenn fr ein Textfeld ein Instanzname festgelegt wurde, wird der vollstndige Zielpfad einschlielich Instanzname wie folgt im Ausgabefeld angezeigt:
Ziel = "Zielpfad"

Bedienfeld Ausgabe verwenden

87

trace-Anweisung verwenden Mit Hilfe der Anweisung trace knnen Sie von einem Skript aus Informationen an das Bedienfeld Ausgabe senden. Wenn Sie beispielsweise einen Film oder eine Szene testen, knnen Sie bestimmte Programmierhinweise an das Bedienfeld bertragen oder festlegen, dass beim Klicken auf eine Schaltflche oder beim Abspielen eines Bilds bestimmte Ergebnisse angezeigt werden. Die Anweisung trace ist mit der Anweisung alert in JavaScript vergleichbar. Wenn Sie die Anweisung trace in einem Skript einsetzen, knnen Sie Ausdrcke als Parameter verwenden. Im Testmodus wird der Wert eines Ausdrucks im Bedienfeld Ausgabe angezeigt. Beispiel:

Die von der Anweisung trace zurckgegebenen Werte werden im Bedienfeld Ausgabe angezeigt.
onClipEvent (enterFrame) { trace("onClipEvent enterFrame " + enterFrame++) }

Flash Player zum Testen aktualisieren


Sie knnen die neueste Version des Flash Players von der Website von Macromedia unter http:// www.macromedia.com/go/flash_support_de herunterladen und zum Testen Ihrer SWF-Dateien verwenden.

88

Kapitel 3: Skripts schreiben und debuggen

TEIL II Ereignisse verarbeiten und Interaktionen erstellen

TEIL II

Ereignisse knnen durch Benutzer generiert werden (z. B. Mausklicks oder Tastenaktionen), oder sie treten als Ergebnis eines anderen Vorgangs auf (z.<hs>B. Laden einer XML-Datei ber das Netzwerk). Im ersten Kapitel dieses Hauptabschnitts werden die unterschiedlichen Arten von Ereignissen in Macromedia Flash und deren Verwendung in ActionScript beschrieben. Im zweiten Kapitel wird die Anwendung dieser Verfahren zum Erstellen von einfachen interaktiven Prsentationen, Anwendungen und Animationen erlutert. Kapitel 4: Ereignisse verarbeiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Kapitel 5: Interaktionen mit ActionScript erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

KAPITEL 4 Ereignisse verarbeiten

Ein Ereignis ist eine Software- oder Hardware-Instanz, fr die eine Reaktion aus einer Macromedia Flash-Anwendung erforderlich ist. Ein Ereignis, wie z. B. ein Mausklick oder ein Tastendruck, wird als Benutzerereignis bezeichnet, da es aus einer direkten Benutzerinteraktion resultiert. Ereignisse, die automatisch vom Flash Player generiert werden, wie z. B. die anfngliche Darstellung eines Movieclips auf der Bhne, werden als Systemereignisse bezeichnet, da sie nicht direkt vom Benutzer generiert werden. Fr die Reaktion Ihrer Anwendung auf Ereignisse ist eine so genannte Ereignisprozedur erforderlich. Dabei handelt es sich um einen mit einem bestimmten Objekt und Ereignis verknpften ActionScript-Code. Wenn der Benutzer beispielsweise auf eine Schaltflche auf der Bhne klickt, soll der Abspielkopf zum nchsten Bild springen, oder wenn der Ladevorgang einer XML-Datei ber das Netzwerk abgeschlossen ist, soll der Inhalt dieser Datei in einem Textfeld angezeigt werden. In ActionScript gibt es verschiedene Verfahren zum Verarbeiten von Ereignissen: Ereignisprozedurmethoden, Ereignis-Listener sowie Schaltflchen- und MovieclipEreignisprozeduren.

Ereignisprozedurmethoden verwenden
Ereignisprozedurmethoden sind Klassenmethoden, die aufgerufen werden, wenn ein Ereignis fr eine Instanz dieser Klasse eintritt. Beispielsweise definiert die Button-Klasse die Prozedur onPress, die aufgerufen wird, wenn Sie auf ein Button-Objekt klicken. Allerdings werden Ereignisprozeduren im Gegensatz zu anderen Methoden einer Klasse nicht direkt aufgerufen. Ereignisprozeduren werden vielmehr automatisch vom Flash Player aufgerufen, wenn ein entsprechendes Ereignis eintritt. Standardmig sind Ereignisprozedurmethoden nicht definiert: Wenn ein bestimmtes Ereignis eintritt, wird die zugehrige Ereignisprozedur aufgerufen, aber die Anwendung reagiert nicht auf weitere Weise auf das Ereignis. Damit Ihre Anwendung auf das Ereignis reagieren kann, definieren Sie mit der Funktionsanweisung eine Funktion und weisen diese Funktion anschlieend der entsprechenden Ereignisprozedur zu. Die der Ereignisprozedur zugewiesene Funktion wird dann jedes Mal automatisch aufgerufen, wenn dieses Ereignis eintritt.

91

Eine Ereignisprozedur besteht aus drei Teilen: dem Objekt, fr das das Ereignis gilt, dem Namen der Ereignisprozedurmethode fr das Objekt und der Funktion, die der Ereignisprozedur zugewiesen ist. Im folgenden Beispiel wird die Grundstruktur einer Ereignisprozedur dargestellt.
object.eventMethod = function () { // Eigenen Code hier einfgen, auf Ereignis reagieren }

Angenommen, auf der Bhne befindet sich die Schaltflche next_btn. Durch den folgenden Code wird der Schaltflchen-Ereignisprozedur onPress eine Funktion zugewiesen, durch die der Abspielkopf auf das nchste Bild in der Zeitleiste springt.
next_btn.onPress = function () nextFrame(); }

Im oben beschriebenen Code wird der Schaltflchen-Ereignisprozedur onPress direkt die Funktion nextFrame() zugewiesen. Sie knnen einer Ereignisprozedurmethode auch eine Funktionsreferenz (d. h. einen Namen) zuweisen und die Funktion spter definieren.
// Funktionsreferenz zur onPress-Ereignisprozedur zuweisen next_btn.onPress = goNextFrame; // doSubmit()-Funktion definieren function goNextFrame() { nextFrame(); }

Sie weisen der Ereignisprozedur onPress hierbei die Funktionsreferenz zu, nicht den Rckgabewert der Funktion.
// Falsch! next_btn.onPress = goNextFrame(); // Richtig. next_btn.onPress = goNextFrame;

Einige Ereignisprozeduren erhalten bergebene Parameter, die Informationen ber das aufgetretene Ereignis enthalten. Wenn beispielsweise ein Textfeld Tastaturfokus erhlt, wird die Ereignisprozedur TextField.onSetFocus aufgerufen. Diese Ereignisprozedur empfngt eine Referenz auf das Textfeldobjekt, das zuvor Tastaturfokus besa. Durch den folgenden Code wird beispielsweise Text in das Textfeld eingefgt, das gerade den Tastaturfokus verloren hat.
userName_txt.onSetFocus = function(oldFocus_txt) { oldFocus_txt.text = "Tastaturfokus verloren"; }

Mit den folgenden ActionScript-Klassen werden Ereignisprozeduren definiert: Button, ContextMenu, ContextMenuItem, Key, LoadVars, LocalConnection, Mouse, MovieClip, MovieClipLoader, Selection, SharedObject, Sound, Stage, TextField, XML und XMLSocket. Weitere Informationen ber die darin verfgbaren Ereignisprozeduren finden Sie in den Eintrgen zu diesen Klassen in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

92

Kapitel 4: Ereignisse verarbeiten

Sie knnen Ereignisprozeduren auch Funktionen fr Objekte zuweisen, die Sie zur Laufzeit erstellen. Durch den folgenden Code wird beispielsweise eine neue Movieclip-Instanz (newclip_mc) erstellt. Anschlieend wird der Ereignisprozedur onPress des Clips eine Funktion zugewiesen.
_root.attachMovie("symbolID", "newclip_mc", 10); newclip_mc.onPress = function () { trace("Gedrckt"); }

Weitere Informationen finden Sie unter Movieclips zur Laufzeit erstellen auf Seite 138.

Ereignis-Listener verwenden
Durch Ereignis-Listener knnen so genannte Listener-Objekte Ereignisse empfangen, die von anderen Objekten namens Broadcaster-Objekten generiert wurden. Mit dem Broadcaster-Objekt wird das Listener-Objekt zum Empfangen von Ereignissen vom Broadcaster registriert. Sie knnen beispielsweise ein Movieclip-Objekt zum Empfangen von onResize-Benachrichtigungen von der Bhne registrieren. Mglicherweise mchten Sie auch, dass eine Schaltflcheninstanz onChanged-Benachrichtigungen von einem Textfeld erhlt. Sie knnen mehrere Listener-Objekte zum Empfangen von Ereignissen von einem einzelnen Broadcaster registrieren. Darber hinaus lassen sich einzelne Listener-Objekte zum Empfangen von Ereignissen von mehreren Broadcastern registrieren. Das Ereignismodell fr Ereignis-Listener hnelt dem fr Ereignisprozeduren (siehe Ereignisprozedurmethoden verwenden auf Seite 91), allerdings mit zwei wichtigen Unterschieden:

Das Objekt, dem Sie die Ereignisprozedur zuweisen, ist nicht das Objekt, das das Ereignis
ausgibt. Eine spezielle Methode des Broadcaster-Objekts, addListener(), registriert das ListenerObjekt zum Empfangen der zugehrigen Ereignisse.

Um Ereignis-Listener zu verwenden, erstellen Sie ein Listener-Objekt mit einer Eigenschaft, die den Namen des vom Broadcaster-Objekt generierten Ereignisses trgt. Danach weisen Sie dem Ereignis-Listener eine Funktion zu, die auf bestimmte Weise auf das Ereignis reagiert. Schlielich rufen Sie die Methode addListener() fr das Objekt auf, das das Broadcasting fr das Ereignis durchfhrt. Dabei wird der Name des Listener-Objekts bertragen. Durch den folgenden Code wird das Ereignis-Listener-Modell definiert.
listenerObject.eventName = function(){ // Eigenen Code hier einfgen }; broadcastObject.addListener(listenerObject);

Beim angegebenen Listener-Objekt kann es sich um ein beliebiges Objekt handeln, z. B. um einen Movieclip oder eine Schaltflcheninstanz auf der Bhne bzw. eine Instanz einer beliebigen ActionScript-Klasse. Der Ereignisname ist ein Ereignis, das fr broadCastObject auftritt, das anschlieend ein Broadcasting des Ereignisses fr listenerObject durchfhrt. Sie knnen einem Broadcaster mehrere Listener zuweisen. Im folgenden Beispiel wird beschrieben, wie mit dem Ereignis-Listener Selection.onSetFocus ein einfacher Fokusmanager fr eine Gruppe von Eingabetextfeldern erstellt wird. Hierbei wird der Rahmen des Textfelds aktiviert (eingeblendet), das den Tastaturfokus erhlt. Der Rahmen des Textfelds, das den Fokus verloren hat, wird deaktiviert.

Ereignis-Listener verwenden

93

So erstellen Sie mit Ereignis-Listenern einen einfachen Fokusmanager:

1 Erstellen Sie auf der Bhne mit dem Textwerkzeug ein Textfeld. 2 Markieren Sie das Textfeld, whlen Sie im Eigenschafteninspektor aus dem Popupmen

Texttyp den Befehl Eingabe, und aktivieren Sie die Option Rahmen um Text zeigen. 3 Erstellen Sie unter dem ersten Eingabetextfeld ein weiteres Feld. Die Option Rahmen um Text zeigen darf dabei fr dieses Textfeld nicht aktiviert sein. Erstellen Sie bei Bedarf weitere Eingabetextfelder. 4 Whlen Sie in der Zeitleiste Bild 1 aus, und ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen). 5 Um ein Objekt zu erstellen, das auf eine Fokusbenachrichtigung von der Selection-Klasse wartet, geben Sie im Bedienfeld Aktionen den folgenden Code ein:
var focusListener = new Object(); focusListener.onSetFocus = function(oldFocus_txt, newFocus_txt) { oldFocus_txt.border = false; newFocus_txt.border = true; }

Durch diesen Code wird das neue (generische) ActionScript-Objekt focusListener erstellt. In diesem Objekt wird eine eigene onSetFocus-Eigenschaft definiert, dem das Objekt eine Funktion zuweist. Die Funktion erfordert zwei Parameter: eine Referenz auf das Textfeld, das den Fokus verloren hat, und eine zum Textfeld, das den Fokus erhalten hat. Durch die Funktion wird die Eigenschaft border des Textfelds, das den Fokus verloren hat, auf false und die Eigenschaft border des Textfelds, das den Fokus erhalten hat, auf true eingestellt. 6 Um das Objekt focusListener zum Empfangen von Ereignissen vom Selection-Objekt zu registrieren, fgen Sie im Bedienfeld Aktionen den folgenden Code hinzu:
Selection.addListener(focusListener);

7 Testen Sie den Film (Steuerung > Film testen), klicken Sie in das erste Textfeld, und drcken

Sie die Taste <Tab>, um den Fokus zwischen den Feldern umzuschalten. Damit die Registrierung eines Listener-Objekts zum Empfangen von Ereignissen aufgehoben wird, rufen Sie die Methode removeListener() des Broadcaster-Objekts auf und bertragen ihr den Namen des Listener-Objekts.
broadcastObject.removeListener(listenerObject);

Ereignis-Listener knnen fr Objekte der folgenden ActionScript-Klassen verwendet werden: Key, Mouse, MovieClipLoader, Selection, TextField und Stage. Eine Liste der verfgbaren Ereignis-Listener fr die einzelnen Klassen finden Sie unter den jeweiligen Eintrgen zu diesen Klassen in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

94

Kapitel 4: Ereignisse verarbeiten

Schaltflchen- und Movieclip-Ereignisprozeduren verwenden


Mit den Prozeduren onClipEvent() und on() knnen Ereignisprozeduren einer Schaltflche oder einer Movieclip-Instanz direkt zugeordnet werden. Die Prozedur onClipEvent() dient zur Verwaltung von Movieclip-Ereignissen, und die Prozedur on() dient zur Verwaltung von Schaltflchenereignissen. Sie knnen die Prozedur on() auch in Verbindung mit einem Movieclip verwenden, um Movieclips zu erstellen, die auf Schaltflchenereignisse reagieren. Weitere Informationen hierzu finden Sie unter Movieclips mit Schaltflchenzustnden erstellen auf Seite 96. Um eine der Prozeduren on() oder onClipEvent() zu verwenden, ordnen Sie diese direkt einer Instanz einer Schaltflche oder eines Movieclips auf der Bhne zu und geben das Ereignis an, das diese Instanz verarbeiten soll. Die folgende Ereignisprozedur on() wird beispielsweise ausgefhrt, wenn der Benutzer auf die Schaltflche klickt, der die Prozedur zugeordnet ist.
on(press){ trace("Gedrckt."); }

Fr jede on()-Prozedur knnen auch zwei oder mehr Ereignisse angegeben werden, die durch Kommata voneinander getrennt sind. ActionScript in einer Prozedur wird ausgefhrt, wenn eines der Ereignisse eintritt, die in der Prozedur angegeben sind. Beispielsweise wird die folgende on()Prozedur, die einer Schaltflche zugeordnet ist, dann ausgefhrt, wenn die Maus auerhalb der Schaltflche bewegt wird.
on(rollOver, rollOut) { trace("Maus wurde auerhalb der Schaltflche bewegt"); }

Wenn bei verschiedenen Ereignissen unterschiedliche Skripts ausgefhrt werden sollen, knnen Sie einem Objekt auch mehrere Prozeduren zuordnen. Folgende onClipEvent()-Prozeduren beispielsweise knnen derselben Movieclip-Instanz zugeordnet werden. Die erste Prozedur wird beim ersten Laden des Movieclips ausgefhrt, d. h. beim ersten Anzeigen auf der Bhne. Die zweite Prozedur wird beim Entfernen des Movieclips von der Bhne ausgefhrt, d. h. beim Entladen.
onClipEvent(load) { trace("Geladen"); } onClipEvent (unload) { trace("Entladen"); }

Eine vollstndige Liste der Ereignisse, die durch die Ereignisprozeduren on() und onClipEvent() untersttzt werden, finden Sie unter on() auf Seite 600 und onClipEvent() auf Seite 602.

Schaltflchen- und Movieclip-Ereignisprozeduren verwenden

95

Die Ereignisverarbeitung durch die Prozeduren on() und onClipEvent() fhrt nicht zu Konflikten mit der Ereignisverarbeitung durch Ereignisprozeduren, die Sie definiert haben. Angenommen, fr eine Schaltflche in Ihrer SWF-Datei ist eine on(press)-Prozedur vorhanden, die zum Abspielen der SWF-Datei fhrt. Fr dieselbe Schaltflche kann eine onPress-Methode vorhanden sein, fr die Sie eine Funktion definieren, durch die die Drehung eines Objekts auf der Bhne ausgelst wird. Wenn Sie auf die Schaltflche klicken, wird die SWF-Datei abgespielt, und das Objekt wird gedreht. Je nach Wunsch knnen Sie on()- und onClipEvent()-Prozeduren, Ereignisprozedurmethoden oder eine Kombination aus beiden Ereignisverarbeitungstypen verwenden. Der Gltigkeitsbereich von Variablen und Objekten in on()- und onClipEvent()Prozeduren weicht jedoch vom Gltigkeitsbereich von Ereignisprozeduren und EreignisListenern ab. (Weitere Informationen finden Sie unter Gltigkeitsbereich von Ereignisprozeduren auf Seite 97.)
onClipEvent()- und on()-Prozeduren knnen nur solchen Movieclip-Instanzen zugeordnet werden, die beim Authoring auf der Bhne platziert wurden. In Movieclip-Instanzen, die beispielsweise mit Hilfe der Methode attachMovie() zur Laufzeit whrend der Filmwiedergabe erstellt wurden, lassen sich onClipEvent()- und on()-Prozeduren hingegen nicht aufrufen. Mit Ereignisprozedurmethoden oder Ereignis-Listenern hngen Sie Ereignisprozeduren an Objekte an, die zur Laufzeit erstellt wurden. (Weitere Informationen hierzu finden Sie unter Ereignisprozedurmethoden verwenden auf Seite 91 und Ereignis-Listener verwenden auf Seite 93.)

Movieclips mit Schaltflchenzustnden erstellen


Beim Zuordnen einer on()-Prozedur zu einem Movieclip bzw. beim Zuweisen einer Funktion zu einer der MovieClip-Mausereignisprozeduren fr eine Movieclip-Instanz reagiert der Movieclip auf Mausereignisse in derselben Weise wie Schaltflchen. Wenn Sie zur Zeitleiste des Movieclips die Bildbezeichnungen _up, _over und _down hinzufgen, werden automatische Schaltflchenzustnde (Auf, Darber und Drcken) erstellt. Wenn der Benutzer den Mauszeiger ber den Movieclip bewegt bzw. auf den Movieclip klickt, wird der Abspielkopf in das Bild mit der passenden Bildbezeichnung geschrieben. Mit der Eigenschaft hitArea der MovieClip-Klasse legen Sie den vom Film verwendeten Kollisionsbereich fest.
So erstellen Sie Schaltflchenzustnde in Movieclips:

1 Whlen Sie ein Bild in der Zeitleiste des Movieclips aus, das Sie fr einen der

Schaltflchenzustnde (Auf, Darber oder Drcken) verwenden mchten. 2 Geben Sie im Eigenschafteninspektor eine Bildbezeichnung (_up, _over oder _down) an. 3 Wiederholen Sie die Schritte 1 und 2, und fgen Sie die brigen Schaltflchenzustnde hinzu. 4 Damit der Movieclip auf Mausereignisse reagiert, fhren Sie einen der folgenden Schritte aus: Weisen Sie der Movieclip-Instanz eine on()-Ereignisprozedur zu, wie unter Schaltflchenund Movieclip-Ereignisprozeduren verwenden auf Seite 95 beschrieben. Weisen Sie einer der Ereignisprozeduren des Movieclip-Mausereignisses (onPress, onRelease usw.) eine Funktion zu, wie unter Ereignisprozedurmethoden verwenden auf Seite 91 beschrieben.

96

Kapitel 4: Ereignisse verarbeiten

Gltigkeitsbereich von Ereignisprozeduren


Der Gltigkeitsbereich (oder Kontext) von Variablen und Befehlen, die Sie in einer Ereignisprozedur deklarieren bzw. ausfhren, hngt von dem Typ der verwendeten Ereignisprozedur ab: Ereignisprozeduren oder Ereignis-Listener bzw. die Prozeduren on() und onClipEvent(). Funktionen, die Ereignisprozedurmethoden und Ereignis-Listenern zugewiesen sind (wie alle von Ihnen geschriebenen ActionScript-Funktionen), definieren einen lokalen Variablengltigkeitsbereich. Fr on()- und onClipEvent()-Prozeduren gilt dies jedoch nicht. Betrachten Sie beispielsweise die folgenden beiden Ereignisprozeduren. Bei der ersten handelt es sich um eine onPress-Ereignisprozedur, die mit dem Movieclip clip_mc. verknpft ist. Die zweite ist eine on()-Prozedur, die mit derselben Movieclip-Instanz verknpft ist.
// Mit Zeitleiste von Parent-Clip clip_mc verknpft: clip_mc.onPress = function () { var color; // lokale Funktionsvariable color = "Blau"; } // on()-Prozedur an clip_mc angehaengt: on(press){ var color; // kein lokaler Gltigkeitsbereich fr Variable color = "Blau"; }

Obwohl beide Ereignisprozeduren denselben Code enthalten, fallen die Ergebnisse unterschiedlich aus. Im ersten Fall ist die Variable color eine lokale Variable fr die fr onPress definierte Funktion. Im zweiten Fall bezieht sich der Variablengltigkeitsbereich auf die Zeitleiste des Movieclips clip_mc, da die Prozedur on() keinen lokalen Variablengltigkeitsbereich definiert. Bei on()-Ereignisprozeduren, die nicht Movieclips, sondern Schaltflchen zugeordnet sind, sind Variablen (sowie Funktions- und Methodenaufrufe) innerhalb der Zeitleiste gltig, die die Schaltflcheninstanz enthlt. Die folgende on()-Ereignisprozedur fhrt z. B. zu unterschiedlichen Ergebnissen, je nachdem, ob sie einem Movieclip- oder einem Button-Objekt zugeordnet ist. Im ersten Fall wird mit der play()-Funktion der Abspielkopf der Zeitleiste gestartet, die die Schaltflche enthlt; im zweiten Fall wird mit der play()-Funktion die Zeitleiste des Movieclips gestartet, dem die Prozedur zugewiesen ist.
// Einer Schaltflche zugewiesen on(press){ play(); // Gibt bergeordnete Zeitleiste wieder } // Einem Movieclip zugewiesen on(press){ play(); // Gibt Zeitleiste des Movieclips wieder }

Wenn die play()-Methode einem Button-Objekt zugewiesen ist, wird sie fr die Zeitleiste aufgerufen, in der sich die Schaltflche befindet, d. h. fr die bergeordnete Zeitleiste der Schaltflche. Wenn allerdings dieselbe Prozedur einem Movieclip-Objekt zugeordnet ist, wird die play()-Methode fr den Movieclip angewendet, in dem die Prozedur enthalten ist.

Gltigkeitsbereich von Ereignisprozeduren

97

Innerhalb einer Ereignisprozedur- oder Ereignis-Listener-Funktionsdefinition wrde die gleiche play()-Funktion auf die Zeitleiste angewendet, die die Funktionsdefinition enthlt. Angenommen, die folgende MovieClip.onPress-Ereignisprozedurfunktion wird auf der Zeitleiste deklariert, die die Movieclip-Instanz meinMovieClip enthlt.
// Auf der Movieclip-Zeitleiste festgelegte Funktion: meinMovieclip.onPress = function () { play(); // Gibt die Zeitleiste wieder, die die Funktionsdefinition enthlt }

Wenn Sie den Movieclip wiedergeben mchten, durch den die onPress-Ereignisprozedur definiert wird, mssen Sie mit dem Schlsselwort this auf den Movieclip verweisen:
meinMovieclip.onPress = function () { this,play(); // Gibt die Zeitleiste des Movieclips wieder, durch den die onPress-Prozedur definiert wird }

Gltigkeitsbereich des Schlsselworts this


Das Schlsselwort this verweist auf das Objekt im aktuellen Gltigkeitsbereich. Je nachdem, welcher Typ von Ereignisprozeduren verwendet wird, kann this auf verschiedene Objekte verweisen.
In einer Ereignisprozedur- oder Ereignis-Listener-Funktion verweist this auf das Objekt, durch das die Ereignisprozedur- oder Ereignis-Listener-Methode festgelegt wird. Im folgenden Code verweist this z. B. auf meinClipselbst. // _level0.meinClip zugewiesene onPress()-Ereignisprozedur: meinClip.onPress = function () { trace(this); // Anzeige: '_level0.meinClip' } In einer einem Movieclip zugewiesenen on()-Prozedur

verweist this auf den Movieclip, dem

die on()-Prozedur zugewiesen ist.


// Einem Movieclip namens 'meinClip' zugewiesen on(press){ trace(this); // Anzeige: '_level0.meinClip' } In einer on()-Prozedur, die einer Schaltflche zugewiesen ist, verweist this auf die Zeitleiste,

die die Schaltflche enthlt.


// Einer Schaltflche auf der Hauptzeitleiste zugewiesen on(press){ trace(this); // Anzeige: '_level0' }

98

Kapitel 4: Ereignisse verarbeiten

KAPITEL 5 Interaktionen mit ActionScript erstellen

In einfachen Animationen gibt Macromedia Flash Player die einzelnen Szenen und Bilder einer SWF-Datei nacheinander wieder. In einer interaktiven SWF-Datei hingegen kann der Benutzer mit Hilfe von Tastatur oder Maus gezielt bestimmte Szenen aufrufen, Objekte bewegen, Informationen in Formulare eingeben oder andere interaktive Operationen ausfhren. Mit ActionScript knnen Sie Skripts erstellen, die dem Flash Player mitteilen, welche Aktion ausgefhrt werden soll, wenn ein bestimmtes Ereignisses eintritt. Ereignisse, die ein Skript auslsen knnen, liegen z. B. dann vor, wenn ein bestimmtes Bild abgespielt wird, ein Movieclip geladen oder entladen wird oder der Benutzer auf eine Schaltflche klickt bzw. eine Taste drckt. Skripts knnen entweder aus einem einzelnen Befehl bestehen und z. B. bewirken, dass eine SWF-Datei angehalten wird, oder mehrere Befehle und Anweisungen enthalten, wenn beispielsweise zuerst eine Bedingung berprft und anschlieend eine Aktion ausgefhrt werden soll. Viele ActionScript-Befehle sind relativ einfach und ermglichen beispielsweise das Erstellen grundlegender Bedienelemente fr eine SWF-Datei. Andere Aktionen hingegen setzen ein gewisses Ma an Erfahrung im Umgang mit Programmiersprachen voraus und dienen zur Entwicklung hherer Programmfunktionen.

Ereignisse und Interaktionen


Wenn ein Benutzer mit der Maus klickt oder eine Taste drckt, wird ein Ereignis generiert. Diese Ereignistypen werden allgemein als Benutzerereignisse bezeichnet, da sie als Reaktion auf Endbenutzeraktionen generiert werden. Sie knnen ActionScript schreiben, um auf diese Ereignisse zu reagieren bzw. um sie zu verarbeiten. Wenn ein Benutzer auf eine Schaltflche klickt, soll beispielsweise der Abspielkopf in ein anderes Bild in der SWF-Datei springen oder eine neue Webseite in den Browser geladen werden. In einer SWF-Datei generieren Schaltflchen, Movieclips und Textfelder Ereignisse, auf die Sie reagieren knnen. In ActionScript sind drei Verfahren zum Verwalten von Ereignissen verfgbar: Ereignisprozedurmethoden, Ereignis-Listener sowie on()- und onClipEvent()-Prozeduren. Weitere Informationen zu Ereignissen und Ereignisprozeduren finden Sie in Kapitel 4, Ereignisse verarbeiten, auf Seite 91.

99

SWF-Wiedergabe steuern
Die folgenden ActionScript-Funktionen dienen zur Steuerung des Abspielkopfes in der Zeitleiste und zum Laden einer neuen Webseite in ein Browserfenster:

Mit den Funktionen gotoAndPlay() und gotoAndStop() springt der Abspielkopf in ein Bild
oder eine Szene. Hierbei handelt es sich um globale Funktionen, die aus jedem Skript aufgerufen werden knnen. Mit den Methoden MovieClip.gotoAndPlay() und MovieClip.gotoAndStop() knnen Sie in der Zeitleiste eines bestimmten Movieclip-Objekts navigieren. Die Aktionen play() und stop() ermglichen das Starten und Anhalten der Filmwiedergabe. Die Aktion getURL() ruft eine andere URL-Adresse auf.

Gezielt zu bestimmten Bildern oder Szenen springen Mit den globalen Funktionen gotoAndPlay() und gotoAndStop() bzw. mit den gleichwertigen Methoden gotoAndPlay() und gotoAndStop() der MovieClip-Klasse knnen Sie zu spezifischen Bildern oder Szenen springen. Mit jeder Funktion bzw. Methode knnen Sie ein Bild festlegen, zu dem Sie in der aktuellen Szene springen. Wenn Ihr Dokument aus mehreren Szenen besteht, knnen Sie eine Szene und ein Bild als Sprungziele festlegen. Im folgenden Beispiel wird die globale Funktion gotoAndPlay() innerhalb der Ereignisprozedur onRelease eines Button-Objekts verwendet, um den Abspielkopf der Zeitleiste mit der Schaltflche an Bild 10 zu senden.
jump_btn.onRelease = function () { gotoAndPlay(10); }

Im nchsten Beispiel sendet die Methode MovieClip.gotoAndStop() die Zeitleiste des Movieclips categories_mc an Bild 10 und stoppt. Wenn Sie die MovieClip-Methoden gotoAndPlay() und gotoAndStop() verwenden, mssen Sie eine Instanz festlegen, zu der die Methode gehrt.
jump_btn.onPress = function () { categories_mc.gotoAndStop(10); }

Movieclips starten und stoppen Sofern Sie nichts anderes angeben, luft eine SWF-Datei nach dem Starten vollstndig ab, wobei smtliche Bilder in der Zeitleiste wiedergegeben werden. Mit den globalen Funktionen play() und stop() bzw. den gleichwertigen MovieClip-Methoden knnen Sie SWF-Dateien abspielen und anhalten. So haben Sie beispielsweise die Mglichkeit, eine SWF-Datei mit stop() am Ende einer Szene anzuhalten, bevor die nchste Szene wiedergegeben wird. Wenn die SWF-Datei angehalten wurde, muss sie mit play() neu gestartet werden. Die Aktionen play() und stop() bzw. die MovieClip-Methoden knnen sowohl auf die Hauptzeitleiste als auch auf die Zeitleiste eines beliebigen Movieclips oder einer geladenen SWFDatei angewendet werden. Der Movieclip, den Sie steuern mchten, muss einen Instanznamen aufweisen und in der Zeitleiste enthalten sein.

100

Kapitel 5: Interaktionen mit ActionScript erstellen

Mit der folgenden on(press)-Prozedur, die einer Schaltflche zugewiesen ist, wird der Abspielkopf in der SWF-Datei bzw. im Movieclip gestartet, der das Button-Objekt enthlt.
// Einer Schaltflcheninstanz zugewiesen on(press){ // Spielt die Zeitleiste mit der Schaltflche ab play(); }

Derselbe Code fr die on()-Ereignisprozedur erzeugt dabei ein anderes Ergebnis, wenn er einem Movieclip-Objekt statt einer Schaltflche zugewiesen ist. Wenn Anweisungen in einer on()Prozedur einer Schaltflche zugewiesen sind, werden sie standardmig auf die Zeitleiste angewendet, die die Schaltflche enthlt. Hingegen werden Anweisungen in einer on()-Prozedur, die einem Movieclip-Objekt zugewiesen sind, auf den Movieclip angewendet, dem die on()Prozedur zugewiesen ist. Der folgende Code fr die Prozedur on() hlt die Zeitleiste des Movieclips an, dem die Prozedur zugewiesen ist, und nicht die Zeitleiste, die den Movieclip enthlt.
on(press){ stop(); }

Die gleichen Bedingungen gelten fr onClipEvent()-Prozeduren, die Movieclip-Objekten zugewiesen sind. Der folgende Code hlt beispielsweise beim ersten Laden des Movieclips bzw. beim Anzeigen des Movieclips auf der Bhne die Zeitleiste des Movieclips an, der die Prozedur onClipEvent() enthlt.
onClipEvent(load){ stop(); }

Eine andere URL-Adresse aufrufen Mit Hilfe der Funktion getURL() bzw. der Methode MovieClip.getURL() knnen Sie eine Webseite in einem Browserfenster ffnen oder Daten an eine andere Anwendung bertragen, die unter einer bestimmten URL-Adresse bereitgestellt wird. Auf diese Weise haben Sie zum Beispiel die Mglichkeit, eine Schaltflche mit einer Verknpfung zu einer neuen Webseite einzurichten oder Daten zu Zeitleistenvariablen in derselben Weise wie ein HTML-Formular zur Verarbeitung an ein CGI-Skript zu senden. Auerdem knnen Sie auf dieselbe Weise ein Zielfenster festlegen wie beim Ansteuern der Fenster mit einem HTML-Anker-Tag (<a></a>). Wenn ein Benutzer beispielsweise auf die Schaltflcheninstanz homepage_btn. klickt, ffnet der folgende Code die Homepage macromedia.com in einem leeren Browserfenster.
homepage_btn.onRelease = function () { getURL("http://www.macromedia.com", _blank); }

SWF-Wiedergabe steuern

101

Sie knnen Variablen auerdem mit Hilfe von GET bzw. POST zusammen mit der URL senden. Dies ist insbesondere dann sinnvoll, wenn die Seite, die Sie von einem Anwendungsserver hochladen (z. B. ColdFusion Server-Seiten (CFM)), Formvariablen empfangen muss. Angenommen, Sie mchten die CFM-Seite addUser.cfm laden, die die beiden Formvariablen name und age enthlt. Dazu erstellen Sie den Movieclip variables_mc, der diese beiden Variablen wie folgt definiert.
variables_mc.name = "Leif"; variables_mc.age = 28;

Anschlieend ldt der folgende Code die Seite addUser.cfm in ein leeres Browserfenster und bertrgt variables_mc.name und variables_mc.age in den POST-Header der CFM-Seite.
variables_mc.getURL("addUser.cfm", "_blank", "POST");

Weitere Informationen finden Sie unter getURL() auf Seite 415.

Interaktivitt und visuelle Effekte erstellen


Um Interaktivitt und andere visuelle Effekte zu erstellen, mssen Sie in der Lage sein, die folgenden Techniken einzusetzen:

Benutzerdefinierte Mauszeiger erstellen Mausposition abfragen Tastenaktionen erfassen Farbwerte festlegen Soundsteuerungen erstellen Kollisionen erkennen Zeichenwerkzeuge fr einfache Linien erstellen

Benutzerdefinierte Mauszeiger erstellen Der Standardmauszeiger ist die Bildschirmdarstellung des Cursors eines Benutzers durch das Betriebssystem. Wenn Sie den Standardmauszeiger durch einen in Flash gestalteten Mauszeiger ersetzen, knnen Sie die Mausbewegungen des Benutzers enger in die SWF-Datei integrieren. In dem Beispiel in diesem Abschnitt wird ein benutzerdefinierter Mauszeiger verwendet, der wie ein groer Pfeil aussieht. Der eigentliche Vorteil dieser Funktion liegt jedoch darin, dass Sie dem benutzerdefinierten Mauszeiger eine beliebige Form verleihen knnen, damit der Benutzer ihn beispielsweise als Fuball ber die Torlinie rollen oder als Stoffmuster ber ein Sofa ziehen kann, um dessen Bezug zu ndern. Sie gestalten einen benutzerdefinierten Mauszeiger, indem Sie einen entsprechenden MauszeigerMovieclip auf der Bhne erstellen. Anschlieend blenden Sie den Standardmauszeiger in ActionScript aus und ersetzen ihn durch Ihren benutzerdefinierten Mauszeiger. Verwenden Sie zu diesem Zweck die Methode Mouse.hide() der integrierten Mouse-Klasse, um den Standardmauszeiger auszublenden, und die Aktion startDrag(), um Ihren Movieclip als Mauszeiger einzubinden.

102

Kapitel 5: Interaktionen mit ActionScript erstellen

So erstellen Sie einen benutzerdefinierten Mauszeiger:

1 Erstellen Sie einen Movieclip, der als benutzerdefinierter Mauszeiger verwendet werden soll,

und platzieren Sie eine Instanz des Clips auf der Bhne.
2 Whlen Sie die Movieclip-Instanz auf der Bhne aus. 3 Wenn das Bedienfeld Aktionen nicht angezeigt wird, whlen Sie Fenster > Entwicklungs-

Bedienfelder > Aktionen. 4 Geben Sie im Bedienfeld Aktionen Folgendes ein:


onClipEvent (load) { Mouse.hide(); startDrag(this, true); } onClipEvent(mouseMove) { updateAfterEvent(); }

Mit der ersten Prozedur onClipEvent() wird der Mauszeiger ausgeblendet, wenn der Movieclip auf der Bhne angezeigt wird. Mit der zweiten Prozedur wird updateAfterEvent aufgerufen, wenn der Benutzer den Mauszeiger bewegt. Mit der Funktion updateAfterEvent wird der Bildschirm sofort nach dem Eintreten des Ereignisses aktualisiert. Standardmig wird der Bildschirm erst beim Zeichnen des nchsten Bilds aktualisiert. (Weitere Informationen finden Sie unter updateAfterEvent() auf Seite 759.) 5 Whlen Sie Steuerung > Film testen, um Ihren benutzerdefinierten Mauszeiger zu testen. Die Darstellung des Mauszeigers hat keinerlei Einfluss auf die Funktion der Schaltflchen. Es wird jedoch empfohlen, den benutzerdefinierten Mauszeiger auf die oberste Ebene der Zeitleiste zu setzen, damit er ber allen Schaltflchen und anderen Objekten dargestellt wird, wenn Sie die Maus innerhalb der SWF-Datei bewegen. Die Spitze eines benutzerdefinierten Mauszeigers ist zudem der Registrierungspunkt des Movieclips, der als benutzerdefinierter Mauszeiger verwendet wird. Wenn also ein bestimmter Teil des Movieclips als Mauszeigerspitze dienen soll, stellen Sie die Koordinaten des Registrierungspunkts des Clips auf diesen Punkt ein. Weitere Informationen zu den Methoden der Mouse-Klasse finden Sie unter dem Eintrag Mouse-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Interaktivitt und visuelle Effekte erstellen

103

Mausposition abfragen Die Position des Mauszeigers (Cursors) in einer SWF-Datei lsst sich anhand der Eigenschaften und _ymouse ermitteln. Jede Zeitleiste weist eine _xmouse- und eine _ymouseEigenschaft auf, die die Position der Maus innerhalb ihres Koordinatensystems in Bezug auf den Registrierungspunkt zurckgeben. Der Registrierungspunkt der Hauptzeitleiste (_level0) befindet sich in der linken oberen Ecke.
_xmouse

Die Eigenschaften _xmouse und _ymouse in der Hauptzeitleiste und der Zeitleiste eines Movieclips Die folgenden Anweisungen beschreiben zwei Mglichkeiten, die Position des Mauszeigers zu ermitteln.
So rufen Sie die aktuelle Mauszeigerposition in der Hauptzeitleiste ab:

1 Erstellen Sie zwei dynamische Textfelder, und weisen Sie ihnen die Namen x_pos und y_pos

zu.
2 Wenn das Bedienfeld Aktionen nicht angezeigt wird, whlen Sie Fenster > Entwicklungs-

Bedienfelder > Aktionen.


3 Fgen Sie in ein beliebiges Bild der SWF-Datei auf _level0 den folgenden Code ein, der die

Position der Maus zurckgibt:


x_pos = _root._xmouse; y_pos = _root._ymouse;

Die Variablen x_pos und y_pos dienen zum Speichern der Mauszeigerkoordinaten und knnen in allen Skripts Ihres aktuellen Dokuments verwendet werden. Die folgende onClipEvent()Prozedur bewirkt, dass die Werte der Variablen x_pos und y_pos laufend aktualisiert werden, whrend der Benutzer den Mauszeiger bewegt.
onClipEvent(mouseMove) { x_pos = _root._xmouse; y_pos = _root._ymouse; }

104

Kapitel 5: Interaktionen mit ActionScript erstellen

So rufen Sie die aktuelle Mauszeigerposition in einem Movieclip ab:

1 Erstellen Sie den Movieclip. 2 Whlen Sie die Movieclip-Instanz auf der Bhne aus. Weisen Sie der Movieclip-Instanz im

Eigenschafteninspektor den Namen meinMovieClip zu. 3 Wenn das Bedienfeld Aktionen nicht angezeigt wird, whlen Sie Fenster > EntwicklungsBedienfelder > Aktionen. 4 Verwenden Sie den Instanznamen des Movieclips, um die Position des Mauszeigers in der Hauptzeitleiste zurckzugeben. Die folgende Anweisung beispielsweise knnte in einer beliebigen Zeitleiste der SWF-Datei auf _level0 platziert werden und gibt die _ymouse-Position in der Instanz meinMovieClip zurck:
x_pos = _root.meinMovieClip._xmouse y_pos = _root.meinMovieClip._ymouse

Der Code gibt die _xpos- und _ypos-Koordinatenwerte des Mauszeigers in Bezug auf den Registrierungspunkt zurck. 5 Whlen Sie Steuerung > Film testen, um den Film zu testen. Sie knnen die Mauszeigerposition innerhalb eines Movieclips wie im folgenden Beispiel dargestellt auch mit Hilfe der Eigenschaften _xmouse und _ymouse in einem Movieclipereignis ermitteln:
onClipEvent (enterFrame) { xmousePosition = this._xmouse; ymousePosition = this._ymouse; }

Weitere Informationen ber die Eigenschaften _xmouse und _ymouse finden Sie unter MovieClip._xmouse auf Seite 560 und MovieClip._ymouse auf Seite 561. Tastenaktionen erfassen Mit Hilfe der Methoden der integrierten Key-Klasse knnen Sie feststellen, welche Taste der Benutzer zuletzt gedrckt hat. Fr die Key-Klasse wird keine Konstruktorfunktion bentigt. Wie das folgende Beispiel zeigt, brauchen Sie lediglich die Methoden der Klasse selbst aufzurufen, wenn Sie die Methoden verwenden mchten:
Key.getCode();

Auf diese Weise lassen sich wahlweise virtuelle Tastencodes oder die ASCII-Werte (American Standard Code for Information Interchange) der gedrckten Tasten ermitteln:

Zum Abrufen des virtuellen Tastencodes der zuletzt gedrckten Taste verwenden Sie die
Methode getCode(). Zum Abrufen des ASCII-Wertes der zuletzt gedrckten Taste verwenden Sie die Methode getAscii().

Jeder Taste auf der Tastatur ist ein virtuelle Tastencode zugeordnet. Die Nach-links-Taste beispielsweise weist den virtuellen Tastencode 37 auf. Mit Hilfe virtueller Tastencodes knnen Sie sicherstellen, dass sich Ihre SWF-Datei unabhngig von der Sprache des Betriebssystems und der Plattform, auf der sie wiedergegeben wird, stets mit denselben Tasten steuern lsst.

Interaktivitt und visuelle Effekte erstellen

105

Die ASCII-Werte sind den ersten 127 Zeichen eines jeden Zeichensatzes zugeordnet und stellen Informationen zu den auf dem Bildschirm dargestellten Zeichen bereit. Die Buchstaben A und a weisen zum Beispiel unterschiedliche ASCII-Werte auf. Legen Sie fest, welche Tasten verwendet werden sollen, und bestimmen Sie mit einer der folgenden Methoden deren virtuellen Tastencode:

Schlagen Sie in der Liste der Tastencodes in Anhang C, Tastaturtasten und Tastencodewerte,
auf Seite 807 nach. Verwenden Sie eine Konstante der Key-Klasse. Klicken Sie dazu in der Werkzeugleiste Aktionen der Reihe nach auf die Kategorien Integrierte Klassen, Film, Taste und Konstanten. Weisen Sie die folgende onClipEvent()-Prozedur einem Movieclip zu, und whlen Sie anschlieend Steuerung > Film testen, und drcken Sie die gewnschte Taste.
onClipEvent(keyDown) { trace(Key.getCode()); }

Der Tastencode der gewnschten Taste wird im Bedienfeld Ausgabe angezeigt.

106

Kapitel 5: Interaktionen mit ActionScript erstellen

Die Methoden der Key-Klasse werden hufig innerhalb einer Ereignisprozedur eingesetzt. Im folgenden Beispiel bewegt der Benutzer das Auto mit den Pfeiltasten. Hierbei gibt die Methode Key.isDown() an, welche der Pfeiltasten (<Nach-links>, <Nach-rechts>, <Nach-oben> oder <Nach-unten>) jeweils gedrckt wird. Die Ereignisprozedur onEnterFrame ermittelt den Wert Key.isDown(tastencode) aus der if-Anweisung, Anhand des Werts wird der Flash Player von der Prozedur angewiesen, die Position des Autos zu ndern und es in der korrekten Fahrtrichtung darzustellen.

Das Auto wird durch Tastatureingaben gesteuert. Im folgenden Verfahren wird beschrieben, wie Sie Tastenaktionen erfassen knnen, um einen Movieclip auf der Bhne mit der entsprechenden Pfeiltaste nach oben, unten, links oder rechts zu verschieben. Der Movieclip wird einer beliebigen Flche zugeordnet, die 400 Pixel breit und 300 Pixel hoch ist. Auerdem wird in einem Textfeld der Name der gedrckten Taste angezeigt.
So erstellen Sie einen Movieclip mit Tastatursteuerung:

1 Erstellen Sie auf der Bhne den Movieclip, der mit den Pfeiltasten gesteuert werden soll.

In diesem Beispiel lautet der Instanzname des Movieclips car.


2 Erstellen Sie auf der Bhne ein dynamisches Textfeld fr die Anzeige der Fahrtrichtung des

Autos, Sie knnen mit dem Eigenschafteninspektor einen Instanznamen (display_txt) zuweisen.
Hinweis: Bitte beachten Sie in diesem Zusammenhang den Unterschied zwischen Variablen- und Instanznamen. Weitere Informationen finden Sie unter Textfeldinstanzen und Variablennamen auf Seite 150.

Interaktivitt und visuelle Effekte erstellen

107

3 Klicken Sie in der Zeitleiste auf Bild 1. Wenn das Bedienfeld Aktionen nicht angezeigt wird,

whlen Sie Fenster > Entwicklungs-Bedienfelder > Aktionen.


4 Um die Bewegung des Autos ber den Bildschirm bei jedem Tastendruck festzulegen,

definieren Sie die Variable distanz mit dem Ausgangswert 10.


var distanz = 10;

5 Um fr den Auto-Movieclip die Ereignisprozedur zur Ermittlung der momentan gedrckten

Pfeiltaste (<Nach-links>, <Nach-rechts>, <Nach-oben> oder <Nach-unten>) zu erstellen, fgen Sie im Bedienfeld Aktionen den folgenden Code hinzu:
car.onEnterFrame = function() { }

6 Fgen Sie der onEnterFrame-Prozedur eine with-Anweisung hinzu, und legen Sie car als

Objekt fr die with-Anweisung fest. Ihr Code sollte nun folgendermaen aussehen:
var distanz = 10; car.onEnterFrame = function() { with (car) { } }

7 Um zu sehen, ob die Taste <Nach-rechts> gedrckt und der Auto-Movieclip entsprechend

abgespielt wird, fgen Sie dem Hauptteil der with-Anweisung den folgenden Code hinzu. Ihr Code sollte nun folgendermaen aussehen:
distanz = 10; car.onEnterFrame = function() { with (car) { if (Key.isDown(Key.RIGHT)) { _x += distanz; if (_x >= 400) { _x = 400; } _root.display_txt.text = "Nach rechts"; } } }

Wenn die Taste <Nach-rechts> gedrckt wird, wird die Eigenschaft _x des Autos um den durch die Variable distanz festgelegten Wert erhht. Die nchste if-Anweisung prft, ob der Wert der Eigenschaft _x grer oder gleich 400 ist (if(_x >=400)); wenn dies der Fall ist, wird die Position auf den Wert 400 festgelegt. Darber hinaus wird in der SWF-Datei der Text Nach rechts eingeblendet.

108

Kapitel 5: Interaktionen mit ActionScript erstellen

8 Prfen Sie mit hnlichem Code, ob die Nach-links-, Nach-oben- oder Nach-unten-Tasten

gedrckt werden. Ihr Code sollte nun folgendermaen aussehen:


var distanz = 10; car.onEnterFrame = function() { with (car) { if (Key.isDown(Key.RIGHT)) { _x += distanz; if (_x >= 400) { _x = 400; } _root.display_txt.text = "Nach rechts"; } else if (Key.isDown(Key.LEFT)) { _x -= distanz; if (_x < 0) { _x = 0; } _root.display_txt.text = "Nach links"; } else if (Key.isDown(Key.UP)) { _y -= distanz; if (_y < 0) { _y = 0 ; } _root.display_txt.text = "Nach oben"; } else if (Key.isDown(Key.DOWN)) { _y += distanz; if (_y > 300) { _y = 300; } _root.display_txt.text = "Nach unten"; } } }

9 Whlen Sie Steuerung > Film testen, um die SWF-Datei zu testen.

Weitere Informationen zu den Methoden der Key-Klasse finden Sie unter dem Eintrag KeyKlasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Interaktivitt und visuelle Effekte erstellen

109

Farbwerte festlegen Mit Hilfe der Methoden der integrierten Color-Klasse knnen Sie die Farbe eines Movieclips einstellen. Die Methode setRGB() weist dem Movieclip hexadezimale RGB-Werte (Rot, Grn, Blau) zu. Im folgenden Beispiel wird die Farbe eines Objekts nach den Angaben des Benutzers mit der Methode setRGB() gendert.

Die Schaltflchenaktion erstellt ein Color-Objekt und ndert die Farbe des Autos nach den Angaben des Benutzers.
So legen Sie den Farbwert eines Movieclips fest:

1 Whlen Sie auf der Bhne einen Movieclip aus. 2 Geben Sie im Eigenschafteninspektor den Instanznamen carColor an. 3 Erstellen Sie eine Schaltflche namens Farbfeld, platzieren Sie vier Instanzen dieser

Schaltflche auf der Bhne, und weisen Sie ihnen die Namen Rot, Grn, Blau und Schwarz zu.
4 Whlen Sie in der Hauptzeitleiste Bild 1 aus, und whlen Sie Fenster > Entwicklungs-

Bedienfelder > Aktionen.


5 Um ein neues Color-Objekt zu erstellen, das den Movieclip carColor anspricht, fgen Sie im

Bedienfeld Aktionen den folgenden Code hinzu:


meineColor = new Color(_root.carColor);

6 Damit die blaue Schaltflche die Farbe des Movieclips carColor in die Farbe Blau ndert,

fgen Sie im Bedienfeld Aktionen den folgenden Code hinzu:


_root.blue.onRelease = function(){ meineColor.setRGB(0x0000ff) }

Der Hexadezimalwert 0x0000ff steht fr die Farbe Blau. In der folgenden Tabelle sind die brigen Farben und deren Hexadezimalwerte aufgelistet.

110

Kapitel 5: Interaktionen mit ActionScript erstellen

7 Wiederholen Sie Schritt 6 fr die brigen Schaltflchen (rot, grn und schwarz), um die Farbe

des Movieclips in die entsprechende Farbe zu ndern. Der Code sieht jetzt folgendermaen aus:
meineColor = new Color(_root.carColor) _root.blue.onRelease = function(){ meineColor.setRGB(0x0000ff) } _root.red.onRelease = function(){ meineColor.setRGB(0xff0000) } _root.green.onRelease = function(){ meineColor.setRGB(0x00ff00) } _root.black.onRelease = function(){ meineColor.setRGB(0x000000) }

8 Whlen Sie Steuerung > Film testen, um die Farbe des Movieclips zu ndern.

Weitere Informationen zu den Methoden der Color-Klasse finden Sie unter dem Eintrag ColorKlasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Soundsteuerungen erstellen Mit Hilfe der integrierten Sound-Klasse knnen Sie den Sound in einer SWF-Datei steuern. Bevor Sie die Methoden der Sound-Klasse verwenden knnen, mssen Sie zunchst ein neues Sound-Objekt erstellen. Anschlieend knnen Sie mit der Methode attachSound() whrend der SWF-Wiedergabe einen Sound aus der Bibliothek in die SWF-Datei einfgen.

Wenn der Benutzer die Schaltflche Abspielen loslsst, ist ber den Lautsprecher Musik zu hren.

Interaktivitt und visuelle Effekte erstellen

111

Die Methode setVolume() der Sound-Klasse steuert die Lautstrke, whrend die Methode setPan() die Balance (rechts/links) eines Sounds anpasst.

Wenn der Benutzer den Lautstrkeregler bettigt, wird die setVolume()-Methode aufgerufen. In der folgenden Anleitung wird gezeigt, wie Sie Soundsteuerungen wie die oben dargestellten erstellen.
So ordnen Sie einer Zeitleiste einen Sound zu:

1 Whlen Sie Datei > Importieren, um einen Sound zu importieren. 2 Whlen Sie den Sound in der Bibliothek aus, klicken Sie mit der rechten Maustaste (Windows)

bzw. bei gedrckter Taste <Ctrl> (Macintosh), und whlen Sie Verknpfung.
3 Whlen Sie Export fr ActionScript und In erstes Bild exportieren, und weisen Sie dem Sound

den Bezeichner a_thousand_ways zu.


4 Platzieren Sie eine Schaltflche auf der Bhne, und weisen Sie ihr den Bezeichner playButton

zu.
5 Platzieren Sie eine Schaltflche auf der Bhne, und weisen Sie ihr den Bezeichner stopButton

zu.
6 Platzieren Sie einen Movieclip auf der Bhne, und weisen Sie ihm den Bezeichner speaker zu.

112

Kapitel 5: Interaktionen mit ActionScript erstellen

7 Whlen Sie in der Hauptzeitleiste Bild 1 aus, und whlen Sie Fenster > Entwicklungs-

Bedienfelder > Aktionen. Fgen Sie im Bedienfeld Aktionen folgenden Code hinzu:
speaker.stop(); song = new Sound(); song.onSoundComplete = function() { speaker.stop(); }; song.attachSound("a_thousand_ways"); playButton.onRelease = function() { song.start(); speaker.play(); }; stopButton.onRelease = function () { song.stop(); speaker.stop(); }

Durch diesen Code wird zunchst der Movieclip speaker angehalten. Dann erstellt er ein neues Sound-Objekt (song) und weist es dem Sound mit dem Verknpfungsbezeichner a_thousand_ways zu. Danach wird eine onSoundComplete-Prozedur fr das Song-Objekt definiert. Dadurch wird der Movieclip speaker angehalten, wenn kein Sound mehr abgespielt wird. Abschlieend starten und stoppen onRelease-Prozeduren, die mit den Objekten playButton und stopButton verknpft sind, den Sound mit Hilfe der Methoden Sound.start() und Sound.stop() sowie den Movieclip speaker. 8 Whlen Sie Steuerung > Film testen, um den Sound wiederzugeben.
So erstellen Sie einen Lautstrkeregler:

1 Ziehen Sie eine Schaltflche auf die Bhne. 2 Whlen Sie die Schaltflche aus, und whlen Sie Modifizieren > In Symbol konvertieren.

Whlen Sie das Verhalten des Movieclips. Hierdurch wird ein Movieclip mit der Schaltflche im ersten Bild erstellt. 3 Klicken Sie auf den Movieclip, und whlen Sie Bearbeiten > Auswahl bearbeiten. 4 Whlen Sie die Schaltflche aus, und whlen Sie Fenster > Entwicklungs-Bedienfelder > Aktionen. 5 Geben Sie die folgenden Aktionen ein:
on(press){ startDrag(this, false, left, top, right, bottom); } on(release) { stopDrag(); }

Die startDrag()-Parameter left, top, right und bottom sind Variablen, die in einer Movieclip-Aktion eingestellt werden. 6 Whlen Sie Bearbeiten > Dokument bearbeiten, um zur Hauptzeitleiste zurckzukehren. 7 Whlen Sie den Movieclip auf der Bhne aus.

Interaktivitt und visuelle Effekte erstellen

113

8 Geben Sie die folgenden Aktionen ein:


onClipEvent (load) { top = _y; bottom = _y; left = _x; right = _x+100; _x += 100; } onClipEvent (enterFrame) { _parent.song.setVolume(_x-left); }

9 Whlen Sie Steuerung > Film testen, um den Lautstrkeregler zu verwenden.


So erstellen Sie einen Balanceregler:

1 Ziehen Sie eine Schaltflche auf die Bhne. 2 Whlen Sie die Schaltflche aus, und whlen Sie Einfgen > In Symbol konvertieren. Whlen

Sie die Eigenschaft des Movieclips. 3 Klicken Sie auf den Movieclip, und whlen Sie Bearbeiten > Symbol bearbeiten. 4 Whlen Sie die Schaltflche aus, und whlen Sie Fenster > Entwicklungs-Bedienfelder > Aktionen. 5 Geben Sie die folgenden Aktionen ein:
on(press){ startDrag ("", false, left, top, right, bottom); dragging = true; } on (release, releaseOutside) { stopDrag (); dragging = false; }

Die startDrag()-Parameter left, top, right und bottom sind Variablen, die in einer Movieclip-Aktion eingestellt werden. 6 Whlen Sie Bearbeiten > Dokument bearbeiten, um zur Hauptzeitleiste zurckzukehren. 7 Whlen Sie den Movieclip auf der Bhne aus. 8 Geben Sie die folgenden Aktionen ein:
onClipEvent(load){ top=_y; bottom=_y; left=_x-50; right=_x+50; center=_x; } onClipEvent (enterFrame) { if (dragging==true){ _parent.setPan((_x-center)*2); } }

9 Whlen Sie Steuerung > Film testen, um den Balanceregler zu verwenden.

Weitere Informationen zu den Methoden der Sound-Klasse finden Sie unter dem Eintrag Sound-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

114

Kapitel 5: Interaktionen mit ActionScript erstellen

Kollisionen erkennen Mit der Methode hitTest() der MovieClip-Klasse knnen Sie Kollisionen in einer SWF-Datei erkennen. Sie prft, ob ein Objekt mit einem Movieclip kollidiert ist, und gibt einen Booleschen Wert (true oder false) zurck. Die Kollisionserkennung ist insbesondere in zwei Fllen von Nutzen, nmlich um zu prfen, ob der Benutzer einen bestimmten statischen Bereich der Bhne erreicht hat, und um festzustellen, ob ein Movieclip einen anderen Movieclip berhrt. Beides ist mit Hilfe der Methode hitTest() mglich. Sie knnen entweder mit den Parametern von hitTest() die x- und y-Koordinaten des Kollisionsbereichs auf der Bhne festlegen oder den Zielpfad eines anderen Movieclips als Kollisionsbereich angeben. Wenn Sie den Kollisionsbereich anhand der x- und y-Koordinaten festlegen, gibt hitTest() den Wert true zurck, wenn es sich bei dem durch (x, y) angegebenen Punkt um einen nichttransparenten Punkt handelt. Wenn Sie ein Ziel an die hitTest()Methode bergeben, werden die Begrenzungsboxen der beiden Movieclips verglichen. Wenn sie sich berlappen, gibt hitTest() den Wert true zurck. Wenn die beiden Begrenzungsboxen hingegen keine Schnittpunkte aufweisen, gibt hitTest() den Wert false zurck.

Im Textfeld wird die Meldung True angezeigt, solange sich der Mauszeiger innerhalb der Umrisslinien des Autos befindet.

Interaktivitt und visuelle Effekte erstellen

115

Sie knnen hitTest() auch verwenden, um die Kollision zweier Movieclips zu erkennen.

Im Textfeld wird die Meldung True angezeigt, wenn sich die beiden Movieclips berhren. In der folgenden Anleitung wird anhand des Beispiels mit dem Auto beschrieben, wie Sie eine Kollision erkennen knnen.
So erkennen Sie eine Kollision zwischen einem Movieclip und einem Punkt auf der Bhne:

1 Erstellen Sie auf der Bhne einen neuen Movieclip, und weisen Sie ihm den Instanznamen box

im Eigenschafteninspektor zu.
2 Erstellen Sie auf der Bhne ein dynamisches Textfeld, und weisen Sie ihm im

Eigenschafteninspektor den Instanznamen status zu.


3 Whlen Sie in der Zeitleiste in Ebene 1 das erste Bild aus. 4 Wenn das Bedienfeld Aktionen nicht angezeigt wird, whlen Sie Fenster > Entwicklungs-

Bedienfelder > Aktionen. 5 Fgen Sie im Bedienfeld Aktionen den folgenden Code hinzu:
box.onEnterFrame = function () { status.text = this.hitTest(_xmouse, _ymouse, true); }

6 Whlen Sie Steuerung > Film testen, und bewegen Sie den Mauszeiger ber den Movieclip, um

die Kollisionserkennung zu testen. Im Textfeld erscheint die Meldung true, wenn sich der Mauszeiger ber einem nichttransparenten Pixel befindet.
So erkennen Sie eine Kollision zwischen zwei Movieclips:

1 Ziehen Sie zwei Movieclips auf die Bhne, und weisen Sie ihnen die Instanznamen car und
area

zu.

2 Erstellen Sie auf der Bhne ein dynamisches Textfeld, und weisen Sie ihm im

Eigenschafteninspektor den Instanznamen status zu.


3 Whlen Sie in der Zeitleiste in Ebene 1 das erste Bild aus. 4 Wenn das Bedienfeld Aktionen nicht angezeigt wird, whlen Sie Fenster > Entwicklungs-

Bedienfelder > Aktionen.

116

Kapitel 5: Interaktionen mit ActionScript erstellen

5 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:


area.onEnterFrame = function () { status.text=this.hitTest(car); } car.onPress = function (){ this.startDrag(false); updateAfterEvent(); } car.onRelease = function () { this.stopDrag(); }

6 Whlen Sie Steuerung > Film testen, und verschieben Sie den Movieclip, um die

Kollisionserkennung zu testen. Im Textfeld erscheint die Meldung true, wenn sich die Begrenzungsboxen des Autos und des Bereichs schneiden. Weitere Informationen finden Sie unter MovieClip.hitTest() in Kapitel 12, ActionScriptLexikon, auf Seite 229. Zeichenwerkzeuge fr einfache Linien erstellen Mit Hilfe der Methoden der MovieClip-Klasse knnen Sie whrend der Wiedergabe der SWFDatei Linien und Fllungen auf der Bhne zeichnen. Auf diese Weise haben Sie die Mglichkeit, Zeichenwerkzeuge fr die Benutzer Ihrer SWF-Datei zu erstellen und in Reaktion auf bestimmte Ereignisse Formen darin zu zeichnen. Folgende Zeichenmethoden stehen zur Verfgung: beginFill(), beginGradientFill(), clear(), curveTo(), endFill(), lineTo(), lineStyle() und moveTo(). Diese Methoden knnen auf beliebige Movieclip-Instanzen (z. B. meinClip.lineTo()) bzw. Stufen (_root.curveTo()) angewendet werden. Die Methoden lineTo() und curveTo() dienen zum Zeichnen von Linien bzw. Kurven. Mit der Methode lineStyle() werden Linienfarben, Strichstrken und Alpha-Einstellungen fr Linien und Kurven festgelegt. Die Zeichnungsmethode moveTo() stellt die aktuelle Zeichnungsposition auf die von Ihnen festgelegten x- und y-Bhnenkoordinaten ein. Durch die Methoden beginFill() und beginGradientFill() wird ein geschlossener Pfad einfarbig bzw. mit einem Farbverlauf gefllt. endFill() verwendet die Fllung, die seit dem letzten Aufruf der Methode beginFill() bzw. beginGradientFill() hinzugefgt wurde. Die Methode clear() lscht die Zeichnungsobjekte aus dem angegebenen Movieclip-Objekt. Weitere Informationen finden Sie unter MovieClip.beginFill() auf Seite 510, MovieClip.beginGradientFill() auf Seite 510, MovieClip.clear() auf Seite 513, MovieClip.curveTo() auf Seite 516, MovieClip.endFill() auf Seite 519, MovieClip.lineTo() auf Seite 531, MovieClip.lineStyle() auf Seite 530 und MovieClip.moveTo() auf Seite 536.

Interaktivitt und visuelle Effekte erstellen

117

So erstellen Sie ein Zeichenwerkzeug fr einfache Linien:

1 Erstellen Sie in einem neuen Dokument eine Schaltflche auf der Bhne, und geben Sie im

Eigenschafteninspektor fr den Instanznamen clear_btn ein.


2 Klicken Sie in der Zeitleiste auf Bild 1. Wenn das Bedienfeld Aktionen nicht angezeigt wird,

whlen Sie Fenster > Entwicklungs-Bedienfelder > Aktionen.


3 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:
_root.onMouseDown = function() { _root.lineStyle(5, 0xFF0000, 100); _root.moveTo(_root._xmouse, _root._ymouse); isDrawing = true; }; _root.onMouseMove = function() { if (isDrawing == true) { _root.lineTo(_root._xmouse, _root._ymouse); updateAfterEvent(); } }; _root.onMouseUp = function() { isDrawing = false; }; clear_btn.onRelease = function() { _root.clear(); };

4 Whlen Sie Steuerung > Film testen, um den Film zu testen. Klicken Sie auf die Maustaste, und

zeichnen Sie durch Ziehen der Maus eine Linie auf der Bhne. Klicken Sie auf die Schaltflche, um die von Ihnen erstellten Zeichnungsobjekte zu lschen.

118

Kapitel 5: Interaktionen mit ActionScript erstellen

Analyse eines Beispielskripts


Wenn Sie in der SWF-Beispieldatei zapper.swf, die Sie in der Hilfe Mit Flash arbeiten anzeigen knnen, den Kfer auf die Steckdose ziehen, fngt diese an zu wackeln, und der Kfer fllt zu Boden. Die Hauptzeitleiste dieses Films enthlt lediglich ein Bild mit drei Objekten, dem Marienkfer, der Steckdose und einer Reset-Schaltflche. Bei jedem dieser drei Objekte handelt es sich um eine Movieclip-Instanz.

Die SWF-Datei enthlt ein Skript, das der Instanz bug zugewiesen ist. Dieses Skript sieht im Bedienfeld Aktionen folgendermaen aus:

Aktion

Ereignisprozedur Ereignis

Variable

if-Bedingungsanweisung

Das Bedienfeld Aktionen mit dem der Instanz bug zugewiesenen Skript Der Instanzname des Kfers lautet bug und der Instanzname der Steckdose zapper. Im Skript wird auf den Kfer mit dem Schlsselwort this verwiesen, da das Skript dem Kfer zugewiesen ist und das reservierte Wort this auf das Objekt verweist, das das Skript enthlt.

Analyse eines Beispielskripts

119

Das Skript enthlt zwei onClipEvent()-Prozeduren mit zwei unterschiedlichen Ereignissen: load und enterFrame. Die Aktionen in der Anweisung onClipEvent(load) werden nur einmal beim Laden der SWF-Datei ausgefhrt. Die Aktionen in der Anweisung onClipEvent(enterFrame) werden jedes Mal ausgefhrt, wenn der Abspielkopf ein Bild erreicht. Selbst wenn eine SWF-Datei nur aus einem einzigen Bild besteht, wird dieses Bild vom Abspielkopf wiederholt angesteuert und das Skript dadurch erneut ausgefhrt. Hierbei finden in den onClipEvent()-Prozeduren folgende Aktionen statt: Die beiden Variablen initx und inity werden als ursprngliche x- und yKoordinatenwerte der Position der Movieclip-Instanz bug definiert. Eine Funktion wird definiert und dem Ereignis onRelease der Reset-Instanz zugewiesen. Diese Funktion wird jedes Mal aufgerufen, wenn der Benutzer die Maustaste drckt und wieder loslsst, whrend sich der Mauszeiger auf der Schaltflche Zurcksetzen befindet. Sie platziert den Marienkfer an seiner Ausgangsposition auf der Bhne, setzt seine Rotations- und Alphawerte zurck und stellt die Variable zapped auf false ein.
onClipEvent(load) onClipEvent(enterFrame) Eine bedingte if-Anweisung prft mit Hilfe der Methode hitTest(), ob die Kferinstanz die Steckdoseninstanz berhrt (_root.zapper). Die beiden mglichen Ergebnisse dieser Auswertung lauten true oder false: onClipEvent (load) { initx = _x; inity = _y; _root.Reset.onRelease = function() { zapped = false; _x = initx; _y = inity; _alpha = 100 _rotation = 0; }; }

Wenn die Methode hitTest() den Wert true zurckgibt, ruft das Skript die Methode stopDrag() auf, setzt die Variable zapper auf true, ndert die Alpha- und Rotationseigenschaften und startet die Instanz zapped. Wenn die Methode hitTest() den Wert false zurckgibt, wird der Code in der auf die ifAnweisung folgenden geschweiften Klammer ({...}) nicht ausgefhrt.

120

Kapitel 5: Interaktionen mit ActionScript erstellen

Der bug-Instanz sind zwei on()-Prozeduren mit unterschiedlichen Ereignissen zugewiesen: press und release. Die Aktionen in der Anweisung on(press) werden ausgefhrt, wenn der Benutzer die Maustaste bettigt, whrend sich der Mauszeiger auf der bug-Instanz befindet. Die Aktionen in der Anweisung on(release) werden ausgefhrt, wenn der Benutzer die Maustaste loslsst, whrend sich der Mauszeiger auf der bug-Instanz befindet. Hierbei finden in den onClipEvent()-Prozeduren folgende Aktionen statt:
on(press) Der Marienkfer wird mit einer startDrag()-Aktion als verschiebbares Objekt definiert. Da das Skript der bug-Instanz zugewiesen ist, verweist das Schlsselwort this auf die bug-Instanz und bewirkt, dass der Benutzer den Marienkfer und nicht etwa die Steckdose mit der Maus verschieben kann: on(press){ this.startDrag(); } on(release)

Der Marienkfer wird mit einer stopDrag()-Aktion wieder als nicht-ziehbares Objekt definiert:

on(release) { stopDrag(); }

Informationen zum Abspielen der SWF-Datei finden Sie in der Online-Hilfe dieses ActionScriptReferenzhandbuchs.

Analyse eines Beispielskripts

121

122

Kapitel 5: Interaktionen mit ActionScript erstellen

TEIL III Mit Objekten und Klassen arbeiten

TEIL III

In diesem Teil werden das Laufzeit-Objektmodell von Macromedia Flash und dessen Funktionen beschrieben. Dabei wird vor allem auf die Arbeit mit Movieclips und Texten eingegangen. Auerdem erfahren Sie hier, wie Sie eigene Klassen und Schnittstellen in ActionScript 2.0 erstellen. Kapitel 6: Integrierte Klassen verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Kapitel 7: Mit Movieclips arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Kapitel 8: Mit Text arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Kapitel 9: Klassen mit ActionScript 2.0 erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

KAPITEL 6 Integrierte Klassen verwenden

Neben den Kernelementen und Konstrukten der ActionScript-Sprache (z. B. die Schleifen for und while) und Grunddatentypen (Zahlen, Strings und Arrays), die bereits erlutert wurden (siehe ActionScript-Grundlagen auf Seite 27), enthlt ActionScript mehrere integrierte Klassen bzw. komplexe Datentypen. Durch diese Klassen knnen Sie zahlreiche Funktionen zur Skripterstellung nutzen. Einige dieser Klassen basieren auf der ECMAScript-Spezifikation und werden als ActionScriptKernklassen bezeichnet. Dazu zhlen die Klassen Array, Boolean, Date und Math. Weitere Informationen finden Sie unter Kernklassen auf Seite 127.) Die brigen integrierten ActionScript-Klassen gelten speziell fr Macromedia Flash und das Flash Player-Objektmodell. Die Unterscheidung zwischen ActionScript-Kernklassen und Flashspezifischen Klassen lsst sich mit der Unterscheidung zwischen Kern-JavaScript und clientseitigem JavaScript vergleichen. Die clientseitigen JavaScript-Klassen dienen zur Steuerung der Client-Umgebung (Webbrowser und Webseiteninhalt). Auf hnliche Weise dienen die Flashspezifischen Klassen zur Laufzeitsteuerung der Darstellung und des Verhaltens von FlashAnwendungen. In diesem Kapitel finden Sie eine Einfhrung zu den integrierten ActionScript-Klassen, eine Beschreibung der blichen Arbeitsschritte, die Sie mit diesen Klassen durchfhren knnen, sowie Beispiele fr Code. Eine bersicht zu diesen Klassen finden Sie unter bersicht ber integrierte Klassen auf Seite 127. Eine bersicht zum Arbeiten mit Klassen und Objekten beim objektorientierten Programmieren finden Sie unter Klassen und Instanzen auf Seite 125.

Klassen und Instanzen


Beim objektorientierten Programmieren definiert eine Klasse eine Objektkategorie. Eine Klasse beschreibt die Eigenschaften (Daten) und das Verhalten (Methoden) fr ein Objekt. Dies lsst sich mit Bauplnen in der Architektur vergleichen, welche die Charakteristika von Gebuden beschreiben. Um die durch eine Klasse definierten Eigenschaften und Methoden verwenden zu knnen, mssen Sie zuerst eine Instanz dieser Klasse erstellen. Das Verhltnis zwischen einer Instanz und seiner Klasse hnelt dem eines Hauses und den entsprechenden Blaupausen des Architekten.

125

Neue Objekte erstellen Um eine Instanz einer ActionScript-Klasse zu erstellen, rufen Sie die Konstruktorfunktion der Klasse mit dem Operator new auf. Die Konstruktorfunktion hat immer denselben Namen wie die zugehrige Klasse und gibt eine Instanz der Klasse zurck, die Sie in der Regel einer Variablen zuweisen. Der folgende Code beispielsweise erstellt ein neues Sound-Objekt.
var song:Sound= new Sound();

In einigen Fllen mssen Sie keine Instanz einer Klasse erstellen, um die Klasse zu verwenden. Weitere Informationen finden Sie unter Informationen zu (statischen) Klassenmitgliedern auf Seite 126. Objekteigenschaften zuweisen Mit Hilfe des Punkt-Operators (.) knnen Sie auf den Wert einer Eigenschaft in einem Objekt zugreifen. Hierbei steht der Name des Objekts links und der Name der Eigenschaft rechts vom Punkt. In der folgenden Anweisung ist meinObjekt das Objekt und name die Eigenschaft:
meinObjekt.name

Durch den folgenden Code wird ein neues TextField-Objekt erstellt und anschlieend die Eigenschaft autoSize auf true gesetzt.
var mein_text = new TextField(); mein_text.autoSize = true;

Sie knnen fr den Zugriff auf die Eigenschaften eines Objekts auch den Array-Zugriffsoperator ([]) verwenden. Weitere Informationen hierzu finden Sie unter Punkt- und ArrayZugriffsoperatoren auf Seite 54. Objektmethoden aufrufen Die Methode eines Objekts rufen Sie mit dem Punkt-Operator (.) und anschlieender Angabe der Methode auf. Der nachstehende Code erstellt beispielsweise ein neues Sound-Objekt und ruft dessen setVolume()-Methode auf.
meinSound = new Sound(this); meinSound.setVolume(50);

Informationen zu (statischen) Klassenmitgliedern Einige integrierte ActionScript-Klassen haben so genannte Klassenmitglieder (oder statische Mitglieder). Klassenmitglieder (Eigenschaften und Methoden) werden nicht von der Instanz der Klasse, sondern von dem eigentlichen Klassennamen aufgerufen. Das bedeutet, dass Sie keine Instanz der Klasse erstellen, um diese Eigenschaften und Methoden zu verwenden. Alle Eigenschaften der Math-Klasse sind zum Beispiel statisch. Durch den folgenden Code wird die Methode max() der Math-Klasse zur Bestimmung der greren von zwei Zahlen aufgerufen.
var groessereZahl = Math.max(10, 20);

126

Kapitel 6: Integrierte Klassen verwenden

bersicht ber integrierte Klassen


In diesem Abschnitt werden alle ActionScript-Klassen mit entsprechenden Kurzbeschreibungen und Querverweisen auf andere relevante Abschnitte der Dokumentation aufgefhrt. Kernklassen Bei den ActionScript-Kernklassen handelt es sich um die Klassen, die direkt aus ECMAScript entlehnt wurden. Diese Klasse befinden sich in der Werkzeugleiste Aktionen im Unterordner Integrierte Klassen > Kern.
Klasse Arguments Beschreibung Ein Array mit den Werten, die als Parameter an eine beliebige Funktion bergeben wurden. Siehe Eintrag Arguments-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Die Array-Klasse enthlt Methoden und Eigenschaften fr die Arbeit mit Array-Objekten. Siehe Eintrag Array-Klasse in Kapitel 12, ActionScriptLexikon, auf Seite 229. Bei der Boolean-Klasse handelt es sich um einen Wrapper fr Boolesche Werte (true oder false). Siehe Eintrag Boolean-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Die Button-Klasse enthlt Methoden und Eigenschaften zum Arbeiten mit Button-Objekten. Siehe Eintrag Button-Klasse in Kapitel 12, ActionScriptLexikon, auf Seite 229. Mit der Date-Klasse knnen Sie Datums- und Zeitwerte relativ zur Weltzeit (GMT) oder relativ zum Betriebssystem aufrufen, unter dem Flash Player ausgefhrt wird. Siehe Eintrag Date-Klasse in Kapitel 12, ActionScriptLexikon, auf Seite 229. Die Error-Klasse enthlt Informationen zu Fehlern in Ihren Skripts. Der Ausdruck throw wird normalerweise fr das Erstellen von Fehlerbedingungen eingesetzt, die sich dann ber den Ausdruck try..catch..finally bearbeiten lassen. Siehe try..catch..finally und die Eintrge Error class in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Bei der Function-Klasse handelt es sich um die Klassendarstellung aller ActionScript-Funktionen, einschlielich nativer ActionScript-Funktionen und den von Ihnen erstellten Funktionen. Siehe Eintrag Function-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Mit der Math-Klasse knnen Sie auf mathematische Konstanten und Funktionen zugreifen und diese bearbeiten. Alle Eigenschaften und Methoden der Math-Klasse sind statisch und mssen ber die Syntax Math.methode(parameter) oder Math.konstante aufgerufen werden. Siehe Eintrag Math-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Bei der Number-Klasse handelt es sich um einen Wrapper fr den Grunddatentyp Zahl. Siehe Eintrag Number-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Array

Boolean

Button

Date

Error

Function

Math

Number

bersicht ber integrierte Klassen

127

Klasse Object

Beschreibung Die Object-Klasse befindet sich auf der obersten Stufe der ActionScriptKlassenhierarchie. Alle brigen Klassen erben deren Methoden und Eigenschaften. Siehe Eintrag OObject-Klasse in Kapitel 12, ActionScriptLexikon, auf Seite 229. Bei der String-Klasse handelt es sich um einen Wrapper fr den Grunddatentyp String, mit dem Sie die Methoden und Eigenschaften des String-Objekts zum Manipulieren von Werten des Grunddatentyps String aufrufen knnen. Siehe Eintrag String-Klasse in Kapitel 12, ActionScriptLexikon, auf Seite 229.

String

Flash Player-spezifische Klassen In der folgenden Tabelle sind die Klassen aufgelistet, die speziell fr den Flash Player und das Flash-Laufzeitmodell gelten. Diese Klassen werden in der Regel in vier Kategorien unterteilt: Movie-Klassen (zur Steuerung von SWF-Dateien und des Flash Players), Media-Klassen (fr Sound und Video), Client/Server-Klassen (fr XML-Dateien und andere externe Datenquellen) und Authoring-Klassen (zur Steuerung der Flash Authoring-Umgebung).
Hinweis: Diese Kategorisierung wirkt sich zwar auf die Positionen der Klassen in der Werkzeugleiste Aktionen aus, nicht aber auf deren Verwendungszweck.

Movie-Klassen Die Movie-Klassen ermglichen die Steuerung der meisten grafischen Elemente in SWF-Dateien, wie z. B. Movieclips, Textfelder und Schaltflchen. Die Movie-Klassen befinden sich in der Werkzeugleiste Aktionen im Unterordner Integrierte Klassen > Film.
Klasse Accessibility Beschreibung Mit der Accessibility-Klasse wird die Kommunikation zwischen SWF-Dateien und Bildschirmleseprogrammen verwaltet. Die Methoden dieser Klasse werden zusammen mit der globalen Eigenschaft _accProps fr die Steuerung zugnglicher Eigenschaften von Movieclips, Schaltflchen und Textfeldern zur Laufzeit eingesetzt. Siehe _accProps und die Eintrge AccessibilityKlasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Jede Schaltflche in einer SWF-Datei ist eine Instanz der Button-Klasse. Die Button-Klasse enthlt Methoden, Eigenschaften und Ereignisprozeduren zum Arbeiten mit Schaltflchen. Siehe Eintrag Button-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Mit der Color-Klasse knnen Sie die RGB-Farbwerte fr Movieclip-Objekte abrufen und einstellen. Weitere Informationen finden Sie unter dem Eintrag Color-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Ein Beispiel fr das Verwenden der Color-Klasse zum ndern der Farbe von Movieclips finden Sie unter Farbwerte festlegen auf Seite 110.

Button

Color

128

Kapitel 6: Integrierte Klassen verwenden

Klasse ContextMenu

Beschreibung Mit der ContextMenu-Klasse legen Sie den Inhalt des Flash PlayerKontextmens fest. Sie knnen die verschiedenen ContextMenu-Objekte MovieClip-, Button- oder TextField-Objekten ber die Eigenschaft menu der jeweiligen Klassen zuweisen. Sie knnen ContextMenu-Objekten auch benutzerdefinierte Menelemente mit Hilfe der ContextMenuItem-Klasse hinzufgen. Siehe Eintrge ContextMenu-Klasse und ContextMenuItemKlasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Mit Hilfe der ContextMenuItem-Klasse erstellen Sie neue Menelemente, die im Kontextmen des Flash Players angezeigt werden. Mit dieser Klasse neu erstellte Menelemente knnen dem Kontextmen des Flash Players ber die ContextMenu-Klasse hinzugefgt werden. Siehe Eintrge ContextMenu-Klasse und ContextMenuItem-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Die Key-Klasse enthlt Methoden und Eigenschaften zum Abrufen von Daten ber die Tastatur und gedrckte Tasten. Weitere Informationen finden Sie unter dem Eintrag Key-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Beispiele ber das Erfassen von Tastenaktionen zum Erstellen von interaktiven SWF-Dateien finden Sie unter Tastenaktionen erfassen auf Seite 105. Die LocalConnection-Klasse ermglicht die Kommunikation zwischen zwei SWFs, die auf demselben Computer ausgefhrt werden. Siehe Eintrag LocalConnection-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Mit der Mouse-Klasse knnen Sie die Maus in einer SWF-Datei steuern. So lsst sich beispielsweise der Mauszeiger ein- oder ausblenden. Weitere Informationen finden Sie unter dem Eintrag Mouse-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Ein Beispiel zur Verwendung der Mouse-Klasse finden Sie unter Benutzerdefinierte Mauszeiger erstellen auf Seite 102. Jeder Movieclip in einem Flash-Film ist eine Instanz der MovieClip-Klasse. Mit den Methoden und Eigenschaften dieser Klasse werden MovieclipObjekte gesteuert. Siehe Kapitel 7, Mit Movieclips arbeiten, auf Seite 133 und den Eintrag MovieClip-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Mit der MovieClipLoader-Klasse wird der Downloadstatus von SWF- und JPEG-Dateien mit einem Ereignis-Listener berwacht. Siehe SWF- und JPEG-Dateien vorausladen auf Seite 222 und den Eintrag MovieClipLoader-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Mit der PrintJob-Klasse werden mehrseitige Dokumente und dynamisch angezeigte Inhalte gedruckt. Siehe den Eintrag PrintJob-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229 und ActionScript-Klasse 'PrintJob' verwenden in der Hilfe Flash verwenden. Mit der Selection-Klasse werden der Fokus sowie Auswahlbereiche und Einfgemarken fr Textfelder ermittelt und festgelegt. Siehe Eintrag Selection-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

ContextMenuItem

Key

LocalConnection

Mouse

Movieclip

MovieClipLoader

PrintJob

Selection

bersicht ber integrierte Klassen

129

Klasse SharedObject

Beschreibung Mit der SharedObject-Klasse werden Daten lokal auf dem Client-Computer gespeichert. Siehe Eintrag SharedObject-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Die Stage-Klasse dient zum Abrufen von Informationen ber Gre, Ausrichtung und Skalierungsmodus von SWF-Dateien und liefert Meldungen zu nderungen der Bhnengre. Siehe Eintrag Stage-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Die System-Klasse dient zum Abrufen von Informationen zum Flash Player und zum System, auf dem der Flash Player ausgefhrt wird (z. B. Bildschirmauflsung und Systemsprache). Auerdem knnen Sie mit dieser Klasse das Bedienfeld Einstellungen im Flash Player ein- bzw. ausblenden und die Sicherheitseinstellungen fr SWF-Dateien ndern. Siehe Eintrag System-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Mit der TextField-Klasse steuern Sie dynamische Felder und Eingabetextfelder. Siehe Kapitel 8, Mit Text arbeiten, auf Seite 149 und den Eintrag TextField-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Stage

System

TextField

TextField.StyleSheet Mit der TextField.StyleSheet-Klasse (einer inneren Klasse der TextFieldKlasse) knnen Sie CSS-Textstile erstellen und auf Text im HTML- oder XML-Format anwenden. Siehe Text mit Cascading Style Sheets formatieren auf Seite 154 und den Eintrag TextField.StyleSheet-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. TextFormat Mit der TextFormat-Klasse knnen Sie Formatierungsstile auf Zeichen oder Abstze in einem TextField-Objekt anwenden. Siehe Mit der TextFormatKlasse arbeiten auf Seite 152 und den Eintrag TextFormat class in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Media-Klassen Die Media-Klassen dienen zur Steuerung von Sound und Video in SWF-Dateien sowie zum Zugriff auf das Mikrofon und die Kamera des Benutzers, falls diese angeschlossen sind. Diese Klassen befinden sich in der Werkzeugleiste Aktionen im Unterordner Integrierte Klassen > Medien.
Klasse Camera Beschreibung Die Camera-Klasse bietet Zugriff auf die an das System angeschlossene Kamera des Benutzers. In Kombination mit Flash Communication Server MX knnen Sie in Ihren SWF-Dateien Bilder von dieser Kamera festhalten, aufzeichnen und bertragen. Siehe Eintrag Camera-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Die Microphone-Klasse bietet Zugriff auf das an das System angeschlossene Mikrofon des Benutzers. In Kombination mit Flash Communication Server MX knnen Sie in Ihren SWF-Dateien Audiosignale vom Mikrofon eines Benutzers aufzeichnen und bertragen. Siehe Eintrag MicrophoneKlasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Microphone

130

Kapitel 6: Integrierte Klassen verwenden

Klasse NetConnection

Beschreibung Mit der NetConnection-Klasse knnen Sie eine lokale StreamingVerbindung herstellen, um Flash Video-Dateien (FLV) von einer HTTPAdresse oder vom lokalen Dateisystem aus abzuspielen. Weitere Informationen finden Sie unter dem Eintrag NetConnection-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Weitere Informationen zum Abspielen von FLV-Dateien ber das Internet finden Sie unter Externe FLV-Dateien dynamisch wiedergeben auf Seite 221. Mit der NetStream-Klasse wird die Wiedergabe von FLV-Dateien gesteuert. Weitere Informationen finden Sie unter dem Eintrag NetStream-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Weitere Informationen zum Abspielen von FLV-Dateien ber das Internet finden Sie unter Externe FLV-Dateien dynamisch wiedergeben auf Seite 221. Mit der Sound-Klasse werden akustische Signale in SWF-Dateien gesteuert. Weitere Informationen finden Sie unter dem Eintrag Sound-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Ein Beispiel fr den Einsatz der Sound-Klasse zur Erstellung von Lautstrke- und Balancereglern finden Sie unter Soundsteuerungen erstellen auf Seite 111. Die Video-Klasse dient zum Anzeigen von Video-Objekten in SWF-Dateien. Siehe Eintrag Video-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

NetStream

Sound

Video

Client-Server-Klassen In der folgenden Tabelle sind die Klassen aufgelistet, die zum Datenaustausch mit externen Datenquellen oder zur Kommunikation mit Anwendungsservern ber FTP, HTTP oder HTTPS dienen.
Hinweis: In Flash Player 7 werden Daten nur noch von der Domne in SWF-Dateien geladen, die auch als Server aufgetreten ist. Weitere Informationen hierzu finden Sie unter Flash PlayerSicherheitsfunktionen auf Seite 211 und Domnenbergreifendes Laden von Daten ermglichen auf Seite 213.

Diese Klassen befinden sich in der Werkzeugleiste Aktionen im Unterordner Integrierte Klassen > Client/Server.
Klasse LoadVars Beschreibung Die LoadVars-Klasse stellt eine Alternative zur Aktion loadVariables() fr die bertragung von Variablen zwischen einer SWF-Datei und einem Server in Namen-/Wertepaaren dar. Siehe LoadVars-Klasse verwenden auf Seite 202 und den Eintrag LoadVars-Klasse in Kapitel 12, ActionScriptLexikon, auf Seite 229. Mit der XML-Klasse wird die XMLNode-Klasse erweitert. Auerdem enthlt diese Klasse Methoden, Eigenschaften und Ereignisprozeduren fr Daten im XML-Format. Dazu gehren auch das Laden und Parsen von externem XML-Format, das Erstellen von XML-Dokumenten und das Navigieren in XML-Dokumentenbumen. Siehe XML-Klasse verwenden auf Seite 204 und den Eintrag XML-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

XML

bersicht ber integrierte Klassen

131

Klasse XMLNode

Beschreibung Die XMLNode-Klasse stellt einen einzelnen Knoten in einem XMLDokumentenbaum dar. Sie bildet die bergeordnete Klasse fr die XMLKlasse. Siehe Eintrag XMLNode-Klasse in Kapitel 12, ActionScriptLexikon, auf Seite 229. Mit der XMLSocket-Klasse wird eine permanente Socket-Verbindung mit einem anderen Computer fr die Datenbertragung mit geringen Latenzzeiten, wie sie beispielsweise bei Chat-Anwendungen bentigt wird, erstellt. Siehe Die XMLSocket-Klasse verwenden auf Seite 207 und den Eintrag XMLSocket-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

XMLSocket

Authoring-Klassen Die Authoring-Klassen sind nur in der Flash-Authoring-Umgebung verfgbar. Diese Klassen befinden sich in der Werkzeugleiste Aktionen im Unterordner Integrierte Klassen > Authoring.
Klasse CustomActions Beschreibung Mit der CustomActions-Klasse verwalten Sie benutzerdefinierte Aktionen, die beim Authoring-Tool registriert sind. Siehe Eintrag CustomActionsKlasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Die Funktion Live Preview (in der Werkzeugleiste Aktionen unter Integrierte Klassen) ist zwar keine eigene Klasse, bietet Komponentenentwicklern jedoch eine einzelne Funktion namens onUpdate. Siehe onUpdate in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Live Preview

132

Kapitel 6: Integrierte Klassen verwenden

KAPITEL 7 Mit Movieclips arbeiten

Bei Movieclips handelt es sich um eigenstndige, kleine SWF-Dateien, die unabhngig voneinander und von der Zeitleiste, in der sie enthalten sind, abgespielt werden. Wenn beispielsweise in der Hauptzeitleiste nur ein Bild enthalten ist, das seinerseits jedoch einen aus zehn Einzelbildern bestehenden Movieclip enthlt, so werden bei der Wiedergabe der SWFHauptdatei smtliche Bilder des Movieclips abgespielt. Ein Movieclip kann seinerseits andere Movieclips oder verschachtelte Clips enthalten. Movieclips, die auf diese Weise ineinander verschachtelt werden, haben eine hierarchische Struktur, wobei der bergeordnete Clip einen oder mehrere untergeordnete Clips enthalten kann. Jede Instanz des Movieclips hat einen Namen, den so genannten Instanznamen, der den Clip als Objekt definiert, das mit ActionScript gesteuert werden kann. Genauer gesagt definiert der Instanzname den Movieclip als ein Objekt der MovieClip-Klasse. Mit Hilfe der Eigenschaften und Methoden dieser MovieClip-Klasse wird das Aussehen und Verhalten von Movieclips zur Laufzeit gesteuert. Movieclips sind eigene Objekte, die auf Ereignisse reagieren und mit denen Nachrichten an andere Movieclip-Objekte gesendet werden knnen. Sie knnen auerdem ihren Zustand berwachen und untergeordnete Clips verwalten. Die Komponenten-basierte Architektur in Macromedia Flash MX 2004 und Macromedia Flash MX Professional 2004 basiert also auf Movieclips. Die im Bedienfeld Komponenten verfgbaren Komponenten (Fenster > Entwicklungs-Bedienfelder > Komponenten) sind komplexe Movieclips, deren Aussehen und Verhalten genau programmiert wurden. Weitere Informationen zum Erstellen von Komponenten finden Sie unter Komponenten verwenden.

Einfhrung in die Steuerung von Movieclips mit ActionScript


Sie knnen die globalen ActionScript-Funktionen oder die Methoden der MovieClip-Klasse verwenden, um Aufgaben mit Movieclips auszufhren. Manche der MovieClip-Methoden haben dieselben Funktionen wie die gleichnamigen Aufgaben, whrend zu anderen MovieClipMethoden, beispielsweise zu den Methoden hitTest() und swapDepths(), keine entsprechenden Funktionsnamen verfgbar sind. Das folgende Beispiel verdeutlicht den Unterschied zwischen einer Methode und einer Funktion hinsichtlich der Verwendung in einem Skript. Beide Anweisungen duplizieren die Instanz mein_mc, weisen dem neuen Clip den Namen newClip zu und platzieren ihn auf Stufe 5.
mein_mc.duplicateMovieClip("newClip", 5); duplicateMovieClip("mein_mc", "newClip", 5);

133

Wenn eine Funktion und eine Methode hnliche Verhalten bereitstellen, knnen Sie fr die Steuerung eines Movieclips sowohl die Funktion als auch die Methode verwenden. Fr welche dieser beiden Mglichkeiten Sie sich entscheiden, hngt ganz von Ihren persnlichen Vorlieben und Ihrer Erfahrung in der Skripterstellung mit ActionScript ab. Unabhngig davon, ob Sie eine Funktion oder eine Methode verwenden, muss die Zielzeitleiste beim Aufruf der Funktion oder Methode im Flash Player geladen sein. Zum Aufrufen einer Methode geben Sie wie im folgenden Beispiel dargestellt den Zielpfad des Instanznamens, gefolgt von einem Punkt, dem Methodennamen und den erforderlichen Parametern ein:
meinMovieClip.play(); parentClip.childClip.gotoAndPlay(3);

In der ersten Anweisung wird der Abspielkopf mit Hilfe der Methode play() zur Instanz meinMovieClip bewegt. In der zweiten Anweisung sendet die Methode gotoAndPlay() den Abspielkopf zu Bild 3 der Instanz childClip (einer untergeordneten Instanz von parentClip) und bewegt den Kopf anschlieend weiter. Globale Funktionen, die zum Steuern einer Zeitleiste dienen, erwarten einen target-Parameter mit der Angabe des Zielpfades zu der Instanz, die gesteuert werden soll. Im folgenden Skript beispielsweise wird in der Aktion startDrag() die Instanz customCursor angesprochen und als ziehbares Objekt definiert.
on(press){ startDrag("customCursor"); }

Folgende Funktionen knnen an Zielmovieclips adressiert werden: loadMovie(), unloadMovie(), loadVariables(), setProperty(), startDrag(), duplicateMovieClip() sowie removeMovieClip(). Wenn Sie eine dieser Funktionen verwenden mchten, mssen Sie den Zielpfad zum Empfnger mit Hilfe des target-Parameters an sie bergeben. Die folgenden MovieClip-Methoden steuern Movieclips oder geladene Stufen und verfgen nicht ber quivalente Funktionen: MovieClip.attachMovie(), MovieClip.createEmptyMovieClip(), MovieClip.createTextField(), MovieClip.getBounds(), MovieClip.getBytesLoaded(), MovieClip.getBytesTotal(), MovieClip.getDepth(), MovieClip.getInstanceAtDepth(), MovieClip.getNextHighestDepth(), MovieClip.globalToLocal(), MovieClip.localToGlobal(), MovieClip.hitTest(), MovieClip.setMask(), MovieClip.swapDepths(). Weitere Informationen zu diesen Funktionen und Methoden finden Sie in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Mehrere Methoden fr einen Movieclip aufrufen


Mit der Anweisung with knnen Sie einen Movieclip adressieren und anschlieend gleich mehrere Methoden darauf anwenden. Die Anweisung with funktioniert nicht nur in Verbindung mit Movieclips, sondern kann zur Steuerung aller ActionScript-Objekte (z. B. Array, Color oder Sound) verwendet werden.

134

Kapitel 7: Mit Movieclips arbeiten

Die Anweisung with erfordert ein Objekt als Parameter, das am Ende des aktuellen Zielpfads hinzugefgt wird. Alle in einer with-Anweisung verschachtelten Anweisungen werden innerhalb des neuen Zielpfades ausgefhrt, weisen also denselben Gltigkeitsbereich auf. Im folgenden Beispielskript wird der Anweisung with das Objekt donut.hole bergeben, um die Eigenschaften von hole zu ndern:
with (donut.hole){ _alpha = 20; _xscale = 150; _yscale = 150; }

Die Anweisung with bewirkt, dass die in ihr enthaltenen Anweisungen so verarbeitet werden, als wrden sie von der Zeitleiste der Instanz hole aus aufgerufen. Der oben beschriebene Code bewirkt also dasselbe wie die folgende, ausfhrlichere Variante:
donut.hole._alpha = 20; donut.hole._xscale = 150; donut.hole._yscale = 150;

Eine weitere Mglichkeit lautet wie folgt:


with (donut){ hole._alpha = 20; hole._xscale = 150; hole._yscale = 150; }

Zustzliche SWF-Dateien laden und entladen


Mit Hilfe der globalen Funktion loadMovie() oder der Methode loadMovie() knnen Sie zustzliche SWF-Dateien wiedergeben, ohne den Flash Player zu schlieen, sowie die SWF-Datei ohne Laden einer zustzlichen HTML-Seite wechseln. Auerdem knnen Sie mit loadMovie() Variablen an ein CGI-Skript senden, das eine SWF-Datei als CGI-Ausgabe erzeugt. Beim Laden von SWF-Dateien knnen Sie angeben, auf welche Stufe oder in welchen Movieclip diese geladen werden sollen. Wenn Sie eine SWF-Datei in ein Ziel laden, erbt die geladene Datei die Eigenschaften des als Ziel angegebenen Movieclips. Diese Eigenschaften knnen nach dem Laden des Films jedoch nach Belieben gendert werden. Die Methode unloadMovie() entfernt eine SWF-Datei, die zuvor mit loadMovie() geladen wurde. Indem Sie SWF-Dateien mit der Methode unloadMovie() ausdrcklich entfernen, stellen Sie einen reibungslosen bergang zwischen SWF-Dateien sicher und knnen u. U. den vom Flash Player beanspruchten Speicher reduzieren. Die Methode loadMovie() kann fr folgende Aufgaben eingesetzt werden:

Abspielen mehrerer in Form von SWF-Dateien vorliegender Werbeeinblendungen


hintereinander. Zu diesem Zweck wird am Ende jeder SWF-Datei eine loadMovie()Funktion eingefgt, die die jeweils nchste SWF-Datei ldt. Erstellen einer verzweigten Benutzeroberflche fr die Auswahl verschiedener SWF-Dateien. Erstellen einer Navigationsoberflche mit Steuerelementen auf Stufe 0, ber die andere Stufen geladen werden. Durch das Laden von Stufen erzielen Sie weichere bergnge als durch das Laden neuer HTML-Seiten in einen Browser.

Weitere Informationen zum Laden von Filmen finden Sie unter Externe SWF- und JPEGDateien laden auf Seite 218.

Zustzliche SWF-Dateien laden und entladen

135

Hauptzeitleisten fr geladene SWF-Dateien festlegen


Die ActionScript-Eigenschaft _root legt einen Bezug auf die Hauptzeitleiste einer SWF-Datei fest oder gibt ihn zurck. Wenn eine SWF-Datei mehrere Stufen besitzt, befindet sich die Hauptzeitleiste auf der Stufe, in der das momentan ausgefhrte Skript enthalten ist. Wenn ein Skript in Stufe 1 beispielsweise _root auswertet, wird _level1 zurckgegeben. Die durch _root angegebene Zeitleiste ndert sich in Abhngigkeit davon, ob eine SWF-Datei unabhngig (auf ihrer eigenen Stufe) abgespielt wird oder mit einem loadMovie()-Aufruf in eine MovieclipInstanz geladen wurde. Im nachstehend aufgefhrten Beispiel trgt eine Datei den Namen container.swf. Diese Datei verfgt auf der Hauptzeitleiste ber eine Movieclip-Instanz namens target_mc. Die Datei container.swf deklariert eine Variable mit dem Namen userName auf der eigenen Hauptzeitleiste; dasselbe Skript ldt anschlieend eine andere Datei namens contents.swf in den Movieclip target_mc.
// In container.swf: _root.userName = "Thomas"; target_mc.loadMovie("contents.swf");

Die geladene SWF-Datei contents.swf deklariert auf der Hauptzeitleiste auerdem eine Variable namens userName.
// In content.swf: _root.userName = "Sandra";

Wenn die Datei contents.swf in den Movieclip in container.swf geladen wird, wrde der Wert fr userName, der der Hauptzeitleiste der wiedergegebenen SWF-Datei (container.swf ) zugewiesen ist, auf "Sandra" eingestellt werden. Dadurch funktioniert der Code in den Dateien container.swf und contents.swf mglicherweise nicht mehr korrekt. Wenn Sie mchten, dass _root immer die Zeitleiste der geladenen SWF-Datei auswertet, anstatt die eigentliche Hauptzeitleiste, verwenden Sie die Eigenschaft _lockroot. Diese Eigenschaft kann entweder durch die ladende oder die gerade geladene SWF-Datei eingestellt werden. Wenn _lockroot in einer Movieclip-Instanz auf true eingestellt ist, fungiert dieser Movieclip als _root fr eine beliebige SWF-Datei, die in den Clip geladen wurde. Wenn _lockroot in einer SWFDatei auf true eingestellt wird, fungiert die betreffende SWF-Datei unabhngig davon, welche andere SWF-Datei sie ldt, als eigene root. _lockroot kann in jedem beliebigen Movieclip und einer beliebigen Anzahl von Movieclips auf true eingestellt werden. Standardmig ist diese Eigenschaft auf false eingestellt. Der Autor der Datei container.swf knnte dem Movieclip target_mc beispielsweise den folgenden Code zuweisen:
// Movieclip target_mc zugewiesen: onClipEvent (load) { this._lockroot = true; }

Dadurch kann sichergestellt werden, dass sich Verweise auf _root in der Datei contents.swf (oder einer beliebigen in die Datei target_mc geladenen Datei) auf die eigene Zeitleiste beziehen, nicht auf die eigentliche Hauptzeitleiste der Datei container.swf. Dementsprechend knnte der Autor der Datei contents.swf der Hauptzeitleiste den folgenden Code zuweisen:
// Innerhalb von contents.swf: this._lockroot = true;

136

Kapitel 7: Mit Movieclips arbeiten

Dadurch kann sichergestellt werden, dass sich jeder Verweis auf _root auf die eigene Hauptzeitleiste und nicht auf die der wiedergegebenen SWF-Datei bezieht, unabhngig davon, in welche Datei contents.swf geladen ist. Weitere Informationen finden Sie unter MovieClip._lockroot auf Seite 535.

JPEG-Dateien in Movieclips laden


Sie knnen die Funktion loadMovie() oder die gleichnamige MovieClip-Methode verwenden, um JPEG-Bilddateien in eine Movieclip-Instanz zu laden. Auerdem knnen Sie die Funktion loadMovieNum() verwenden, um eine JPEG-Datei in eine Stufe zu laden. Beim Laden eines Bilds in einen Movieclip wird die linke obere Bildecke am Registrierungspunkt des Movieclips ausgerichtet. Da dieser Registrierungspunkt in vielen Fllen in der Mitte des Movieclips liegt, erscheint das geladene Bild unter Umstnden nicht ordnungsgem zentriert. Wenn Sie ein Bild in eine Hauptzeitleiste laden, wird die linke obere Bildecke an der linken oberen Ecke der Bhne ausgerichtet. Das geladene Bild erbt die Rotations- und Skalierungseigenschaften des Movieclips, dessen ursprnglicher Inhalt jedoch entfernt wird. Weitere Informationen hierzu finden Sie unter Externe SWF- und JPEG-Dateien laden auf Seite 218, loadMovie() auf Seite 441, MovieClip.loadMovie() auf Seite 532 und loadMovieNum() auf Seite 443.

Position und Darstellung von Movieclips ndern


Wenn Sie die Eigenschaften eines Movieclips whrend der Filmwiedergabe ndern mchten, knnen Sie eine Anweisung schreiben, die den gewnschten Eigenschaftswert zuweist, oder die Funktion setProperty() verwenden. Der folgende Code beispielsweise stellt die Drehung der Instanz mc auf den Wert 45 ein:
mc._rotation = 45;

Dieselbe Wirkung lsst sich wie im folgenden Code auch mit der Funktion setProperty() erzielen:
setProperty("mc", _rotation, 45);

Die Werte mancher Eigenschaften knnen nur gelesen, nicht jedoch eingestellt werden. Diese Eigenschaften werden als schreibgeschtzte Eigenschaften bezeichnet und sind im ActionScriptLexikon als solche gekennzeichnet. Im Einzelnen handelt es sich hierbei um die Eigenschaften _currentframe, _droptarget, _framesloaded, _parent, _target, _totalframes, _url, _xmouse und _ymouse. Die Werte aller nicht schreibgeschtzten Eigenschaften lassen sich mit Hilfe entsprechender Anweisungen festlegen und ndern. Mit der folgenden Anweisung wird die Eigenschaft _alpha der Movieclipinstanz wheel eingestellt, die wiederum eine Child-Instanz von car ist:
car.wheel._alpha = 50;

Sie knnen auch Anweisungen schreiben, die den Wert einer Movieclipeigenschaft abfragen. Die folgende Anweisung beispielsweise ermittelt den Wert der Eigenschaft _xmouse in der Zeitleiste der aktuellen Stufe und stellt die Eigenschaft _x der Instanz customCursor auf denselben Wert ein:
onClipEvent (enterFrame) { customCursor._x = _root._xmouse; }

Position und Darstellung von Movieclips ndern

137

Dieselbe Wirkung lsst sich wie im folgenden Code auch mit der Funktion getProperty() erzielen:
onClipEvent (enterFrame) { customCursor._x = getProperty(_root, _xmouse); }

Die Eigenschaften _x, _y, _rotation, _xscale, _yscale, _height, _width, _alpha und _visible des Movieclips werden durch Transformationen seines bergeordneten Elementes beeinflusst und wirken sich ihrerseits auf smtliche untergeordneten Elemente des Movieclips aus. Bei den Eigenschaften _focusrect, _highquality, _quality und _soundbuftime handelt es sich um globale Eigenschaften, die ausschlielich der Hauptzeitleiste auf Stufe 0 zugeordnet sind. Alle brigen Eigenschaften beziehen sich auf den einzelnen Movieclip oder die geladene Stufe. Eine Liste der Movieclip-Eigenschaften finden Sie unter dem Eintrag Eigenschaftsbersicht fr die MovieClip-Klasse auf Seite 505.

Movieclips mit der Maus verschieben


Mit Hilfe der globalen Funktion startDrag() oder der Methode MovieClip.startDrag() knnen Sie einen Movieclip als ziehbares Objekt definieren. Ziehbare Movieclips werden beispielsweise fr Spiele, Drag & Drop-Funktionen, benutzerdefinierbare Oberflchen, Bildlaufleisten und Schieberegler verwendet. Ein Movieclip bleibt so lange ziehbar, bis die Freigabe durch stopDrag() aufgehoben oder ein anderer Movieclip mit startDrag() als ziehbares Objekt definiert wird. Es kann jeweils immer nur ein Movieclip mit der Maus verschoben werden. Wenn Sie ein komplexeres Drag & Drop-Verhalten erstellen mchten, knnen Sie die Eigenschaft _droptarget des als ziehbares Objekt definierten Movieclips auswerten. So haben Sie beispielsweise die Mglichkeit, anhand der _droptarget-Eigenschaft festzustellen, ob der Movieclip auf einen bestimmten Movieclip (z. B. auf einen Papierkorb) gezogen wurde, und sodann gegebenenfalls eine andere Aktion auslsen. Detaillierte Informationen finden Sie unter startDrag() auf Seite 663 oder MovieClip.startDrag() auf Seite 553.

Movieclips zur Laufzeit erstellen


Sie knnen Movieclip-Instanzen nicht nur in der Flash-Authoring-Umgebung, sondern auch zur Laufzeit erstellen. Mit ActionScript stehen Ihnen die folgenden drei Mglichkeiten zur Erstellung neuer Movieclips zur Laufzeit zur Verfgung:

Neue, leere Movieclip-Instanz erstellen Vorhandene Movieclip-Instanz duplizieren Der Bhne eine Bibliotheksymbol fr eine Movieclip-Instanz zuweisen
Jede zur Laufzeit erstellte Movieclip-Instanz muss ber einen Instanznamen verfgen und mit einem Wert fr die Tiefe (Stapel- oder Z-Reihenfolge) versehen sein. Die Tiefe gibt an, wie sich der neue Clip mit anderen Clips auf derselben Zeitleiste berlappt. (Weitere Informationen finden Sie unter Moviecliptiefen verwalten auf Seite 142.)

138

Kapitel 7: Mit Movieclips arbeiten

Leeren Movieclip erstellen Mit Hilfe der Methode createEmptyMovieClip() der MovieClip-Klasse knnen Sie einen leeren Movieclip auf der Bhne erstellen. Diese Methode erstellt einen Movieclip als untergeordnetes Objekt des Clips, von dem aus der Aufruf erfolgt. Der Registrierungspunkt fr einen neuen leeren Movieclip ist die linke obere Ecke. Mit dem folgenden Code wird beispielsweise ein neuer, untergeordneter Film namens new_mc in der Tiefe 10 im bergeordneten Movieclips namens parent_mc erstellt.
parent_mc.createEmptyMovieClip("new_mc", 10);

Mit dem folgenden Code wird ein neuer Movieclip namens canvas_mc auf der Hauptzeitleiste der SWF-Datei erstellt, in der das Skript wiedergegeben wird, und ber loadMovie() eine externe JPEG-Datei in den Movieclip geladen.
_root.createEmptyMovieClip("canvas_mc", 10); canvas_mc.loadMovie("flowers.jpg");

Weitere Informationen finden Sie unter MovieClip.createEmptyMovieClip() auf Seite 514. Movieclips duplizieren oder entfernen Die globalen Funktionen duplicateMovieClip() und removeMovieClip() sowie die gleichnamigen MovieClip-Methoden dienen zum Duplizieren bzw. Entfernen von MovieclipInstanzen. Mit der Methode duplicateMovieClip() wird eine neue Instanz einer vorhandenen Movieclip-Instanz erstellt, dieser Instanz ein neuer Instanzname zugewiesen und ein Wert fr die Tiefe oder die Z-Reihenfolge festgelegt. Ein duplizierter Movieclip beginnt immer bei Bild 1, auch wenn zum Zeitpunkt des Duplizierens ein anderes Bild des ursprnglichen Movieclips wiedergegeben wurde, und wird stets vor allen bereits in der Zeitleiste enthaltenen Movieclips dargestellt. Mit Hilfe von removeMovieClip() knnen Sie einen Movieclip wieder entfernen, den Sie mit duplicateMovieClip() erstellt haben. Auerdem werden duplizierte Movieclips automatisch entfernt, wenn Sie den bergeordneten Movieclip lschen. Weitere Informationen hierzu finden Sie unter duplicateMovieClip() auf Seite 394 und removeMovieClip() auf Seite 623. Movieclip-Symbol der Bhne zuweisen Als weitere Mglichkeit knnen Sie zum Erstellen von Movieclip-Instanzen zur Laufzeit die Methode attachMovie() verwenden. Die Methode attachMovie() weist eine Instanz eines Movieclip-Symbols in der Bibliothek der SWF-Datei der Bhne zu. Der neue Movieclip wird dem zugewiesenen Movieclip untergeordnet. Wenn Sie ActionScript zum Zuweisen eines Movieclip-Symbols aus der Bibliothek verwenden mchten, mssen Sie das Symbol fr ActionScript exportieren und ihm einen eindeutigen Verknpfungsbezeichner zuordnen. Verwenden Sie hierfr das Dialogfeld Verknpfungseigenschaften.

Movieclips zur Laufzeit erstellen

139

Standardmig werden alle Movieclips, die exportiert werden, um mit ActionScript verwendet zu werden, vor dem ersten Bild der SWF-Datei geladen, die sie enthlt. Dadurch kann sich die Wiedergabe des ersten Bilds verzgern. Beim Zuweisen eines Verknpfungsbezeichners an ein Element knnen Sie zugleich angeben, ob dieser Inhalt vor dem ersten Bild hinzugefgt werden soll. Wenn dies nicht der Fall sein soll, mssen Sie eine Instanz des Inhaltes in ein anderes Bild der SWF-Datei aufnehmen. Tun Sie dies nicht, so wird das Element nicht in die SWF-Datei exportiert.
So weisen Sie einem Movieclip einen Verknpfungsbezeichner zu:

1 Whlen Sie Fenster > Bibliothek, um das Bedienfeld Bibliothek zu ffnen. 2 Whlen Sie im Bedienfeld Bibliothek einen Movieclip aus. 3 Whlen Sie im Optionsmen des Bedienfelds Bibliothek die Option Verknpfung. 4 5 6 7

Das Dialogfeld Verknpfungseigenschaften wird angezeigt. Whlen Sie unter Verknpfung die Einstellung Export fr ActionScript. Geben Sie in das Feld Bezeichner eine ID fr den Movieclip ein. Standardmig sind der Bezeichner und der Symbolname identisch. Wahlweise knnen Sie dem Movieclip-Symbol eine ActionScript 2.0-Klasse zuweisen. (Weitere Informationen finden Sie unter Movieclip-Symbolen eine Klasse zuweisen auf Seite 145.) Wenn der Movieclip nicht vor dem ersten Bild geladen werden soll, deaktivieren Sie das Kontrollkstchen In erstes Bild exportieren. Wenn Sie diese Option deaktivieren, platzieren Sie eine Instanz des Movieclips an dem Bild der Zeitleiste, an dem der Film verfgbar sein soll. Wenn in dem von Ihnen geschriebenen Skript erst bei Bild 10 auf den Movieclip verwiesen wird, platzieren Sie eine Instanz des Symbols an oder vor diese Stelle in der Zeitleiste. Klicken Sie auf OK.

Nachdem Sie dem Movieclip einen Verknpfungsbezeichner zugewiesen haben, knnen Sie eine Instanz des Symbols zur Laufzeit mit Hilfe von attachMovie() der Bhne zuweisen.
So binden Sie einen Movieclip in einen anderen Movieclip ein:

1 Fhren Sie die oben beschriebenen Schritte aus, um einem Movieclip-Symbol aus der 2 3

Bibliothek einen Verknpfungsbezeichner zuzuweisen. ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen), und whlen Sie in der Zeitleiste das gewnschte Bild aus. Geben Sie im Skriptfenster dieses Bedienfelds den Namen des Movieclips oder die Stufe ein, dem bzw. der Sie den neuen Movieclip zuweisen mchten. Wenn Sie beispielsweise _root eingeben, wird der Movieclip der Hauptzeitleiste zugewiesen. Klicken Sie in der Werkzeugleiste auf der linken Seite des Bedienfelds Aktionen der Reihe nach auf die Kategorien Built-in Classes, Movie und MovieClip, und doppelklicken Sie auf die Methode attachMovie(). Verwenden Sie die Codehinweise, um fr die folgenden Parameter Werte festzulegen: Geben Sie im Feld idName den Bezeichner an, den Sie im Dialogfeld Verknpfungseigenschaften festgelegt haben. Geben Sie im Feld newName einen Instanznamen fr den angehngten Movieclip an, damit Sie ihn als Ziel fr Operationen verwenden knnen.

140

Kapitel 7: Mit Movieclips arbeiten

Geben Sie im Feld depth die Stufe an, auf der der duplizierte Movieclip an den Movieclip angehngt werden soll. Jeder angehngte Movieclip verfgt ber eine eigene Stufenabfolge, wobei Stufe 0 der Stufe des ursprnglichen Movieclips entspricht. Angehngte Movieclips liegen stets ber dem ursprnglichen Movieclip. Ein Beispiel:
meinMovieClip.attachMovie("calif", "california", 10);

Weitere Informationen finden Sie unter MovieClip.attachMovie() auf Seite 509.

Parameter zu dynamisch erstellten Movieclips hinzufgen


Wenn Sie einen Movieclip mit Hilfe der Methode MovieClip.attachMovie() und MovieClip.duplicateMovie() dynamisch erstellen oder duplizieren, knnen die Parameter eines anderen Projekts auf diesen Movieclip bertragen werden. Der Parameter initObject der Methoden attachMovie() und duplicateMovie() ermglicht es dynamisch erstellten Movieclips, Clip-Parameter zu empfangen. Der Parameter initObject ist optional. Weitere Informationen hierzu finden Sie unter MovieClip.attachMovie() auf Seite 509 und MovieClip.duplicateMovieClip() auf Seite 518.
So bernehmen Sie Parameter eines bestimmten Projekts fr einen dynamisch erstellten Movieclip:

Verwenden Sie die folgende Syntax mit der Methode attachMovie():


meinMovieClip.attachMovie(idName, newName, depth [, initObject])

Verwenden Sie die folgende Syntax mit der Methode duplicateMovie():


meinMovieClip.duplicateMovie(idName, newName, depth [, initObject])

Der Parameter initObject gibt den Objektnamen an, dessen Parameter Sie auf den dynamisch erstellten Movieclip bertragen mchten.
So bergeben Sie mit Hilfe der Methode attachMovie() Parameter an einen Movieclip:

1 Erstellen Sie in einem neuen Flash-Dokument ein neues Movieclip-Symbol, indem Sie

Einfgen > Neues Symbol whlen. Geben Sie im Textfeld Symbolname dynamic ein, und whlen Sie das Verhalten des Movieclips. 2 Erstellen Sie auf der Bhne innerhalb des Symbols ein dynamisches Textfeld mit dem Instanznamen name_txt. 3 Whlen Sie das erste Bild der Zeitleiste des Movieclips, und ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen). 4 Erstellen Sie eine neue Variable namens name, und weisen Sie deren Wert der Eigenschaft text von name_txt zu, wie im Folgenden beschrieben:
var name:String; name_txt.text = name;

5 Whlen Sie Bearbeiten > Dokument bearbeiten, um zur Hauptzeitleiste zurckzukehren. 6 Klicken Sie im Bedienfeld Bibliothek auf das Movieclip-Symbol, und whlen Sie im

Optionsmen der Bibliothek die Option Verknpfungseigenschaften. Das Dialogfeld Verknpfungseigenschaften wird angezeigt. 7 Whlen Sie die Option Export fr ActionScript, und klicken Sie auf OK.

Parameter zu dynamisch erstellten Movieclips hinzufgen

141

8 Klicken Sie auf das erste Bild in der Hauptzeitleiste, und geben Sie in das Skriptfenster des

Bedienfelds Aktionen den folgenden Code ein:


_root.attachMovie("dynamic", "newClipName", 10, {name:"Erick"});

9 Testen Sie den Film (Whlen Sie Steuerung > Film testen). Der Name, den Sie im Aufruf
attachMovie()

angegeben haben, wird im Textfeld des neuen Movieclips angezeigt.

Moviecliptiefen verwalten
Jeder Movieclip verfgt ber sein eigenes Z-Koordinatenfeld, das festlegt, wie sich die Objekte in der bergeordneten SWF-Datei oder im Movieclip berlappen. Jeder Movieclip verfgt ber einen zugewiesenen Wert fr die Tiefe, der festlegt, ob der Movieclip vor oder hinter anderen Movieclips in derselben Zeitleiste des Movieclips wiedergegeben wird. Wenn Sie zur Laufzeit einen neuen Movieclip mit Hilfe von MovieClip.attachMovie(), MovieClip.duplicateMovieClip() oder MovieClip.createEmptyMovieClip() erstellen, geben Sie als Methodenparameter immer eine Tiefe fr den neuen Film an. Mit dem folgenden Code wird ein neuer Movieclip z. B. der Zeitleiste eines Movieclips namens container_mc mit der Tiefe 10 zugewiesen.
container_mc.attachMovie("symbolID", "clip_1", 10);

Dadurch wird im Z-Koordinatenfeld von container_mc ein neuer Movieclip mit der Tiefe 10 erstellt. Mit dem folgenden Code werden container_mc beispielsweise zwei neue Movieclips zugewiesen. Der erste Clip namens clip_1 wird hinter clip_2 wiedergegeben, da ihm ein kleinerer Tiefenwert zugewiesen wurde.
container_mc.attachMovie("symbolID", "clip_1", 10); container_mc.attachMovie("symbolID", "clip_2", 15);

Gltige Tiefenwerte fr Movieclips liegen im Bereich zwischen -16384 und 1048575. Die MovieClip-Klasse bietet folgende Methoden zur Verwaltung von Tiefen fr Movieclips: Siehe dazu auch MovieClip.getNextHighestDepth() auf Seite 524, MovieClip.getInstanceAtDepth() auf Seite 523, MovieClip.getDepth() auf Seite 523 und MovieClip.swapDepths() auf Seite 554. Nchsthhere verfgbare Tiefe bestimmen Verwenden Sie die Methode MovieClip.getNextHighestDepth(), um die nchsthhere verfgbare Tiefe in einem Movieclip zu bestimmen. Dieser mit dieser Methode wiedergegebene ganzzahlige Wert gibt die nchsthhere verfgbare Tiefe an, die vor allen anderen Objekten im Movieclip wiedergegeben wird. Mit dem folgenden Code wird ein neuer Movieclip mit der Tiefe 10 auf der Zeitleiste des Movieclips namens menus_mc erstellt. Anschlieend wird die nchsthhere verfgbare Tiefe im selben Movieclip bestimmt und ein neuer Movieclip in dieser Tiefe erstellt.
menus_mc.attachMovie("menuClip","file_menu", 10); var nextDepth = menus_mc.getNextHighestDepth(); menus_mc.attachMovie("menuClip", "edit_menu", nextDepth);

In diesem Fall enthlt die Variable namens nextDepth den Wert 11, da dies die nchsthhere verfgbare Tiefe fr den Movieclip menus_mc ist.

142

Kapitel 7: Mit Movieclips arbeiten

Wenn Sie die hchste Tiefe errechnen mchten, die gegenwrtig belegt ist, subtrahieren Sie 1 von dem Wert, der mit der Methode getNextHighestDepth(), wie im nchsten Abschnitt beschrieben (siehe Instanz an einer spezifischen Tiefe bestimmen auf Seite 143), wiedergegeben wird. Instanz an einer spezifischen Tiefe bestimmen Verwenden Sie die Methode MovieClip.getInstanceAtDepth(), um die Instanz an einer spezifischen Tiefe zu bestimmen. Bei dieser Methode wird ein Verweis zur Instanz an der gewnschten Tiefe wiedergegeben. Mit dem folgenden Code werden getNextHighestDepth() und getInstanceAtDepth() kombiniert, um den Movieclip an der (aktuell) hchsten belegten Tiefe der Hauptzeitleiste zu bestimmen.
var highestOccupiedDepth = _root.getNextHighestDepth() - 1; var instanceAtHighestDepth = _root.getInstanceAtDepth(highestOccupiedDepth);

Weitere Informationen finden Sie unter MovieClip.getInstanceAtDepth() auf Seite 523. Tiefe einer Instanz bestimmen Verwenden Sie die Methode MovieClip.getDepth(), um die Tiefe einer Movieclip-Instanz zu bestimmen. Der folgende Code durchluft alle Movieclips auf der Hauptzeitleiste einer SWF-Datei und zeigt im Bedienfeld Ausgabe jeden Instanznamen eines Clips und den Tiefenwert an.
for(each in _root) { var obj = _root[each]; if(obj instanceof MovieClip) { var objDepth = obj.getDepth(); trace(obj._name + ":" + objDepth) } }

Weitere Informationen finden Sie unter MovieClip.getDepth() auf Seite 523. Moviecliptiefen austauschen Verwenden Sie die Methode MovieClip.swapDepths(), um die Tiefen zweier Movieclips auf derselben Zeitleiste auszutauschen. Weitere Informationen finden Sie unter MovieClip.swapDepths() auf Seite 554.

Formen mit ActionScript zeichnen


Mit Hilfe der Methoden der MovieClip-Klasse knnen Sie Linien und Fllungen auf der Bhne zeichnen. Auf diese Weise haben Sie die Mglichkeit, Zeichenwerkzeuge fr die Benutzer Ihres Films zu erstellen und in Reaktion auf bestimmte Ereignisse Formen im Film zu zeichnen. Folgende Zeichenmethoden stehen zur Verfgung: beginFill(), beginGradientFill(), clear(), curveTo(), endFill(), lineTo(), lineStyle() und moveTo(). Sie knnen die Zeichenmethoden in jedem beliebigen Movieclip verwenden. Wenn Sie sie jedoch in einem im Authoring-Modus erstellten Movieclip einsetzen, werden die Zeichenmethoden ausgefhrt, bevor der Clip dargestellt wird. Dies fhrt dazu, dass der Inhalt des Movieclips ber den mit den Zeichenmethoden gezeichneten Inhalten dargestellt wird.

Formen mit ActionScript zeichnen

143

Auerdem haben Sie die Mglichkeit, Movieclips mit Zeichenmethoden als Masken zu verwenden, wobei Striche allerdings wie bei allen Movieclipmasken ignoriert werden.
So zeichnen Sie eine Form:

1 Verwenden Sie die Methode createEmptyMovieClip(), um einen leeren Movieclip auf der

Bhne zu erstellen. Bei dem neuen Movieclip handelt es sich um ein untergeordnetes Objekt eines vorhandenen Movieclips oder der Hauptzeitleiste. Beispiel:
_root.createEmptyMovieClip ("triangle", 1);

2 Rufen Sie in dem leeren Movieclip die gewnschten Zeichenmethoden auf.

Im folgenden Beispiel wird ein rotes Dreieck mit einer Strichbreite von 5 Punkt ohne Fllung gezeichnet:
with (_root.triangle) { lineStyle (5, 0xff00ff, 100); moveTo (200, 200); lineTo (300, 300); lineTo (100, 300); lineTo (200, 200); }

Umfassende Informationen zu diesen Methoden finden Sie in den jeweiligen Eintrgen in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Movieclips als Masken verwenden


Mit Hilfe eines Movieclips, den Sie als Maske verwenden, knnen Sie eine ffnung erstellen, die den Blick auf einen zweiten, darunter liegenden Movieclip freigibt. Wie bei einem normalen Movieclip werden auch beim Maskenmovieclip alle Bilder in der entsprechenden Zeitleiste abgespielt. Sie knnen den Maskenmovieclip als ziehbares Objekt definieren oder in einer Animation auf einem Bewegungspfad verschieben sowie eine Maske mit mehreren Formen erstellen und dynamisch vergrern oder verkleinern. Mit ActionScript lassen sich auch Masken ein- und ausschalten. Sie knnen eine Maske jedoch nicht auf eine andere Maske anwenden und die _alphaEigenschaft eines Maskenmovieclips nicht einstellen. Auerdem werden in einem Movieclip, der als Maske verwendet wird, nur die Fllungen dargestellt und alle Striche ignoriert.
So erstellen Sie eine Maske:

1 Whlen Sie auf der Bhne den Movieclip aus, den Sie maskieren mchten. 2 Geben Sie im Eigenschafteninspektor einen Instanznamen fr den Movieclip an (z. B. image). 3 Erstellen Sie den Movieclip, den Sie als Maske verwenden mchten, und weisen Sie ihm im

Eigenschafteninspektor einen Instanznamen zu (z. B. mask). Der maskierte Movieclip wird in allen undurchsichtigen Bereichen des Movieclips angezeigt, der als Maske dient. 4 Klicken Sie in der Zeitleiste auf Bild 1. 5 Wenn Sie das Bedienfeld Aktionen nicht bereits geffnet haben, whlen Sie Fenster > Entwicklungs-Bedienfelder > Aktionen, um es zu ffnen.

144

Kapitel 7: Mit Movieclips arbeiten

6 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:


image.setMask(mask);

Ausfhrliche Informationen hierzu finden Sie unter MovieClip.setMask() auf Seite 551. Informationen zum Maskieren von Gerteschriftarten Sie knnen einen Movieclip verwenden, um Text zu maskieren, der in einer Gerteschriftart definiert ist. Damit eine Movieclip-Maske mit einer Gerteschriftart ordnungsgem funktioniert, mssen Benutzer Flash Player 6r40 oder eine aktuellere Version verwenden. Wenn Sie eine Movieclip-Maske verwenden, um Text zu maskieren, der in einer Gerteschriftart definiert ist, wird der rechteckige Begrenzungsrahmen der Maske als Maskenform verwendet. Wenn Sie also in der Flash-Authoring-Umgebung nicht-rechteckige Movieclip-Masken fr Text in Gerteschriftarten erstellen, entspricht die Form der in der SWF-Datei angezeigten Maske nicht der eigentlichen Maskenform, sondern der Form der rechteckigen Begrenzungsbox. Zur Maskierung von Gerteschriftarten mssen Sie einen Movieclip als Maske verwenden. Eine Maskenebene auf der Bhne kann hierfr nicht verwendet werden.

Movieclip-Ereignisse verarbeiten
Movieclips knnen auf Benutzerereignisse reagieren, wie etwa auf einen Mausklick und Tastendruck, sowie auf Ereignisse auf der Systemebene, wie etwa das erste Laden eines Movieclips auf der Bhne. ActionScript bietet die folgenden zwei Methoden zur Verarbeitung von Movieclip-Ereignissen: durch Ereignisprozedurmethoden und durch die Ereignisprozeduren onClipEvent() und on(). Weitere Informationen finden Sie in Kapitel 4, Ereignisse verarbeiten, auf Seite 91.

Movieclip-Symbolen eine Klasse zuweisen


Mit ActionScript 2.0 knnen Sie Ihre eigene Klasse erstellen, die ber das Verhalten der integrierten MovieClip-Klasse hinausgeht, und diese Klasse anschlieend dem Movieclip-Symbol in der Bibliothek im Dialogfeld Verknpfungseigenschaften zuweisen. Wenn Sie danach eine Instanz dieses Movieclips erstellen, dem diese Klasse zugewiesen ist, werden dabei die Eigenschaften und Verhalten bernommen, die durch die ihm zugewiesene Klasse definiert sind. (Weitere Informationen zu ActionScript 2.0 finden Sie in Kapitel 9, Klassen mit ActionScript 2.0 erstellen, auf Seite 173.) In einer Unterklasse der Movieclip-Klasse knnen Sie Methodendefinitionen fr die integrierten MovieClip-Methoden und Ereignisprozeduren angeben, wie etwa onEnterFrame und onRelease. In der nachstehend beschriebenen Prozedur erstellen Sie eine Klasse namens MovieRight, deren Funktionalitt ber die der MovieClip-Klasse hinausgeht und eine Ereignisprozedur onPress definiert, durch die der Clip 20 Pixel nach rechts verschoben wird, wenn der Benutzer auf den Movieclip klickt. In der zweiten Prozedur erstellen Sie ein MovieclipSymbol in einem neuen Flash-Dokument (FLA) und weisen diesem Symbol die MoveRightKlasse zu.

Movieclip-Symbolen eine Klasse zuweisen

145

So erstellen Sie eine Unterklasse zu einem Movieclip:

1 Erstellen Sie einen neuen Ordern mit dem Namen BallTest. 2 So erstellen Sie eine neue ActionScript-Datei:

Whlen Sie in Flash MX Professional 2004 Datei > Neu, und whlen Sie aus der Liste der Dokumenttypen ActionScript-Datei aus. (Flash MX 2004) Erstellen Sie in dem von Ihnen bevorzugten Texteditor eine Textdatei. 3 Geben Sie folgenden Code in Ihr Skript ein:

// MoveRight-Klasse -- verschiebt den Clip fr jedes Bild um fnf Pixel nach rechts class MoveRight extends MovieClip { function onPress() { this._x += 20; } }

4 Speichern Sie das Dokument MoveRight.as im Ordner BallTest.


So weisen Sie einem Movieclip-Symbol die Klasse zu:

1 Whlen Sie in Flash Datei > Neu, und whlen Sie aus der Liste der Dateitypen Flash2 3

4 5 6

7 8

Dokument aus. Klicken Sie anschlieend auf OK. Zeichnen Sie mit Hilfe des Ellipsenwerkzeugs einen Kreis auf der Bhne. Markieren Sie den Kreis, und whlen Sie anschlieend Modifizieren > In Symbol konvertieren. Legen Sie im Dialogfeld In Symbol konvertieren als Symbolverhalten das Movieclip-Verhalten aus, und geben Sie im Textfeld Name Ball ein. ffnen Sie das Bedienfeld Bibliothek (Fenster > Bibliothek), und whlen Sie das Ballsymbol aus. Whlen Sie im Optionsmen des Bedienfelds Bibliothek die Option Verknpfung, um das Dialogfeld Verknpfungseigenschaften zu ffnen. Whlen Sie anschlieend im Dialogfeld Verknpfungseigenschaften die Option Export fr ActionScript, und geben Sie im Textfeld der ActionScript 2-Klasse MoveRight ein. Klicken Sie auf OK. Speichern Sie die Datei unter dem Namen Ball.fla im Ordner BallTest, in dem auch die Datei MoveRight.as enthalten ist. Testen Sie den Film (Whlen Sie Steuerung > Film testen). Der Movieclip wird jedes Mal 20 Pixel nach rechts verschoben, wenn Sie auf den BallMovieclip klicken.

146

Kapitel 7: Mit Movieclips arbeiten

Klasseneigenschaften initialisieren
Im oben beschriebenen Beispiel haben Sie der Bhne manuell eine Instanz des Ballsymbols hinzugefgt, d. h. zur Authoring-Zeit. Wie oben bereits beschrieben (siehe Parameter zu dynamisch erstellten Movieclips hinzufgen auf Seite 141) knnen Sie einem erstellten Movieclip zur Laufzeit Parameter zuweisen, wenn Sie den Parameter initObject fr die Methoden attachMovie() und duplicateMovie() verwenden. Sie knnen diese Funktion verwenden, um die Eigenschaften der Klasse zu initialisieren, die Sie dem Movieclip zuweisen. Die Klasse MoveRightDistance ist z. B. eine Variation der oben erwhnten Klasse MoveRight (siehe Movieclip-Symbolen eine Klasse zuweisen auf Seite 145). Ein Unterschied besteht in der neuen Eigenschaft namens distance, deren Wert festlegt, um wie viele Pixel ein Movieclip bei jedem Klicken verschoben wird.
// MoveRightDistance-Klasse -- verschiebt den Clip fr jedes Bild um fnf Pixel nach rechts class MoveRightDistance extends MovieClip { // distance-Eigenschaft legt Anzahl der Pixel fest, // um die beim Drcken der Maustaste verschoben wird var distance:Number; function onPress() { this._x += distance; } }

In diesem Beispiel wird davon ausgegangen, dass die Klasse einem Symbol mit einem Verknpfungsbezeichner Ball zugewiesen wird. In diesem Fall werden mit dem folgenden Code zwei neue Instanzen des Symbols auf der Hauptzeitleiste der SWF-Datei erstellt. Die erste Instanz namens ball_50 wird bei jedem Klicken um 50 Pixel verschoben; die zweite Instanz namens ball_125 wird bei jedem Klicken um 125 Pixel verschoben.
_root.attachMovie("Ball", "ball_50", 10, {distance:50}); _root.attachMovie("Ball", "ball_125", 20, {distance:125});

Klasseneigenschaften initialisieren

147

148

Kapitel 7: Mit Movieclips arbeiten

KAPITEL 8 Mit Text arbeiten

Dynamische Textfelder und Eingabetextfelder sind Instanzen des ActionScript-Objekts TextField. Beim Erstellen eines Textfelds weisen Sie ihm im Eigenschafteninspektor einen Instanznamen zu. Anhand dieses Instanznamens knnen Sie das Textfeld und seinen Inhalt in ActionScriptAnweisungen mit Hilfe der Klassen TextField und TextFormat festlegen, ndern und formatieren. Mit den Methoden der TextField-Klasse knnen Sie Text in dynamischen Textfeldern oder Eingabetextfeldern, die Sie beim Authoring oder zur Laufzeit erstellen, festlegen, ndern und formatieren. Weitere Informationen finden Sie unter Die TextField-Klasse verwenden auf Seite 150. Weitere Informationen zum Debuggen von Textfeldern zur Laufzeit finden Sie unter Textfeldeigenschaften zum Debuggen anzeigen auf Seite 87. ActionScript bietet zudem mehrere Mglichkeiten, Texte zur Laufzeit zu formatieren. Mit der TextFormat-Klasse knnen Sie die Zeichen- und Absatzformatierung fr TextField-Objekte festlegen (siehe Mit der TextFormat-Klasse arbeiten auf Seite 152). Flash Player untersttzt einen Teil der HTML-Tags, mit denen Sie Text formatieren knnen (siehe HTML-formatierten Text verwenden auf Seite 163). Flash Player 7 und hhere Versionen untersttzen das HTMLTag <img>, mit dem sich nicht nur externe Bilder, sondern auch externe SWF-Dateien und Movieclips aus der Bibliothek einbetten lassen (siehe Bild-Tag (<img>) auf Seite 165). In Flash Player 7 und hher knnen Sie mit der TextField.StyleSheet-Klasse Cascading Style Sheets (CSS)-Stile auf Textfelder anwenden. ber CSS lassen sich integrierte HTML-Tags ndern, neue Formatierungstags definieren oder Stile anwenden. Weitere Informationen zum Verwenden von CSS finden Sie im Abschnitt Text mit Cascading Style Sheets formatieren auf Seite 154. Auerdem haben Sie die Mglichkeit, HTML-formatierten Text, der optional CSS-Stile verwenden kann, direkt einem Textfeld zuzuweisen. In Flash Player 7 und hher kann HTMLText, den Sie einem Textfeld zuweisen, eingebettete Medien (Movieclips, SWF- und JPEGDateien) enthalten. Der Text umfliet die eingebetteten Medien so, wie Text in einem Webbrowser Medien umfliet, die in ein HTML-Dokument eingebettet sind. Weitere Informationen finden Sie unter Bild-Tag (<img>) auf Seite 165.

149

Die TextField-Klasse verwenden


Die TextField-Klasse stellt ein dynamisches oder auswhlbares (bearbeitbares) Textfeld dar, das Sie mit dem Textwerkzeug in Flash erstellen knnen. Mit den Methoden und Eigenschaften dieser Klasse knnen Sie Textfelder zur Laufzeit steuern. TextField-Objekte untersttzen dieselben Eigenschaften wie MovieClip-Objekte. Ausgenommen hiervon sind die Eigenschaften _currentframe, _droptarget, _framesloaded und _totalframes. Fr Textfelder knnen Sie dynamisch Eigenschaften abrufen und festlegen und Methoden aufrufen. Um dynamische Textfelder oder Eingabetextfelder mit ActionScript zu steuern, mssen Sie ihnen im Eigenschafteninspektor einen Instanznamen zuweisen. Sie knnen dann mit dem Instanznamen auf das Textfeld verweisen und mit den Methoden und Eigenschaften der TextField-Klasse die Inhalte oder die Darstellung des Textfelds steuern. Sie haben auch die Mglichkeit, mit der Methode MovieClip.createTextField() TextField-Objekte zur Laufzeit zu erstellen und ihnen Instanznamen zuzuweisen. Weitere Informationen finden Sie unter Textfelder zur Laufzeit erstellen auf Seite 151. Textfeldern Text zur Laufzeit zuweisen Mit der Eigenschaft TextField.text knnen Sie Textfeldern Text zuweisen.
So weisen Sie Textfeldern Text zur Laufzeit zu:

1 Erstellen Sie auf der Bhne mit dem Textwerkzeug ein Textfeld. 2 Whlen Sie das Textfeld aus, und geben Sie im Eigenschafteninspektor (Fenster >

Eigenschaften) direkt unter dem Popupmen Texttyp auf der linken Seite des Inspektors im Textfeld Instanzname headline_txt ein. Instanznamen drfen nur Buchstaben, Unterstriche (_) und Dollar-Zeichen ($) enthalten. 3 Whlen Sie in der Zeitleiste das erste Bild in Ebene 1 aus, und ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen). 4 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:
headline_txt.text = "Brasilien gewinnt die Weltmeisterschaft";

5 Whlen Sie Steuerung > Film testen, um den Film zu testen.

Textfeldinstanzen und Variablennamen Im Eigenschafteninspektor knnen Sie dynamischen Textfeldern oder Eingabetextfeldern auch Variablennamen oder Instanznamen zuweisen. In ActionScript knnen Sie dann auf den Variablennamen des Textfelds verweisen, dessen Wert den Inhalt des Textfelds bestimmt. Der Instanzname eines Textfelds darf jedoch nicht mit dem Variablennamen verwechselt werden. Mit dem einem Textfeld zugewiesenen Instanznamen knnen Sie fr das Textfeld Methoden aufrufen und Eigenschaften abrufen und festlegen. Der Variablenname eines Textfelds ist ein Variablenverweis auf den in diesem Textfeld enthaltenen Text. Er ist kein Verweis auf ein Objekt. Wenn Sie beispielsweise einem Textfeld den Variablennamen meintextVar zugewiesen haben, knnten Sie den Inhalt des Textfelds mit dem folgenden Code festlegen:
var meintextVar = "Dies wird im Textfeld angezeigt";

150

Kapitel 8: Mit Text arbeiten

Sie knnen jedoch nicht die Variable meintextVar verwenden, um die Eigenschaft Text desselben Textfelds auf Text zu setzen.
// Dies funktioniert nicht meinTextVar.text = "Eine Textfeld-Variable ist kein Objektverweis";

Im Allgemeinen knnen Sie mit der Eigenschaft TextField.text den Inhalt eines Textfelds steuern, es sei denn, die TextField-Klasse wird von der Flash Player-Zielversion nicht untersttzt. Dadurch verringert sich die Wahrscheinlichkeit eines Variablennamenkonflikts, der zur Laufzeit zu unerwarteten Verhalten fhren knnte.

Textfelder zur Laufzeit erstellen


Mit der Methode createTextField() der MovieClip-Klasse knnen Sie auf der Bhne zur Laufzeit neue, leere Textfelder erstellen. Das neue Textfeld ist der Zeitleiste des Movieclips zugewiesen, das die Methode aufruft. Die Methode createTextField() verwendet die folgende Syntax:
movieClip.createTextField(instanceName, depth, x, y, width, height)

Der folgende Code erzeugt beispielsweise ein 300 x 100 Pixel groes Textfeld mit dem Namen test_txt an Punkt (0,0) und einer Tiefe (Z-Reihenfolge) von 10.
_root.createTextField("test_txt", 10, 0, 0, 300, 100);

Mit dem im Aufruf createTextField() festgelegten Instanznamen knnen Sie auf die Methoden und Eigenschaften der TextField-Klasse zugreifen. Beispielsweise erzeugt der folgende Code ein neues Textfeld mit dem Namen test_txt und ndert dann dessen Eigenschaften, um ein mehrzeiliges Textfeld mit aktiviertem Zeilenumbruch zu erstellen, dessen Gre sich automatisch an den eingefgten Text anpasst. Schlielich wird der Eigenschaft text des Textfelds ein Text zugewiesen.
_root.createTextField("test_txt", 10, 0, 0, 300, 100); test_txt.multiline = true; test_txt.wordWrap = true; test_txt.autoSize = true; test_txt.text = "Neue Textfelder mit der Methode MovieClip.createTextField erstellen.";

Mit der Methode TextField.removeTextField() entfernen Sie mit createTextField() erstellte Felder. Die Methode removeTextField() funktioniert nicht bei Textfeldern, die beim Authoring von der Zeitleiste eingesetzt wurden. Weitere Informationen hierzu finden Sie unter MovieClip.createTextField() auf Seite 514 und TextField.removeTextField() auf Seite 715.

Textfelder zur Laufzeit erstellen

151

Mit der TextFormat-Klasse arbeiten


Mit Hilfe der TextFormat-Klasse knnen Sie die Formatierungseigenschaften eines Textfelds in ActionScript festlegen. Die TextFormat-Klasse beinhaltet sowohl Zeichen- als auch Absatzformatinformationen. Die Zeichenformatinformationen beschreiben das Erscheinungsbild der einzelnen Textzeichen: Schriftname, Punktgre, Farbe und verknpfte URL. Die Absatzformatinformationen beschreiben das Erscheinungsbild eines Absatzes: linker Rand, rechter Rand und Einzug sowie Ausrichtung linksbndig, rechtsbndig oder zentriert. Um die TextFormat-Klasse verwenden zu knnen, mssen Sie zunchst ein TextFormat-Objekt erstellen und dessen Zeichen- und Absatzformatierungsstile festlegen. Anschlieend knnen Sie mit Hilfe der Methoden TextField.setTextFormat() oder TextField.setNewTextFormat() das TextFormat-Objekt auf ein Textfeld anwenden. Die Methode setTextFormat() ndert das Textformat, das auf einzelne Zeichen, Gruppen von Zeichen oder den gesamten Text in einem Textfeld angewendet wird. Neu eingefgter Text - wie z. B. vom Benutzer eingegebener oder mit ActionScript eingefgter Text - bernimmt nicht die vom Aufruf setTextFormat() festgelegte Formatierung. Die Standardformatierung fr neu eingefgten Text knnen Sie mit TextField.setNewTextFormat() festlegen. Weitere Informationen hierzu finden Sie unter TextField.setTextFormat() auf Seite 719 und TextField.setNewTextFormat() auf Seite 719.
So formatieren Sie ein Textfeld mit der TextFormat-Klasse:

1 ffnen Sie ein neues Flash-Dokument, und erstellen Sie auf der Bhne mit dem Textwerkzeug

ein neues Textfeld. Geben Sie auf der Bhne Text in das Textfeld ein, z. B. Text in Fett, Kursiv, 24 Punkt. 2 Geben Sie im Eigenschafteninspektor im Textfeld Instanzname meinText_txt ein, whlen Sie im Popupmen Texttyp die Option Dynamisch und dann im Popupmen Zeilentyp die Option Mehrzeilig. 3 Whlen Sie in der Zeitleiste das erste Bild in Ebene 1 aus, und ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen). 4 Geben Sie im Bedienfeld Aktionen den folgenden Code ein, um ein TextFormat-Objekt zu erstellen, seine Eigenschaften bold und italic auf true und seine Eigenschaft size auf 24 zu setzen.
// TextFormat-Objekt erstellen var txtfmt_fmt = new TextFormat(); // Absatz- und Zeichenformatierung festlegen txtfmt_fmt.bold = "true"; txtfmt_fmt.italic = "true"; txtfmt_fmt.size = "24"

5 Wenden Sie das TextFormat-Objekt auf das Textfeld an, das Sie in Schritt 1 mit
TextField.setTextFormat()

erstellt haben.

meinText_txt.setTextFormat(txtfmt_fmt);

152

Kapitel 8: Mit Text arbeiten

Diese Version von setTextFormat() wendet die festgelegte Formatierung auf das gesamte Textfeld an. Es gibt zwei weitere Versionen dieser Methode, mit denen Sie die Formatierung auf einzelne Zeichen oder Zeichengruppen anwenden knnen. Der folgende Code wendet z. B. die Formatierung Fett, Kursiv, 24 Punkt auf die ersten vier Zeichen an, die Sie im Textfeld eingegeben haben.
meinText_txt.setTextFormat(txtfmt_fmt, 0, 3);

Weitere Informationen finden Sie unter TextField.setTextFormat() auf Seite 719. 6 Whlen Sie Steuerung > Film testen, um den Film zu testen. Standardeigenschaften neuer Textfelder Zur Laufzeit mit createTextField() erstellte Textfelder erhalten ein standardmiges TextFormat-Objekt mit den folgenden Eigenschaften:
font = "Times New Roman" size = 12 textColor = 0x000000 bold = false italic = false underline = false url = "" target = "" align = "left" leftMargin = 0 rightMargin = 0 indent = 0 leading = 0 bullet = false tabStops = [] (empty array)

Eine vollstndige Liste der TextFormat-Methoden und ihre Beschreibungen finden Sie unter dem Eintrag TextFormat class in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Informationen zu Textmaen abrufen Mit der Methode TextFormat.getTextExtent() knnen Sie detaillierte Textmae fr einen Textstring erhalten, dem eine bestimmte Formatierung zugewiesen wurde. Angenommen, Sie mssen zur Laufzeit ein neues TextField-Objekt erstellen, das eine beliebige Menge Text mit der Formatierung 24 Punkt, Fett, Arial und 5-Pixel-Einzug enthlt. Um den gesamten Text anzuzeigen, mssen Sie festlegen, wie breit oder hoch das neue TextField-Objekt sein soll. ber die Methode getTextExtent() werden Messdaten wie Ober- und Unterlnge, Breite und Hhe definiert. Weitere Informationen finden Sie unter TextFormat.getTextExtent() auf Seite 737.

Mit der TextFormat-Klasse arbeiten

153

Text mit Cascading Style Sheets formatieren


Mit Cascading Style Sheets knnen Textstile erstellt werden, die auf HTML- oder XMLDokumente angewendet werden knnen. Stylesheets sind Sammlungen von Formatierungsregeln, die festlegen, wie HTML- oder XML-Elemente formatiert werden sollen. Jede Regel verknpft einen Stilnamen, auch Selektor genannt, mit einer oder mehreren Stileigenschaften und ihren Werten. Der folgende Stil definiert z. B. den Selektor bodyText.
bodyText { text-align: left}

Sie knnen Stile erstellen, die von Flash Player verwendete integrierte HTML-Formatierungstags neu definieren (wie z. B. <p> und <li>), Stilklassen erstellen, die mit dem class-Attribut des <p>- oder <span>-Tags auf bestimmte HTML-Elemente angewendet werden knnen, oder neue Tags definieren. Zum Arbeiten mit Text-Stylesheets verwenden Sie die TextField.StyleSheet-Klasse. Sie knnen Stile aus einer externen CSS-Datei laden oder nativ mit ActionScript erstellen. Um einem Textfeld mit HTML- oder XML-formatiertem Text ein Stylesheet zuzuweisen, mssen Sie die Eigenschaft TextField.styleSheet verwenden. Die im Stylesheet definierten Stile werden automatisch den Tags zugeordnet, die im HTML- oder XML-Dokument definiert sind. Fr die Verwendung von Stylesheets sind drei grundlegende Schritte erforderlich:

Erstellen Sie aus der TextField.StyleSheet-Klasse ein Stylesheet-Objekt. Weitere Informationen


hierzu finden Sie unter Stylesheet-Objekte erstellen auf Seite 156. Fgen Sie dem Stylesheet-Objekt Stile hinzu, entweder indem Sie sie aus einer externen CSSDatei importieren oder sie mit ActionScript definieren. Weitere Informationen hierzu finden Sie unter Externe CSS-Dateien laden auf Seite 156 und Neue Stile mit ActionScript erstellen auf Seite 157. Weisen Sie das Stylesheet-Objekt einem Textfeld zu, das XML- oder HTML-formatierten Text enthlt. Informationen hierzu finden Sie in den Abschnitten Stile auf TextField-Objekte anwenden auf Seite 157, Beispiel fr die Verwendung von Stilen mit HMTL auf Seite 160 und Beispiel fr die Verwendung von Stilen mit XML auf Seite 162.

154

Kapitel 8: Mit Text arbeiten

Untersttzte CSS-Eigenschaften Flash Player untersttzt eine Untergruppe der Eigenschaften aus der ursprnglichen CSS1Spezifikation (www.w3.org/TR/REC-CSS1). In der folgenden Tabelle finden Sie die untersttzten CSS-Eigenschaften und Werte sowie die entsprechenden ActionScriptEigenschaftennamen. (Die Namen der einzelnen ActionScript-Eigenschaften werden von der entsprechenden Bezeichnung der CSS-Eigenschaften abgeleitet. Dabei fllt der Bindestrich weg, und das nachfolgende Zeichen wird gro geschrieben.)
CSSEigenschaft text-align font-size ActionScriptEigenschaft textAlign fontSize Verwendung und untersttzte Werte Erkannte Werte sind left, center und right. Nur der numerische Teil des Werts wird verwendet; Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig. Erkannte Werte sind none und underline. Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig. Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig. Erkannte Werte sind normal und bold. Erkannte Werte sind normal und italic. Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig. Die zu verwendende kommagetrennte Schriftenliste, in absteigender Reihenfolge der Prferenz. Es lassen sich beliebige Namen fr die Schriftart verwenden. Wenn Sie eine generische Schriftartbezeichnung whlen, wird diese in eine entsprechende Gerteschriftart konvertiert. Die folgenden Schriftkonvertierungen stehen zur Verfgung: mono wird zu _typewriter, sans-serif zu _sans und serif zu _serif konvertiert. Es werden nur hexadezimale Farbwerte untersttzt. Benannte Farben (wie blue) werden nicht untersttzt. Die untersttzten Werte sind inline, block und none.

text-decoration margin-left

textDecoration marginLeft

margin-right

marginRight

font-weight font-style text-indent

fontWeight fontStyle textIndent

font-family

fontFamily

color display

color display

Text mit Cascading Style Sheets formatieren

155

Stylesheet-Objekte erstellen CSS-Stylesheets werden in ActionScript durch die TextField.StyleSheet-Klasse dargestellt. Diese Klasse steht nur fr SWF-Dateien zur Verfgung, die fr den Flash Player 7 oder sptere Versionen konzipiert werden. Um ein neues Stylesheet-Objekt zu erstellen, rufen Sie die Konstruktorfunktion der TextField.StyleSheet-Klasse auf.
var newStyle = new TextField.StyleSheet();

Um einem Stylesheet-Objekt Stile hinzuzufgen, knnen Sie entweder eine externe CSS-Datei in das Objekt laden oder die Stile in ActionScript definieren. Weitere Informationen hierzu finden Sie unter Externe CSS-Dateien laden auf Seite 156 und Neue Stile mit ActionScript erstellen auf Seite 157. Externe CSS-Dateien laden Sie haben die Mglichkeit, Stile in einer externen CSS-Datei zu definieren und diese Datei dann in ein Stylesheet-Objekt zu laden. Die in der CSS-Datei definierten Stile werden dem StylesheetObjekt hinzugefgt. Mit der load()-Methode der TextField.StyleSheet-Klasse knnen Sie externe CSS-Dateien laden. Mit der Ereignisprozedur onLoad des Stylesheet-Objekts knnen Sie ermitteln, ob die CSS-Datei geladen wurde. Im folgenden Beispiel erstellen und laden Sie eine externe CSS-Datei und rufen die Namen der geladenen Stile mit der Methode TextField.StyleSheet.getStyleNames() ab.
So laden Sie externe Stylesheets:

1 Erstellen Sie in Ihrem bevorzugten Text- oder XML-Editor eine Datei. 2 Fgen Sie der Datei die folgenden Stildefinitionen hinzu:
// Dateiname: styles.css bodyText { font-family: Arial,Helvetica,sans-serif; font-size: 12px; } headline { font-family: Arial,Helvetica,sans-serif; font-size: 24px; }

3 Speichern Sie die CSS-Datei unter styles.css. 4 Erstellen Sie in Flash ein neues FLA-Dokument. 5 Whlen Sie in der Zeitleiste (Fenster > Zeitleiste) Ebene 1. 6 ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen). 7 Fgen Sie im Bedienfeld Aktionen folgenden Code hinzu:
var css_styles = new TextField.StyleSheet(); css_styles.load("styles.css"); css_styles.onLoad = function(ok) { if(ok) { // Stilnamen anzeigen trace(this.getStyleNames()); } else { trace("Fehler beim Laden der CSS-Datei."); } }

156

Kapitel 8: Mit Text arbeiten

8 Speichern Sie die Datei im selben Ordner wie styles.css. 9 Testen Sie den Film (Steuerung > Film testen).

Im Bedienfeld Ausgabe sollten jetzt die Namen der beiden Stile angezeigt werden:
body headLine

Wenn im Bedienfeld Ausgabe Fehler beim Laden der CSS-Datei. angezeigt wird, berprfen Sie, ob sich die FLA-Datei und die CSS-Datei im selben Ordner befinden und ob Sie den Namen der CSS-Datei korrekt eingegeben haben. Wie bei allen anderen ActionScript-Methoden, die ber das Netzwerk Daten laden, muss sich die CSS-Datei in derselben Domne wie die SWF-Datei befinden, die die Datei ldt. (Weitere Informationen finden Sie unter Domnenbergreifendes Laden von Daten ermglichen auf Seite 213.) Neue Stile mit ActionScript erstellen Mit der Methode setStyle() der TextField.StyleSheet-Klasse knnen Sie in ActionScript neue Textstile erstellen. Fr diese Methode bentigen Sie zwei Parameter: den Namen des Stils und ein Objekt, das die Eigenschaften des Stils definiert. Der folgende Code erstellt z. B. das Stylesheet-Objekt styles, das zwei Stile definiert, die mit denen identisch sind, die Sie zuvor importiert haben (siehe Externe CSS-Dateien laden auf Seite 156).
var styles = new TextField.StyleSheet(); styles.setStyle("bodyText", {fontFamily: 'Arial,Helvetica,sans-serif', fontSize: '12px'} ); styles.setStyle("headline", {fontFamily: 'Arial,Helvetica,sans-serif', fontSize: '24px'} );

Stile auf TextField-Objekte anwenden Um ein Stylesheet-Objekt auf ein Textfeld anzuwenden, mssen Sie das Stylesheet-Objekt der Eigenschaft styleSheet des Textfelds zuweisen.
textObj_txt.styleSheet = styleSheetObj; Hinweis: Achten Sie darauf, die TextField.styleSheet-Eigenschaft nicht mit der TextField.StyleSheet-Klasse zu verwechseln. Die Gro- und Kleinschreibung macht hier den Unterschied.

Text mit Cascading Style Sheets formatieren

157

Wenn Sie einem TextField-Objekt ein Stylesheet-Objekt zuweisen, ndert sich das normale Verhalten des Textfelds wie folgt:

Die Eigenschaften text und htmlText des Textfelds und jede beliebige mit dem Textfeld
verknpfte Variable enthalten immer denselben Wert und verhalten sich gleich.

Das Textfeld wird schreibgeschtzt und kann vom Benutzer nicht bearbeitet werden. Die Methoden setTextFormat() und replaceSel() der TextField-Klasse werden bei dem
Textfeld nicht mehr ausgefhrt. Sie knnen das Feld nur ndern, wenn Sie die Eigenschaften text oder htmlText des Textfelds oder die mit dem Textfeld verknpfte Variable ndern. Jeder beliebige Text, der der Textfeldeigenschaft text, der Eigenschaft htmlText oder der verknpften Variable zugewiesen wird, wird wrtlich gespeichert. Alles, was in eine dieser Eigenschaften geschrieben wird, kann in der ursprnglichen Form des Texts abgerufen werden.

Stile kombinieren In Flash Player handelt es sich bei CSS-Stilen um additive Stile. Das heit, durch Verschachteln von Stilen kann jede Verschachtelungsebene zustzliche Stilinformationen liefern, die zusammen die endgltige Formatierung ergeben. Hier ein Beispiel fr einem Textfeld zugewiesene XML-Daten:
<sectionHeading>Dies ist ein Abschnitt</sectionHeading> <mainBody>Dies ist der Text des Hauptteils, der ein <emphasized>betontes</emphasized> Wort enthlt.</mainBody>

Fr das Wort betont im Text oben wird der Stil emphasized mit dem Stil mainBody verschachtelt. Der Stil mainBody trgt Farb-, Schriftgren- und Auszeichnungsregeln bei. Der Stil emphasized fgt diesen Regeln eine Regel fr die Schriftgewichtung hinzu. Das Wort betont wird mit einer Kombination aus den von mainBody und emphasized festgelegten Regeln formatiert. Stilklassen verwenden Sie knnen Stil-Klassen erstellen, die Sie auf ein <p>- oder <span>-Tag mit dem Attribut class eines der Tags anwenden knnen. Wenn der Stil auf ein <p>-Tag angewendet wird, wirkt sich der Stil auf den gesamten Absatz aus. Sie knnen auch mit einer Stilklasse mit dem <span>-Tag einen Stil auf einen Textbereich anwenden. Das folgende Stylesheet definiert beispielsweise zwei Stilklassen: mainBody und emphasis.
.mainBody { font-family: Arial,Helvetica,sans-serif; font-size: 24px; } .emphasis { color: #666666; font-style: italic; }

Im HTML-Text, den Sie einem Textfeld zuweisen, knnen Sie diese Stile wie in diesem Beispiel dargestellt auf <p>- und <span>-Tags anwenden.
<p class="mainBody">Das ist <span class="emphasis">wirklich aufregend!</ span></p>

158

Kapitel 8: Mit Text arbeiten

Stile fr integrierte HTML-Tags festlegen Flash Player untersttzt eine Reihe von HTML-Tags. Weitere Informationen hierzu finden Sie unter HTML-formatierten Text verwenden auf Seite 163. Sie knnen jeder Instanz eines integrierten HTML-Tags, das in einem Textfeld angezeigt wird, einen CSS-Stil zuweisen. Der folgende Code definiert beispielsweise einen Stil fr das integrierte HTML-Tag <p>. Alle Instanzen dieses Tags haben den Stil, der von der Stilregel festgelegt wurde.
p { font-family: Arial,Helvetica,sans-serif; font-size: 12px; display: inline; }

In der Tabelle unten sehen Sie, fr welche integrierten HTML-Tags Stile festgelegt werden knnen und wie die einzelnen Stile angewendet werden.
Stilname
p body

So wird der Stil angewendet Betrifft alle <p>-Tags. Betrifft alle <body>-Tags. Wenn der Stil p festgelegt wurde, hat er vor dem Stil body Vorrang. Betrifft alle <li>-Tags. Betrifft alle <a> Anker-Tags. Betrifft alle <a> Anker-Tags. Dieser Stil wird nach einem beliebigen a-Stil angewendet. Wird auf ein Anker-Tag <a> angewendet, wenn der Benutzer mit der Maus auf den Link zeigt. Dieser Stil wird nach einem beliebigen a- und a:link-Stil angewendet. Wenn Sie die Maus vom Link wegbewegen, wird der Stil a:hover vom Link entfernt. Wird beim Anklicken des Links auf ein Anker-Tag <a> angewendet. Dieser Stil wird nach einem beliebigen a- und a:link-Stil angewendet. Sobald die Maustaste losgelassen wird, wird der Stil a:active vom Link entfernt.

li a a:link

a:hover

a:active

Text mit Cascading Style Sheets formatieren

159

Beispiel fr die Verwendung von Stilen mit HMTL In diesem Abschnitt erfahren Sie an einem Beispiel, wie Sie Stile mit HTML-Tags verwenden knnen. Sie erstellen ein Stylesheet, das einige integrierte Tags festlegt und einige Stilklassen definiert. Dann wenden Sie dieses Stylesheet auf ein TextField-Objekt an, das HTMLformatierten Text enthlt.
So formatieren Sie HTML mit einem Stylesheet:

1 Erstellen Sie in Ihrem bevorzugten Texteditor eine Datei. 2 Fgen Sie der Datei die folgende Stylesheet-Definition hinzu:
p { color: #000000; font-family: Arial,Helvetica,sans-serif; font-size: 12px; display: inline; } a:link { color: #FF0000; } a:hover{ text-decoration: underline; } .headline { color: #000000; font-family: Arial,Helvetica,sans-serif; font-size: 18px; font-weight: bold; display: block; } .byline { color: #666600; font-style: italic; font-weight: bold; display: inline; }

3 4 5 6 7

Dieses Stylesheet definiert Stile fr zwei integrierte HTML-Tags (<p> und <a>), die auf alle Instanzen dieser Tags angewendet werden. Es definiert auerdem zwei Stilklassen (.headline und .byline), die auf bestimmte Abstze und Textbereiche angewendet werden. Speichern Sie die Datei unter html_styles.css. Erstellen Sie in Flash eine FLA-Datei. Erstellen Sie mit dem Textwerkzeug ein ca. 400 Pixel breites und 300 Pixel hohes Textfeld. ffnen Sie den Eigenschafteninspektor (Fenster > Eigenschaften), und whlen Sie das Textfeld aus. Whlen Sie im Eigenschafteninspektor im Men Texttyp die Option Dynamischer Text, whlen Sie dann im Men Zeilentyp die Option Mehrzeilig und die Option Text als HTML wiedergeben, und geben Sie anschlieend im Textfeld Instanzname news_txt ein. Whlen Sie in der Zeitleiste (Fenster > Zeitleiste) das erste Bild in Ebene 1.

160

Kapitel 8: Mit Text arbeiten

9 ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen), und

fgen Sie im Bedienfeld Aktionen den folgenden Code hinzu:


// Neues Stylesheet-Objekt erstellen var style_sheet = new TextField.StyleSheet(); // Position der CSS-Datei, die Stile definiert. var css_url = "html_styles.css"; // HTML-Text zum Anzeigen erstellen var storyText:String = "<p class='headline'>Flash Player untersttzt jetzt Cascading Style Sheets!</p><p><span class='byline'>San Francisco, CA</ span>--Macromedia Inc. kndigte heute eine neue Flash Player-Version an, die Cascading Style Sheet (CSS)-Textstile untersttzt. Weitere Informationen finden Sie auf der Macromedia Flash Website unter <a href='http://www.macromedia.com'>.</a></p>"; // CSS-Datei laden und onLoad-Prozedur definieren: style_sheet.load(css_url); style_sheet.onLoad = function(ok) { if (ok) { // Wenn das Stylesheet ohne Fehler geladen wurde, // dann dem Textobjekt zuweisen // und dem Textfeld den HTML-Text zuweisen. news_txt.styleSheet = style_sheet; news_txt.text = storyText; } }; Hinweis: Der Einfachheit halber wird der HTML-Code, dessen Stil festgelegt wird, im Skript hartcodiert. In der Realitt wrden Sie den Text wahrscheinlich aus einer externen Datei laden. Weitere Informationen zum Laden externer Daten finden Sie in Kapitel 10, Mit externen Daten arbeiten, auf Seite 199.

10 Speichern Sie die Datei unter dem Namen news_html.fla im selben Ordner, in dem sich auch

die zuvor erstellte CSS-Datei befindet. 11 Fhren Sie den Film aus (Steuerung > Film testen), um die Stile zu sehen, die automatisch auf den HTML-Text angewendet wurden. Neue Tags mit Hilfe von Stilen definieren Wenn Sie in einem Stylesheet einen neuen Stil definieren, kann dieser Stil als Tag verwendet werden, als wrde es sich um ein integriertes HTML-Tag handeln. Wenn ein Stylesheet beispielsweise den CSS-Stil sectionHeading definiert, knnen Sie <sectionHeading> als ein Element in einem beliebigen Textfeld verwenden, das mit dem Stylesheet verknpft ist. Dadurch knnen Sie einem Textfeld beliebigen XML-formatierten Text direkt zuweisen, sodass der Text mit Hilfe der Regeln im Stylesheet automatisch formatiert wird. Das folgende Stylesheet erstellt beispielsweise die neuen Stile sectionHeading, mainBody und
emphasized. sectionHeading { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 18px; display: block } mainBody { color: #000099; text-decoration: underline; font-size: 12px; display: block } emphasized { font-weight: bold; display: inline }

Text mit Cascading Style Sheets formatieren

161

Sie knnen dann einem Textfeld, das mit diesem Stylesheet verknpft ist, den folgenden XMLformatierten Text zuweisen:
<sectionHeading>Dies ist ein Abschnitt</sectionHeading> <mainBody>Dies ist der Text des Hauptteils, der ein <emphasized>betontes</emphasized> Wort enthlt. </mainBody>

Beispiel fr die Verwendung von Stilen mit XML In diesem Abschnitt erstellen Sie dieselbe FLA-Datei, die Sie schon einmal erstellt haben (siehe Beispiel fr die Verwendung von Stilen mit HMTL auf Seite 160), dieses Mal jedoch mit XML-formatiertem Text. Sie erstellen das Stylesheet in diesem Beispiel allerdings mit ActionScript und importieren keine Stile aus CSS-Dateien.
So formatieren Sie XML mit einem Stylesheet:

1 Erstellen Sie in Flash eine FLA-Datei. 2 Erstellen Sie mit dem Textwerkzeug ein ca. 400 Pixel breites und 300 Pixel hohes Textfeld. 3 ffnen Sie den Eigenschafteninspektor (Fenster > Eigenschaften), und whlen Sie das Textfeld

aus. 4 Whlen Sie im Eigenschafteninspektor im Men Texttyp die Option Dynamischer Text, whlen Sie dann im Men Zeilentyp die Option Mehrzeilig und die Option Text als HTML wiedergeben, und geben Sie anschlieend im Textfeld Instanzname news_txt ein. 5 Whlen Sie in der Zeitleiste (Fenster > Zeitleiste) das erste Bild auf Ebene 1. 6 Um ein neues Stylesheet-Objekt zu erstellen, ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen), und fgen im Bedienfeld Aktionen folgenden Code hinzu:
var xml_styles = new TextField.StyleSheet(); xml_styles.setStyle("mainBody", { color:'#000000', fontFamily:'Arial,Helvetica,sans-serif', fontSize:'12', display:'block' }); xml_styles.setStyle("title", { color:'#000000', fontFamily:'Arial,Helvetica,sans-serif', fontSize:'18', display:'block', fontWeight:'bold' }); xml_styles.setStyle("byline", { color:'#666666', fontWeight:'bold', fontStyle:'italic', display:'inline' }); xml_styles.setStyle("a:link", { color:'#FF0000' }); xml_styles.setStyle("a:hover", { textDecoration:'underline' });

162

Kapitel 8: Mit Text arbeiten

Dieser Code erstellt das neue Stylesheet-Objekt xml_styles, das mit der Methode setStyle() Stile definiert. Diese Stile entsprechen genau denen, die Sie in einem vorherigen Abschnitt in einer externen CSS-Datei erstellt haben. 7 Um den XML-Text zu erstellen, der dem Textfeld zugewiesen werden soll, fgen Sie den folgenden Code im Bedienfeld Aktionen hinzu:
var storyText = "<title>Flash Player untersttzt jetzt CSS</ title><mainBody><byline>San Francisco, CA</byline>--Macromedia Inc. kndigte heute eine neue Flash Player-Version an, die Cascading Style Sheet (CSS)-Textstile untersttzt. Weitere Informationen finden Sie auf der Macromedia Flash Website unter <a href=\"http://www.macromedia.com\"> </a></mainBody>";

8 Fgen Sie schlielich den folgenden Code hinzu, um das Stylesheet-Objekt auf die Eigenschaft
styleSheet

des Textfelds anzuwenden und dem Textfeld den XML-Text zuzuweisen.

news_txt.styleSheet = xml_styles; news_txt.text = storyText;

9 Speichern Sie die Datei unter news_xml.fla. 10 Fhren Sie den Film aus (Steuerung > Film testen), um die Stile zu sehen, die automatisch auf

den Text angewendet wurden.

HTML-formatierten Text verwenden


Flash Player untersttzt eine Reihe von standardmigen HTML-Tags wie <p> und <li>, mit denen Sie Texte in dynamischen oder Eingabetextfeldern formatieren knnen. Textfelder ab Flash Player 7 untersttzen auch das Tag <img>, mit dem sich JPEGs, SWF-Dateien und Movieclips in Textfelder einbetten lassen. Der Text im Flash Player umfliet automatisch die in die Textfelder eingebetteten Bilder, hnlich wie in einem Webbrowser, in dem Text die Bilder auf einer HTML-Seite umfliet. Weitere Informationen hierzu finden Sie unter Bilder, SWFDateien und Movieclips in Textfeldern einbetten auf Seite 169. Flash Player untersttzt auch das Tag <textformat>, mit dem sich Stile der TextFormat-Klasse zur Absatzformatierung auf HTML-fhige Textfelder anwenden lassen. Weitere Informationen finden Sie unter Mit der TextFormat-Klasse arbeiten auf Seite 152. bersicht zur Verwendung von HTML-formatiertem Text Wenn Sie HTML in einem Textfeld verwenden mchten, mssen Sie die HTML-Formatierung aktivieren, indem Sie im Eigenschaftsinspektor die Option Text als HTML wiedergeben auswhlen oder die html-Eigenschaft des Textfelds auf true setzen. Zum Einfgen von HTML in Textfelder verwenden Sie die TextField.htmlText-Eigenschaft. Mit dem folgenden Code wird beispielsweise die HTML-Formatierung fr ein Textfeld namens headline_txt aktiviert und diesem anschlieend HTML-Text zugewiesen.
headline_txt.html = true; headline_txt.htmlText = "<font face='Times New Roman' size='24'>So wird Textfeldern ein HTML-Text zugewiesen.</font>";

HTML-formatierten Text verwenden

163

Attribute von HTML-Tags mssen in einzelnen oder doppelten Anfhrungszeichen eingeschlossen sein. Attributwerte ohne Anfhrungszeichen knnen unerwartete Ergebnisse wie die fehlerhafte Darstellung von Texten zur Folge haben. Der folgenden HTML-Ausschnitt wird beispielsweise nicht korrekt vom Flash Player dargestellt, weil der Wert, der dem Attribut align zugewiesen wurde (left), nicht in Anfhrungszeichen eingeschlossen ist:
textField.htmlText = "<p align=left>Linksbndig ausgerichteter Text</p>";

Wenn Sie Attributwerte in doppelten Anfhrungszeichen einschlieen, mssen Sie die Anfhrungszeichen umgehen (\"). Folgende Vorgehensweisen sind mglich:
textField.htmlText = "<p align='left'>Hier werden einfache Anfhrungszeichen verwendet.</p>"; textField.htmlText = "<p align=\"left\">Hier werden doppelte Anfhrungszeichen verwendet.</p>";

Das Umgehen der doppelten Anfhrungszeichen ist beim Laden von Text aus einer externen Datei nicht erforderlich, sondern nur dann, wenn Sie einen Textstring in ActionScript zuweisen. Untersttzte HTML-Tags In diesem Abschnitt werden die integrierten HTML-Tags aufgelistet, die vom Flash Player untersttzt werden. Sie knnen auch mit Hilfe von Cascading Style Sheets neue Stile und Tags erstellen. Siehe dazu Text mit Cascading Style Sheets formatieren auf Seite 154. Anker-Tag (<a>) Mit dem Tag <a> wird ein Hyperlink angelegt. Das Tag untersttzt die folgenden Attribute:

href Legt die URL der in den Browser zu ladenden Seite fest. Die URL kann an einer absoluten oder relativen Position zum Speicherort der SWF-Datei liegen, von der die Seite geladen wird. target Legt den Namen des Zielfensters fest, in das die Seite geladen werden soll.

Mit dem folgenden HTML-Ausschnitt wird beispielsweise der Link Zur Startseite erstellt, der www.macromedia.com in einem neuen Browserfenster ffnet.
<a href="../home.htm" target="_blank">Zur Startseite<a>

Sie knnen auch die Stile a:link, a:hover, and a:active fr Anker-Tags mit Hilfe von Stylesheets definieren. Weitere Informationen hierzu finden Sie unter Stile fr integrierte HTML-Tags festlegen auf Seite 159. Fettdruck-Tag (<b>) Mit dem Tag <b> wird Text fett formatiert. Fr die Schriftart, die zum Anzeigen des Texts verwendet wird, muss ein fett formatiertes Schriftbild verfgbar sein.
<b>Dieser Text ist fett gedruckt.</b>

Zeilenumbruch-Tag (<br>) Mit dem Tag <br> fgen Sie einen Zeilenumbruch in Textfelder ein. Beispiel:
Eine Textzeile<br>Noch eine Textzeile<br>

164

Kapitel 8: Mit Text arbeiten

Schriftart-Tag (<font>) Mit dem Tag <font> legen Sie fest, welche Schriftart(en) fr die Textanzeige verwendet werden. Die folgenden Attribute werden vom Schriftart-Tag untersttzt:

color Es werden nur hexadezimale Farbwerte (#FFFFFF) untersttzt. Mit dem folgenden HTML-Beispielcode erstellen Sie roten Text. <font color="#FF0000">Das ist ein roter Text.</font> face

Bestimmt die zu verwendende Schriftbezeichnung. Sie knnen auch eine Liste mit durch Kommata getrennten Schriftartbezeichnungen angeben. In diesem Fall sucht sich der Flash Player die erste verfgbare Schriftart davon aus. Ist die angegebene Schriftart nicht auf dem Wiedergabesystem installiert oder in der SWF-Datei eingebettet, wird eine Ersatzschriftart vom Flash Player gewhlt. Beispiel:

<font face="Times, Times New Roman">Diese Schriftart ist entweder Times oder Times New Roman..</font>

Weitere Informationen ber das Einbetten von Schriftarten in Flash-Anwendungen finden Sie unter TextField.embedFonts auf Seite 704 und Optionen fr dynamischen und Eingabetext festlegen in Flash verwenden. size Legt die Gre der Schriftart in Pixeln fest. Sie knnen auch relative Punktgren (+2 oder -4) verwenden.
<font size="24" color="#0000FF">Dies ist grner Text mit einer Gre von 24 Punkten.</font>

Bild-Tag (<img>) Mit dem Tag <img> knnen Sie externe JPEG, SWF-Dateien und Movieclips in Textfelder einbetten. Text fliet automatisch um diese Objekte herum. Dieses Tag wird nur von dynamischen und Eingabetextfeldern untersttzt, die mehrzeilig sind und deren Zeilen umbrochen werden.
Beim Erstellen eines mehrzeiligen Textfelds mit Zeilenumbruch haben Sie mehrere Mglichkeiten:

Whlen Sie in der Flash-Authoring-Umgebung ein Textfeld auf der Bhne und dann im
Eigenschafteninspektor im Popupmen Texttyp die Option Mehrzeilig.

Wird das Textfeld zur Laufzeit mit MovieClip.createTextField() erstellt, setzen Sie dessen
Instanzen TextField.multiline und TextField.wordWrap Eigenschaften auf true. Das Tag <img> erfordert das Attribut src. Damit legen Sie den Pfad zu einer JPEG- oder SWFDatei bzw. den Verknpfungsbezeichner eines Movieclip-Symbols fest. Alle anderen Attribute sind optional.

HTML-formatierten Text verwenden

165

Das Tag <img> untersttzt die folgenden Attribute:

src Definiert die URL zu einer JPEG- oder SWF-Datei bzw. den Verknpfungsbezeichner eines Movieclip-Symbols in der Bibliothek. Dieses Attribut ist erforderlich. Alle anderen sind optional. Externe Dateien (JPEG und SWF) werden erst dann angezeigt, wenn sie komplett heruntergeladen worden sind. Hinweis: Flash Player untersttzt keine progressiven JPEG-Dateien.

id Definiert den Namen der Movieclip-Instanz (wird von Flash Player erstellt), welche die eingebettete JPEG- oder SWF-Datei bzw. den Movieclip enthlt. Dies ist ntzlich, wenn Sie den eingebetteten Inhalt mit ActionScript steuern mchten. width Die Breite von Bild, SWF-Datei oder Movieclip in Pixel. height Die Hhe des einzufgenden Bilds, der SWF-Datei oder des Movieclips in Pixel. align Legt die horizontale Ausrichtung des eingebetteten Bilds im Textfeld fest. Gltige Werte sind left und right. Der Standardwert lautet left. hspace Legt die Gre des horizontalen Bereiches um das Bild fest, in dem kein Text zu sehen ist. Der Standardwert ist 8. vspace Legt die Gre des vertikalen Bereiches um das Bild fest, in dem kein Text zu sehen ist. Der Standardwert ist 8.

Weitere Informationen und Beispiele zum Einsatz des Tags <img> finden Sie unter Bilder, SWFDateien und Movieclips in Textfeldern einbetten auf Seite 169. Kursiv-Tag (<i>) Mit dem Tag <i> zeigen Sie Ihren Text in kursiver Schrift an. Fr die verwendete Schriftart muss ein kursives Schriftbild vorhanden sein.
Das ist sehr <i>interessant.</i>

Das hier genannte Beispiel wrde wie folgt angezeigt: Das ist sehr interessant. Listenelement-Tag (<li>) Mit dem Tag <li> wird ein Aufzhlungszeichen vor den eingeschlossenen Text gesetzt.
Einkaufsliste: <li>pfel</li> <li>Orangen</li> <li>Zitronen</li>

Das hier genannte Beispiel wrde wie folgt angezeigt: Einkaufsliste: pfel Orangen Zitronen

166

Kapitel 8: Mit Text arbeiten

Absatz-Tag (<p>) Mit dem Tag <p> wird ein neuer Absatz angelegt. Die folgenden Attribute werden dabei untersttzt:

Legt die Ausrichtung des Texts innerhalb eines Absatzes fest. Gltige Werte sind left, und center. class Legt eine von einem TextField.StyleSheet-Objekt definierte CSS-Stilklasse fest. Weitere Informationen hierzu finden Sie unter Stilklassen verwenden auf Seite 158. Im folgenden Beispiel wird das Attribut align zur Ausrichtung von Text an der rechten Seite eines Textfelds verwendet.
align right textField.htmlText = "<p align='right'>Dieser Text wird an der rechten Seite des Textfelds ausgerichtet.</p>";

Im folgenden Beispiel wird mit dem Attribut class einem <p>-Tag eine Textstilklasse zugewiesen.
var meinStyleSheet = new TextField.StyleSheet(); meinStyleSheet.secreateTextField("test", 10, 0,0, 300,100); createTextField("test", 10, 0,0, 300,100); test.styleSheet = meinStyleSheet; test.htmlText = "<p class='body'>Dies ist ein stilisierter Textkrper.</ p>.";

Bereichs-Tag (<span>) Das Tag <span> ist nur im Einsatz mit CSS-Textstilen verfgbar. Weitere Informationen hierzu finden Sie unter Text mit Cascading Style Sheets formatieren auf Seite 154. Das folgende Attribut wird dabei untersttzt:

class Legt eine von einem TextField.StyleSheet-Objekt definierte CSS-Stilklasse fest. Weitere Informationen zum Erstellen von Textstilklassen finden Sie unter Stilklassen verwenden auf Seite 158.

Textformat-Tag (<textformat>) Mit dem Tag <textformat> knnen Sie einige Eigenschaften der TextFormat-Klasse zur Absatzformatierung in HTML-Textfeldern nutzen. Dazu zhlen Zeilenabstand, Einrcken, Rnder und Tabstopps. Sie knnen das Tag<textformat> mit den integrierten HTML-Tags kombinieren. Das Tag <textformat> verfgt ber die folgenden Attribute:

blockindent Legt die Blockeinrckung in Punkten fest; entspricht TextFormat.blockIndent. (Weitere Informationen finden Sie unter

TextFormat.blockIndent auf Seite 736.) indent Legt die Einrckung vom linken Rand bis zum ersten Zeichen in einem Absatz fest; entspricht TextFormat.indent. (Weitere Informationen finden Sie unter TextFormat.indent auf Seite 739.) leading Legt den Zeilenabstand (vertikal) im Absatz fest; entspricht TextFormat.leading. (Weitere Informationen finden Sie unter TextFormat.leading auf Seite 740.) leftmargin Legt den linken Rand im Absatz in Punkten fest; entspricht TextFormat.leftMargin. (Weitere Informationen finden Sie unter TextFormat.leftMargin auf Seite 740.)

HTML-formatierten Text verwenden

167

rightmargin Legt den rechten Rand im Absatz in Punkten fest; entspricht TextFormat.rightMargin. (Weitere Informationen finden Sie unter

TextFormat.rightMargin auf Seite 741.) tabstops Legt benutzerdefinierte Tabstopps als Array aus positiven Ganzzahlen fest; entspricht TextFormat.tabStops. (Weitere Informationen finden Sie unter TextFormat.tabStops auf Seite 741.)

Im folgenden Code-Beispiel wird mit dem Attribut tabstops des Tags <textformat> eine Datentabelle mit fett gedruckten Zeilenberschriften erstellt:
Name Tim Edwin Alter 32 46 Abteilung IMD Programmierung

So erstellen Sie eine formatierte Datentabelle mit Tabstopps:

1 Mit Hilfe des Textwerkzeugs legen Sie ein dynamisches Textfeld an, das ungefhr 300 Pixel

breit und 100 Pixel hoch ist.


2 Geben Sie im Eigenschafteninspektor in das Textfeld Instanzname den Wert table_txt ein,

whlen Sie im Men Zeilentyp die Option Mehrzeilig, und whlen Sie dann Text als HTML wiedergeben. 3 Whlen Sie in der Zeitleiste das erste Bild auf Ebene 1. 4 ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen), und geben Sie im Bedienfeld Aktionen den folgenden Code ein:
var rowHeaders = "<b>Name\t</b><b>Alter\t</b><b>Abteilung"; var row_1 = "Tim\t31\tIMD"; var row_2 = "Edwin\t42\tQA"; table_txt.htmlText = "<textformat tabstops='[100, 200]'>"; table_txt.htmlText += rowHeaders; table_txt.htmlText += row_1; table_txt.htmlText += row_2 ; table_txt.htmlText += "</textformat>";

Beachten Sie, wie die Escape-Sequenz fr den Tabulator eingesetzt wird (\t), um Tabs zwischen den einzelnen Spalten in der Tabelle hinzuzufgen. 5 Whlen Sie Steuerung > Film testen, um den Film zu testen. Unterstreichungs-Tag (<u>) Mit dem Tag <u> wird der markierte Text unterstrichen.
Dieser Text ist <u>unterstrichen</u>.

Das hier genannte Beispiel wrde wie folgt angezeigt: Dieser Text ist unterstrichen.

168

Kapitel 8: Mit Text arbeiten

Bilder, SWF-Dateien und Movieclips in Textfeldern einbetten In Flash Player 7 und hher knnen Sie mit dem Tag <img> JPEGs, SWF-Dateien und Movieclips in dynamischen und Eingabetextfeldern einbetten. (Eine vollstndige Liste mit den Attributen des Tags <img> finden Sie unter Bild-Tag (<img>) auf Seite 165.) Standardmig werden Medieninhalte, die in Textfelder eingebettet sind, von Flash in voller Gre angezeigt. Zum Festlegen der Dimensionen fr eingebettete Medien verwenden Sie die Attribute height und width des <img>-Tags. (Weitere Informationen finden Sie unter Werte fr Hhe und Breite festlegen auf Seite 169.) Im Allgemeinen wird ein in ein Textfeld eingebettetes Bild auf der Zeile nach dem Tag <img> angezeigt. Ist jedoch das <img>-Tag das erste Zeichen im Textfeld, erscheint das Bild dort auf der ersten Zeile. SWF- und JPEG-Dateien einbetten Zum Einbetten von JPEG- oder SWF-Dateien in Textfeldern legen Sie den absoluten oder relativen Pfad der entsprechenden Dateien im Attribut src des Tags <img> fest. Im folgenden Code-Beispiel wird eine JPEG-Datei eingefgt, die sich im selben Ordner wie die SWF-Datei befindet.
textField_txt.htmlText = "<p>Hier ist ein Bild aus meinem letzten Urlaub:<img src='strand.jpg'>";

Movieclip-Symbole einfgen Zum Einbetten von Movieclip-Symbolen in Textfelder legen Sie den Verknpfungsbezeichner des src-Attributs fr das Tag <img> fest. (Weitere Informationen zum Definieren von Verknpfungsbezeichnern finden Sie unter Movieclip-Symbol der Bhne zuweisen auf Seite 139.) Im folgenden Code-Beispiel wird ein Movieclip-Symbol mit dem Verknpfungsbezeichner symbol_ID eingefgt.
textField_txt.htmlText = "<p>Es folgt ein Movieclip-Symbol:<img src='symbol_ID'>";

Damit eingebettete Movieclips vollstndig und ordnungsgem abgespielt werden, sollte der Registrierungspunkt fr das Symbol immer an (0,0) liegen. Werte fr Hhe und Breite festlegen Wenn Sie die Attribute width und height eines <img>-Tags festlegen, wird fr das Textfeld fr die JPEG- oder SWF-Datei bzw. den Movieclip ein Bereich reserviert. Nach dem vollstndigen Herunterladen einer JPEG- oder SWF-Datei wird diese im reservierten Bereich abgespielt. Die Medien werden von Flash anhand der Werte height und width skaliert. Legen Sie fr height und width keine Werte fest, wird auch kein Platz fr die eingebetteten Medien reserviert. Nach dem vollstndigen Herunterladen einer JPEG- oder SWF-Datei wird diese von Flash in voller Gre im Textfeld eingefgt. Der Text fliet dabei um das Objekt herum.

HTML-formatierten Text verwenden

169

Eingebettete Medien mit ActionScript steuern Flash Player erstellt fr jedes <img>-Tag einen neuen Movieclip und bettet diesen in das TextField-Objekt ein. Das Attribut id des <img>-Tags ermglicht es Ihnen, dem erstellten Movieclip einen Instanznamen zuzuweisen. So knnen Sie diesen Clip mit ActionScript steuern. Der von Flash Player erstellte Movieclip wird dem Textfeld mit dem Bild als untergeordneter Movieclip hinzugefgt. Im folgenden Beispielcode wird eine SWF-Datei namens animation.swf in einem Textfeld mit der Bezeichnung textField_txt auf der Stufe 0 eingebettet und der Instanzname animation_mc dem Movieclip mit der SWF-Datei zugewiesen.
_level0.textField_txt.htmlText = "Es folgt eine interessante Animation: <img src='animation.swf' id='animation_mc'>

In diesem Fall lautet der vollstndig qualifizierte Pfad zu dem neu erstellten Movieclip _level0.textField_txt.animation_mc. Sie knnten beispielsweise den folgenden Code einer Schaltflche auf derselben Zeitleiste wie textField_txt zuweisen, die den Abspielkopf der eingebetteten SWF-Datei stoppen wrde.
on(press){ textField_txt.animation_mc.stop(); }

Hyperlinks aus eingebetteten Medien erstellen Sie erstellen einen Hyperlink aus einer eingebetteten JPEG- oder SWF-Datei bzw. aus einem Movieclip, indem Sie das <img>-Tag in einem <a>-Tag einschlieen:
textField.htmlText = "Klicken Sie auf das Bild, um zur Startseite zurckzukehren.<a href='home.htm'><img src='home.jpg'></a>";

Befindet sich der Mauszeiger auf einem Bild, einer SWF-Datei oder einem Movieclip, der von <a>-Tags eingeschlossen ist, wird er wie bei standardmigen Hyperlinks als Hand-Symbol angezeigt. Beachten Sie, dass interaktive Funktionen wie Mausklicks und Tastenaktionen nicht in SWF-Dateien und Movieclips erfasst werden, die von <a>-Tags eingeschlossen sind.

Scrollenden Text erstellen


Flash bietet mehrere Mglichkeiten, scrollenden Text zu erstellen. Sie knnen dynamische und Eingabetextfelder fr scrollenden Text einrichten, indem Sie im Men Text bzw. im Kontextmen die Option Rollbar whlen oder bei gedrckter Umschalttaste auf den Griff des Textblocks doppelklicken. Auerdem lsst sich der vertikale Bildlauf eines Textblocks mit Hilfe der Eigenschaften scroll und maxscroll und der horizontale Bildlauf mit Hilfe der Eigenschaften hscroll und maxhscroll des TextField-Objekts steuern. Die Eigenschaften scroll und hscroll legen jeweils die aktuellen vertikalen und horizontalen Scrollpositionen fest. Diese Eigenschaften knnen sowohl gelesen als auch geschrieben werden. Die Eigenschaften maxscroll und maxhscroll legen jeweils die maximalen vertikalen und horizontalen Scrollpositionen fest. Diese Eigenschaften knnen nur gelesen werden. Mit der TextArea-Komponente in Flash MX 2004 lassen sich ganz einfach scrollende Textfenster mit minimalem Skriptaufwand erstellen. Weitere Informationen finden Sie im Eintrag fr die TextArea-Komponente in Komponenten verwenden.

170

Kapitel 8: Mit Text arbeiten

So erstellen Sie einen scrollbaren dynamischen Textblock:

Halten Sie die Umschalttaste gedrckt, und doppelklicken Sie auf den Griff eines dynamischen
Textblocks. Klicken Sie mit dem Pfeilwerkzeug auf einen dynamischen Textblock, und whlen Sie Text > Rollbar. Whlen Sie mit dem Pfeilwerkzeug einen dynamischen Textblock aus, Klicken Sie mit der rechten Maustaste (Windows) bzw. bei gedrckter Taste <Ctrl> (Macintosh) auf den dynamischen Textblock, und whlen Sie Text > Rollbar.

So erstellen Sie scrollbaren Text mit Hilfe der scroll-Eigenschaft:

1 Fhren Sie einen der folgenden Schritte aus:

Ziehen Sie auf der Bhne mit dem Textwerkzeug ein Textfeld auf, Weisen Sie dem Textfeld im Eigenschafteninspektor den Instanznamen textField zu. Erstellen Sie mit Hilfe der ActionScript-Methode MovieClip.createTextField() auf dynamische Weise ein Textfeld, und weisen Sie diesem den Instanznamen textField als Parameter der Methode zu. 2 Erstellen Sie eine Aufwrts- und Abwrts-Schaltflche, oder whlen Sie Fenster > Andere Bedienfelder > Allgemeine Bibliotheken > Schaltflchen, und ziehen Sie die entsprechenden Schaltflchen auf die Bhne. Diese Schaltflchen sollen nun als Bildlaufschaltflchen eingerichtet werden. 3 Whlen Sie auf der Bhne die Abwrts-Schaltflche aus. 4 Geben Sie im Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen) den folgenden Code ein, um den Inhalt des Textfelds nach unten zu scrollen:

on(press){ textField.scroll += 1; }

5 Whlen Sie auf der Bhne die Aufwrts-Schaltflche aus. 6 Geben Sie im Bedienfeld Aktionen den folgenden Code ein, um den Text nach oben zu

scrollen:
on(press){ textField.scroll += 1; }

Scrollenden Text erstellen

171

172

Kapitel 8: Mit Text arbeiten

KAPITEL 9 Klassen mit ActionScript 2.0 erstellen

ActionScript 2.0 ist eine Erweiterung der Sprache ActionScript, die mehrere neue leistungsfhige Programmierfunktionen beinhaltet, die auch bei anderen Programmiersprachen wie z. B. Java blich sind. ActionScript 2.0 untersttzt Programmstrukturen, die wiederverwendbar, skalierbar, stabil und verwaltbar sind. Auerdem werden mit ActionScript die Entwicklungszeiten verkrzt, da Benutzern Codierungshilfen und Debugging-Informationen zur Verfgung gestellt werden. ActionScript 2.0 entspricht den gngigen Standards und basiert auf den ECMAScript 4-Kriterien (www.mozilla.org/js/language/es4/). ActionScript 2.0 ist in Macromedia Flash MX 2004 und Macromedia Flash MX Professional 2004 erhltlich. Die Funktionen von ActionScript 2.0 werden im Folgenden beschrieben.
Bekanntes OOP-Modell

Das Hauptmerkmal von ActionScript 2.0 ist ein bekanntes Modell zum Erstellen objektorientierter Programme. Mit ActionScript 2.0 werden mehrere neue objektorientierte Konzepte und Schlsselwrter eingefhrt, wie z. B. Klasse, Schnittstelle und Pakete, die Ihnen sicherlich bekannt sind, wenn Sie bereits mit Java programmiert haben. Das OOP-Modell von ActionScript 2.0 ist eine syntaktische Formalisierung der Prototypketten-Methode, die in frheren Versionen von Macromedia Flash verwendet wurde, um Objekte zu erstellen und Vererbung zu etablieren.

Strikte Datentypisierung Mit ActionScript 2.0 knnen Sie Datentypen fr Variablen, Funktionsparameter und Funktionsrckgabetypen explizit festlegen. Der folgende Code legt beispielsweise die Variable mit dem Namen userName vom Typ String fest (integrierter ActionScript-Datentyp bzw. Klasse). var userName:String = ""; Compiler Warn- und Fehlermeldungen

Dank der beiden oben genannten Funktionen knnen vom Authoring-Tool und vom Compiler Warn- und Fehlermeldungen ausgegeben werden, mit denen Sie Fehler in Ihrer Anwendung schneller finden knnen.

Vorsicht: Wenn Sie ActionScript 2.0-Syntax verwenden mchten, mssen Sie in den Verffentlichungseinstellungen fr die FLA-Datei ActionScript 2.0 festlegen. Dies ist die Standardeinstellung fr in Flash MX 2004 erstellte Dateien. Wenn Sie jedoch eine ltere FLA-Datei ffnen, fr die ActionScript 1 verwendet wird, und Sie mchten sie in ActionScript 2.0 neu schreiben, mssen Sie in den Verffentlichungseinstellungen der FLA-Datei ActionScript 2.0 festlegen. Andernfalls kann Ihre FLA-Datei nicht korrekt kompiliert werden, aber es werden keine Fehler generiert.

173

Prinzipien der objektorientierten Programmierung


In diesem Abschnitt werden die Prinzipien kurz vorgestellt, die bei der Entwicklung objektorientierter Programme eine Rolle spielen. Diese Prinzipien werden im Rest dieses Kapitels ausfhrlicher beschrieben. Auerdem erfahren Sie in diesem Kapitel, wie sie in Macromedia Flash MX 2004 und Macromedia Flash MX Professional 2004 implementiert werden. Objekte Stellen Sie sich ein Objekt aus der wirklichen Welt vor - zum Beispiel eine Katze. Eine Katze kann Eigenschaften (oder Zustnde) haben. Das sind beispielsweise ihr Name, ihr Alter und ihre Farbe. Eine Katze kann auch bestimmte Verhaltensweisen aufweisen, z. B. Schlafen, Fressen und Schnurren. In der Welt der objektorientierten Programmierung haben Objekte ebenfalls Eigenschaften und Verhaltensweisen. Mit objektorientierten Techniken knnen Sie ein Objekt aus der wirklichen Welt (wie eine Katze) oder ein abstrakteres Objekt (wie einen chemischen Prozess) modellieren. Klassen und Klassenmitglieder Fhrt man die Analogie zur wirklichen Welt einmal fort, so muss bercksichtigt werden, dass es Katzen unterschiedlicher Farbe, unterschiedlichen Alters und mit verschiedenen Namen gibt. Hinzu kommt, dass sie unterschiedlich fressen und schnurren. Alle Katzen gehren jedoch zu einer bestimmten Klasse von Objekt, dem Objekt vom Typ Katze. Jede einzelne (echte) Katze ist eine Instanz vom Klassentyp Katze. In der objektorientierten Programmierung verhlt es sich hnlich: Eine Klasse definiert einen Entwurf fr einen Typ von Objekt. Die Merkmale und Verhaltensweisen, die zu einer Klasse gehren, werden als Mitglieder dieser Klasse bezeichnet. Die Merkmale (im Katzen-Beispiel Name, Alter und Farbe) werden Eigenschaften der Klasse genannt. Sie werden als Variablen dargestellt. Die Verhaltensweisen (Essen, Schlafen) werden als Methoden der Klasse bezeichnet und als Funktionen dargestellt. Sie knnen beispielsweise die Klasse Person und dann eine spezielle Person erstellen, die eine Instanz dieser Klasse ist und auch als Person-Objekt bezeichnet wird. Die Person-Instanz wrde alle Eigenschaften und Methoden der Person-Klasse enthalten. In ActionScript definieren Sie Klassen mit der Anweisung class (siehe Klassen erstellen und verwenden auf Seite 180). ActionScript umfasst eine Reihe integrierter Klassen, wie z. B. die MovieClip-, TextField- und String-Klassen. Weitere Informationen finden Sie in Kapitel 6, Integrierte Klassen verwenden, auf Seite 125. Vererbung Einer der Hauptvorteile der objektorientierten Programmierung ist, dass Sie Unterklassen einer Klasse erstellen knnen. Die Unterklasse erbt dann alle Eigenschaften und Methoden der bergeordneten Klasse. Die Unterklasse definiert in der Regel zustzliche Methoden und Eigenschaften, erweitert also die bergeordnete Klasse. Unterklassen knnen auch die von einer bergeordneten Klasse geerbten Methoden berschreiben (d. h., sie durch ihre eigenen Definitionen ersetzen).

174

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

Angenommen, Sie erstellen die Klasse Sugetiere, die bestimmte Eigenschaften und Verhaltensweisen definiert, die allen Sugetieren gemeinsam sind. Sie knnten dann die Klasse Katze erstellen, die die Sugetier-Klasse erweitert. Auf diese Weise kann Code durch Vererbung wiederverwendet werden: Anstatt den gesamten Code, der beiden Klassen gemeinsam ist, neu zu erstellen, knnen Sie einfach eine vorhandene Klasse erweitern. Eine andere Unterklasse knnte wiederum die Katzen-Klasse erweitern usw. In einer komplexen Anwendung besteht ein groer Teil des Designprozesses darin, zu bestimmen, wie die Hierarchie der Klassen strukturiert werden soll. In ActionScript etablieren Sie Vererbung zwischen einer Klasse und ihrer bergeordneten Klasse mit dem Schlsselwort extends. Weitere Informationen finden Sie unter Unterklassen erstellen auf Seite 182. Schnittstellen In der objektorientierten Programmierung knnen Schnittstellen als Klassen beschrieben werden, deren Methoden nicht implementiert (definiert) sind. Eine andere Klasse kann die von der Schnittstelle erklrten Methoden implementieren. Eine Schnittstelle kann auch als eine Art Programmiervertrag angesehen werden, mit dem Beziehungen zwischen sonst nicht verwandten Klassen erzwungen werden. Angenommen, Sie arbeiten mit einem Programmierer-Team, bei dem jeder einzelne Programmierer an einem anderen Teil (Klasse) derselben Anwendung arbeitet. Whrend des Anwendungsdesigns legen Sie eine Reihe von Methoden fest, mit deren Hilfe die verschiedenen Klassen kommunizieren. Sie erstellen also eine Schnittstelle, die diese Methoden, ihre Parameter und ihre Rckgabetypen deklariert. Jede Klasse, die diese Schnittstelle implementiert, muss fr diese Methoden Definitionen bereitstellen; andernfalls kommt es zu einem Compiler-Fehler. Sie knnen ber Schnittstellen auch eine begrenzte Form von Mehrfachbernahme festlegen, die in ActionScript 2.0 nicht zugelassen ist. Bei der Mehrfachbernahme erweitert eine Klasse mehrere Klassen. In C++ knnte die Katzen-Klasse die Sugetier-Klasse und die Klasse Verspielt erweitern, welche die Methoden JageSchwanz und EsseKatzenfutter deklariert. Wie in Java ist es auch in ActionScript 2.0 nicht zulssig, dass eine Klasse mehrere Klassen direkt erweitert. Sie knnten jedoch die Schnittstelle Verspielt erstellen, die die JageSchwanz- und EsseKatzenfutterMethoden deklariert. Die Katzen-Klasse oder jede andere Klasse knnte dann diese Schnittstelle implementieren und fr diese Methoden Definitionen bereitstellen. Weitere Informationen finden Sie unter Schnittstellen erstellen auf Seite 187.

Klassen verwenden: ein einfaches Beispiel


Wenn die objektorientierte Programmierung fr Sie noch Neuland ist, knnen Sie sich in diesem Abschnitt einen berblick ber den Arbeitsablauf verschaffen, mit dem Sie in Flash Klassen erstellen und verwenden knnen. Zu diesem Arbeitslauf gehren mindestens die folgenden Schritte:
1 Eine Klasse in einer externen ActionScript-Klassendatei definieren. 2 Die Klassendatei in einem bestimmten Classpath-Ordner (einer Position, an der Flash nach

Klassen sucht) speichern.


3 Eine Instanz der Klasse in einem anderen Skript erstellen, entweder in einem Flash (FLA)-

Dokument oder in einer externen Script-Datei oder eine Unterklasse auf der Grundlage der ursprnglichen Klasse erstellen.

Klassen verwenden: ein einfaches Beispiel

175

In diesem Abschnitt wird auch eine neue Funktion in ActionScript 2.0 behandelt: die so genannte strikte Typisierung, mit der Sie fr Variablen, Funktionsparameter oder Funktionsrckgabetypen den Datentyp festlegen knnen. In diesem Abschnitt werden zwar nur Klassen besprochen, der allgemeine Arbeitsablauf ist jedoch bei der Verwendung von Schnittstellen derselbe. Weitere Informationen finden Sie unter Schnittstellen erstellen und verwenden auf Seite 187. Klassendateien erstellen Um eine Klasse erstellen zu knnen, mssen Sie zunchst eine externe ActionScript (AS)-Datei erstellen. Klassen (und Schnittstellen) knnen nur in externen Script-Dateien definiert werden. Sie knnen z. B. nicht eine Klasse in einem Skript definieren, das mit einem Bild oder einer Schaltflche in einem Flash-Dokument (FLA) verknpft ist. Verwenden Sie den in Flash enthaltenen ActionScript-Editor oder einen anderen Code- oder Texteditor, um eine externe ASDatei zu erstellen.
Hinweis: Der ActionScript-Code in externen Dateien wird beim Verffentlichen, Exportieren, Testen oder Debuggen von FLA-Dateien in eine SWF-Datei kompiliert. Sollten Sie also nderungen an externen Dateien vornehmen, mssen Sie diese speichern und alle FLA-Dateien, die darauf zurckgreifen, neu kompilieren.

In den Schritten unten werden Sie die Person-Klasse mit zwei Eigenschaften (age und name) und einer einzigen Methode (showInfo()) erstellen, die die Werte dieser Eigenschaften im Bedienfeld Ausgabe anzeigt.
So erstellen Sie die Klassendatei:

1 Erstellen Sie auf Ihrer Festplatte einen neuen Ordner mit dem Namen Personendateien. In

diesem Ordner werden alle Dateien dieses Projekts gespeichert. 2 Fhren Sie einen der folgenden Schritte aus: Erstellen Sie in einem Text- oder Code-Editor eine neue Datei. (Nur Flash MX Professional) Whlen Sie Datei > Neu, um das Dialogfeld Neues Dokument zu ffnen. Whlen Sie dann aus der Liste der Dateitypen ActionScript-Datei aus, und klicken Sie auf OK. Das Skriptfenster wird mit einer leeren Datei geffnet. 3 Speichern Sie die Datei im Ordner Personendateien unter Person.as. 4 Geben Sie im Skriptfenster den folgenden Code ein:
class Person { }

Dies wird als Klassendeklaration bezeichnet. Klassendeklarationen bestehen im Wesentlichen aus dem Schlsselwort class, auf das der Klassenname (in diesem Fall Person) und dann die linke und rechte geschweifte Klammer ({}) folgen. Der Teil zwischen den Klammern wird als Klassenkrper bezeichnet. Dort sind die Eigenschaften und Methoden der Klasse definiert.
Hinweis: Der Name der Klasse (Person) entspricht dem Namen der AS-Datei, die die Klasse enthlt (Person.as). Dies ist sehr wichtig, denn wenn diese beiden Namen nicht bereinstimmen, wird die Klasse nicht kompiliert.

176

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

5 Um die Eigenschaften fr die Person-Klasse zu erstellen, knnen Sie wie unten dargestellt mit

dem Schlsselwort var zwei Variablen mit den Namen age und name definieren.
class Person { var age:Number; var name:String; } Tipp: blicherweise werden Klasseneigenschaften zu Beginn des Klassenkrpers definiert. Dies ist zwar nicht erforderlich, erleichtert aber das Verstndnis des Codes.

Beachten Sie die Doppelpunktsyntax (var age:Number und var name:String) in den Variablendeklarationen. Dies ist ein Beispiel fr eine strikte Typisierung. Wenn Sie auf diese Weise eine Variable eingeben (var variablenname:variablentyp), stellt der ActionScript 2.0-Compiler sicher, dass die dieser Variablen zugewiesenen Werte dem festgelegten Typ entsprechen. Diese Syntax ist zwar nicht erforderlich, ist aber empfehlenswert, da sie die Fehlersuche erleichtert. Weitere Informationen hierzu finden Sie unter Strikte Typisierung auf Seite 42. 6 Als Nchstes erstellen Sie die showInfo()-Methode, die einen vorformatierten String mit den Werten der Eigenschaften age und name zurckgibt. Fgen Sie dem Klassenkrper wie unten angegeben die Funktionsdefinition showInfo() hinzu.
class Person { var age:Number; var name:String; // Methode, die Eigenschaftswerte zurckgibt function showInfo():String { return("Hallo, ich heie " + name + ", und ich bin " + age + " Jahre alt."); } }

Beachten Sie die (zwar optionale, aber empfehlenswerte) Typisierung in der Funktionsdefinition.
function showInfo():String {...}

In diesem Fall wird der Datentyp fr den Rckgabewert der Funktion showInfo() festgelegt (ein String).

Klassen verwenden: ein einfaches Beispiel

177

7 Die letzte Codezeile, die Sie in diesem Abschnitt hinzufgen, ist eine besondere Funktion, die

Konstruktorfunktion. In der objektorientierten Programmierung initialisiert die Konstruktorfunktion jede neue Instanz einer Klasse. Die Konstruktorfunktion hat immer denselben Namen wie die Klasse. Fgen Sie folgenden Code hinzu, um die Konstruktorfunktion der Klasse zu erstellen:
class Person { var age:Number; var name:String; // Methode, die Eigenschaftswerte zurckgibt function showInfo():String { return("Hallo, ich heie " + name + ", und ich bin " + age + " Jahre alt."); } // Konstruktorfunktion function Person (meinName:String, meinAge:Number) { name = meinName; age = meinAge; } }

Die Konstruktorfunktion Person() erwartet zwei Parameter, meinName und meinAge, und weist den Eigenschaften name und age diese Parameter zu. Der Typ der beiden Funktionsparameter wird als String bzw. Number genau festgelegt. Weitere Informationen zu Konstruktorfunktionen finden Sie unter Konstruktorfunktionen auf Seite 183.
Hinweis: Wenn Sie keine Konstruktorfunktion erstellen, wird whrend der Kompilierung automatisch eine leere Funktion angelegt.

8 Speichern Sie die Datei in dem Ordner Personendateien, den Sie in Schritt 1 erstellt haben,

unter Person.as. Wenn Sie Flash MX 2004 (nicht Flash Professional) verwenden, knnen Sie mit dem nchsten Abschnitt fortfahren. 9 (nur Flash Professional) berprfen Sie die Syntax der Klassendatei, indem Sie Werkzeuge > Syntax berprfen whlen oder <Strg>+<T> (Windows) bzw. <Befehl>+<T> (Macintosh) drcken. Wenn im Bedienfeld Ausgabe Fehler gemeldet werden, vergleichen Sie den Code in Ihrem Skript mit dem endgltigen Code in Schritt 7 oben. Wenn Sie die Codefehler nicht beheben knnen, kopieren Sie den fertig gestellten Code aus dem Bedienfeld Hilfe aus Schritt 7.

178

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

Instanzen der Person-Klasse erstellen Im nchsten Schritt geht es darum, in einem anderen Skript, wie z. B. einem Bildskript in einem Flash (FLA)-Dokument oder einem anderen AS-Skript, eine Instanz der Person-Klasse zu erstellen und sie einer Variablen zuzuweisen. Um eine Instanz einer benutzerdefinierten Klasse zu erstellen, verwenden Sie den Operator new so, wie Sie es tun wrden, um eine Instanz einer integrierten ActionScript-Klasse (z. B. die XML- oder TextField-Klasse) zu erstellen. Mit dem folgenden Code wird beispielsweise eine Instanz der Person-Klasse erstellt und der Variablen newPerson zugewiesen.
var newPerson:Person = new Person("Nils", 32);

Dieser Code ruft die Konstruktorfunktion der Person-Klasse auf, die die Werte "Nils" und 32 als Parameter bergibt. Die Variable newPerson wird als Person-Objekt eingegeben. Wenn Sie Ihre Objekte auf diese Weise eingeben, wei der Compiler, dass Sie nicht versuchen, auf Eigenschaften oder Methoden zuzugreifen, die nicht in der Klasse definiert sind. Eine Ausnahme liegt vor, wenn Sie die Klasse ber das Schlsselwort dynamic als dynamisch deklarieren. Weitere Informationen finden Sie unter Dynamische Klassen erstellen auf Seite 194.)
So erstellen Sie in einem Flash-Dokument eine Instanz der Person-Klasse:

1 Whlen Sie in Flash Datei > Neu, whlen Sie dann aus der Liste der Dokumenttypen Flash-

Dokument, und klicken Sie auf OK. 2 Speichern Sie die Datei in dem Ordner Personendateien, den Sie zuvor erstellt haben, unter createPerson.as. 3 Whlen Sie in der Zeitleiste Ebene 1, und ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen). 4 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:
var person_1:Person = new Person("Nils", 32); var person_2:Person = new Person("Jana", 28); trace(person_1.showInfo()); trace(person_2.showInfo());

Der Code oben erstellt zwei Instanzen der Person-Klasse, person_1 und person_2, und ruft dann die showInfo()-Methode jeder Instanz auf. 5 Speichern Sie Ihre Arbeit, und whlen Sie dann Steuerung > Film testen. Im Bedienfeld Ausgabe sollten Sie Folgendes sehen:
Hallo, ich heie Nils, und ich bin 32 Jahre alt. Hallo, ich heie Jana, und ich bin 28 Jahre alt.

Wenn Sie eine Instanz einer Klasse erstellen, indem Sie ihre Konstruktorfunktion aufrufen, sucht Flash in zuvor festgelegten Ordnerpositionen nach einer AS-Datei, die denselben Namen wie der Konstruktor trgt. Diese Gruppe von Ordnerpositionen wird zusammen als Classpath bezeichnet (siehe Mit Classpath arbeiten auf Seite 189). Sie sollten jetzt eine Vorstellung davon haben, wie Klassen erstellt und in Flash-Dokumenten verwendet werden knnen. Im restlichen Teil dieses Kapitels werden Klassen und Schnittstellen ausfhrlicher behandelt.

Klassen verwenden: ein einfaches Beispiel

179

Klassen erstellen und verwenden


Weiter oben haben Sie bereits erfahren, dass Klassen aus zwei Teilen bestehen: der Deklaration und dem Krper. Klassendeklarationen bestehen aus der Anweisung class, auf die ein Bezeichner fr den Klassennamen und schlielich eine ffnende und eine schlieende geschweifte Klammer folgen. Der Klassenkrper ist der Teil zwischen den Klammern.
class className { // Klassenkrper }

Klassen knnen Sie nur in ActionScript (AS)-Dateien definieren. In einem Bildskript einer FLADatei ist dies z. B. nicht mglich. Auerdem muss der festgelegte Name der Klasse mit dem Namen der AS-Datei bereinstimmen, in der die Klasse enthalten ist. Wenn Sie z. B. ein Klasse namens Shape erstellen, muss die AS-Datei, die diese Klasse enthlt, den Namen Shape.as haben.
// In Datei Shape.as class Shape { // Klassenkrper festlegen }

Alle erstellen AS-Klassendateien mssen in einem der angegebenen Classpath-Ordner gespeichert werden, d. h., in einem der Ordner, in denen Flash beim Kompilieren von Skripts nach Klassendefinitionen sucht. (Weitere Informationen finden Sie unter Mit Classpath arbeiten auf Seite 189.) Klassennamen mssen Bezeichner sein; das erste Zeichen ist also ein Buchstabe, ein Unterstrich (_) oder ein Dollarzeichen ($), und jedes folgende Zeichen ist ein Buchstabe, eine Zahl, ein Unterstrich oder ein Dollarzeichen. Auerdem muss der Klassenname in der Datei, in der er deklariert ist, den Namen des Ordners enthalten, in dem er gespeichert ist. Um beispielsweise die Klasse ErforderlicheKlasse zu erstellen, die im Ordner meineKlassen/education/curriculum gespeichert ist, mssen Sie die Klasse in der Datei ErforderlicheKlasse.as folgendermaen deklarieren:
class meineClasses.education.curriculum.ErforderlicheKlasse { }

Vor dem Erstellen von Klassen sollte immer die Ordnerstruktur geplant werden. Wenn Sie Klassendateien erst nach dem Erstellen verschieben, mssen sie ansonsten die Klassendeklarationsanweisungen entsprechend ihrer neuen Position ndern. Eigenschaften und Methoden erstellen Die Mitglieder einer Klasse bestehen aus Eigenschaften (Variablendeklarationen) und Methoden (Funktionsdeklarationen). Sie mssen alle Eigenschaften und Methoden im Klassenkrper (zwischen den geschweiften Klammern) deklarieren, andernfalls treten bei der Kompilierung Fehler auf. Jede Variable, die innerhalb einer Klasse, jedoch auerhalb einer Funktion deklariert wird, ist eine Eigenschaft der Klasse. Die weiter oben besprochene Person-Klasse hat zwei Eigenschaften, age und name, vom Typ Number bzw. String.
class Person { var age:Number; var name:String; }

180

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

Eine in einer Klasse deklarierte Funktion wird als Methode der Klasse betrachtet. Im Beispiel mit der Person-Klasse haben Sie eine Methode mit dem Namen showInfo() erstellt.
class Person { var age:Number; var name:String; function showInfo() { // Definition der Methode showInfo() } }

Eigenschaften inline initialisieren Sie knnen Eigenschaften inline - d. h. bei der Deklaration - mit Standardwerten initialisieren:
class Person { var age:Number = 50; var name:String = "Peter Muster"; }

Wenn Sie Eigenschaften inline initialisieren, muss der Ausdruck auf der rechten Seite der Zuweisung eine Konstante zur Kompilierungszeit sein. Das heit, der Ausdruck kann nicht auf Elemente verweisen, die erst zur Laufzeit festgelegt oder definiert werden. Zu den Konstanten zur Kompilierungszeit gehren Zeichenfolgenliterale, null und undefined sowie Konstruktorfunktionen fr die folgenden integrierten Klassen: Array, Boolean, Number, Object und String. Die folgende Klassendefinition initialisiert beispielsweise mehrere Eigenschaften inline:
class var var var var var CompileTimeTest { foo:String = "mein foo"; // OK bar:Number = 5; // OK bool:Boolean = true; // OK name:String = new String("Jana"); // OK who:String = foo; // OK, weil foo eine Konstante ist

var whee:String = meineFunc(); // Fehler! Ausdruck ist keine Konstante zur Kompilierungszeit var lala:Number = whee; // Fehler! Ausdruck ist keine Konstante zur Kompilierungszeit var star:Number = bar + 25; // OK, 'bar' und '25' sind Konstanten function meineFunc() { return "Hallo Welt"; } }

Diese Regel gilt nur fr Instanzvariablen (Variablen, die in jede Instanz einer Klasse kopiert werden), nicht fr Klassenvariablen (Variablen, die zur Klasse selbst gehren). Weitere Informationen zu diesen Arten von Variablen finden Sie unter Instanz- und Klassenmitglieder auf Seite 184.

Klassen erstellen und verwenden

181

Unterklassen erstellen In der objektorientierten Programmierung knnen Unterklassen die Eigenschaften und Methoden einer anderen Klasse, der bergeordneten Klasse, erben. Sie knnen diese Art von Beziehung zwischen zwei Klassen mit der extends-Klausel der class-Anweisung herstellen. Zum Spezifizieren einer bergeordneten Klasse verwenden Sie die folgende Syntax:
class SubClass extends SuperClass {}

Die Klasse, die Sie in SubClass (Unterklasse) festlegen, erbt alle von der bergeordneten Klasse definierten Eigenschaften und Methoden. Angenommen, Sie erstellen die Sugetiere-Klasse, die Eigenschaften und Methoden definiert, die allen Sugetieren gemeinsam sind. Um eine Variante der Sugetiere-Klasse wie die Beuteltiere-Klasse zu erstellen, mssten Sie die Sugetiere-Klasse erweitern - d. h. eine Unterklasse der Sugetiere-Klasse erstellen.
class Beuteltiere extends Saeugetiere {}

Die Unterklasse erbt alle Eigenschaften und Methoden der bergeordneten Klasse. Dazu gehren auch alle Eigenschaften oder Methoden, die Sie mit dem Schlsselwort private als privat gekennzeichnet haben. Weitere Informationen zu private-Variablen finden Sie unter Mitgliedszugriff steuern auf Seite 183. Sie haben die Mglichkeit, Ihre eigenen benutzerdefinierten Klassen sowie jede beliebige integrierte ActionScript-Klasse, wie z. B. die XML-, Sound- oder MovieClip-Klassen zu erweitern. Wenn Sie eine integrierte ActionScript-Klasse erweitern, erbt Ihre benutzerdefinierte Klasse alle Methoden und Eigenschaften der integrierten Klasse. Der folgende Code definiert z. B. die JukeBox-Klasse, die die integrierte Sound-Klasse erweitert. Sie definiert das Array songList und die Methode playSong(), die ein Lied abspielt und die Methode loadSound() aufruft, die sie von der Sound-Klasse erbt.
class JukeBox extends Sound { var songList:Array = new Array("beethoven.mp3", "bach.mp3", "mozart.mp3"); function playSong(songID:Number) { this.loadSound(songList[songID]); } }

Wenn Sie keinen Aufruf von super() in die Konstruktorfunktion einer untergeordneten Klasse aufnehmen, generiert der Compiler automatisch einen Aufruf des Konstruktors seiner direkt bergeordneten Klasse ohne Parameter als erste Anweisung der Funktion. Wenn die bergeordnete Klasse keinen Konstruktor aufweist, erstellt der Compiler eine leere Konstruktorfunktion und generiert dann in der untergeordneten Klasse einen Aufruf dieser Funktion. Wenn in der Definition der bergeordneten Klasse jedoch Parameter enthalten sind, mssen Sie einen Konstruktor in der Unterklasse erstellen und die bergeordnete Klasse mit den erforderlichen Parametern aufrufen.

182

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

Mehrfachvererbung ist nicht erlaubt, d. h., eine Klasse kann nicht von mehreren Klassen erben. Es sind jedoch Vererbungen von mehreren Klassen mglich, wenn einzelne extendsAnweisungen verwendet werden:
// nicht zulssig class C extends A, B {} // zulssig class B extends A class C extends B {}

Sie knnen untergeordnete Klassen einer Schnittstelle auch mit dem Schlsselwort extends erstellen:
interface iA extends interface iB {}

Konstruktorfunktionen Der Konstruktor einer Klasse ist eine besondere Funktion, die automatisch aufgerufen wird, wenn Sie mit dem Operator new eine Instanz einer Klasse erstellen. Die Konstruktorfunktion hat denselben Namen wie die Klasse, in der sie enthalten ist. Zum Beispiel enthielt die Person-Klasse, die Sie zuvor erstellt hatten, die folgende Konstruktorfunktion:
// Konstruktorfunktion der Person-Klasse function Person (meinName:String, meinAge:Number) { name = meinName; age = meinAge; }

Wenn eine Konstruktorfunktion nicht ausdrcklich deklariert wird - d. h., wenn Sie keine Funktion erstellen, deren Name mit dem der Klasse bereinstimmt - erstellt der Compiler fr Sie automatisch eine leere Konstruktorfunktion. Eine Klasse kann nur eine Konstruktorfunktion enthalten; in ActionScript 2.0 sind keine berladenen Konstruktorfunktionen zulssig. Mitgliedszugriff steuern Standardmig kann jede Klasse auf jede beliebige Eigenschaft oder Methode einer anderen Klasse zugreifen: Alle Mitglieder einer Klasse sind standardmig ffentlich (public). In einigen Fllen mchten Sie jedoch mglicherweise Daten oder Methoden einer Klasse vor dem Zugriff anderer Klassen schtzen. Dann mssen Sie diese Mitglieder als privat (private) deklarieren. Diese Mitglieder stehen dann nur der Klasse zur Verfgung, in der sie deklariert oder definiert werden. Mit den Attributen public bzw. private knnen Sie festlegen, ob es sich bei den Mitgliedern um ffentliche oder private Mitglieder handeln soll. Der folgende Code deklariert beispielsweise eine private Variable (Eigenschaft) und eine private Methode (Funktion).

Klassen erstellen und verwenden

183

Im folgenden Beispiel wird durch eine Klasse (LoginClass) eine private Eigenschaft namens userName sowie eine private Methode mit der Bezeichnung getUserName() definiert.
class LoginClass { private var userName:String; private function getUserName() { return userName; } // Konstruktor: function LoginClass(user:String) { this.userName = user; } }

Private Mitglieder (Eigenschaften und Methoden) sind nur der Klasse zugnglich, welche diese Mitglieder definiert. Auch Unterklassen der ursprnglichen Klasse haben Zugriff darauf. Instanzen der ursprnglichen Klasse bzw. Instanzen von Unterklassen knnen nicht auf als privat deklarierte Eigenschaften und Methoden zugreifen. Der Zugriff auf private Mitglieder ist also nur innerhalb von Klassendefinitionen und nicht auf der Instanzstufe mglich. Sie knnten beispielsweise eine Unterklasse von LoginClass mit der Bezeichnung NewLoginClass anlegen. Diese Unterklasse hat Zugriff auf die private Eigenschaft (userName) und Methode (getUserName()), die von LoginClass definiert wurde.
class NewLoginClass extends LoginClass { // hat Zugriff auf userName und getUserName() }

Eine Instanz der LoginClass oder NewLoginClass kann jedoch nicht auf diese privaten Mitglieder zugreifen. Der folgenden Code, der in ein Bildskript einer FLA-Datei eingefgt wurde, wrde beispielsweise zu einem Compiler-Fehler fhren und eine Meldung zur Folge haben, dass getUserName() privat ist und darauf nicht zugegriffen werden kann.
var loginObject:LoginClass = new LoginClass("Maxwell"); var user = loginObject.getUserName();

Beachten Sie auch, dass die Steuerung des Mitgliedszugriffs eine Funktion ist, die nur zur Kompilierungszeit zur Verfgung steht. Zur Laufzeit unterscheidet Flash Player nicht zwischen privaten und ffentlichen Mitgliedern.

Instanz- und Klassenmitglieder


In der objektorientierten Programmierung knnen Mitglieder (Eigenschaften oder Methoden) einer Klasse entweder Instanzmitglieder oder Klassenmitglieder sein. Instanzmitglieder werden fr jede Instanz der Klasse erstellt und in sie kopiert; Klassenmitglieder werden dagegen nur einmal pro Klasse erstellt (Klassenmitglieder werden auch als statische Mitglieder bezeichnet). Um eine Instanzmethode aufzurufen oder auf eine Instanzeigenschaft zuzugreifen, mssen Sie auf eine Instanz der Klasse verweisen. Der folgende Code ruft beispielsweise die showInfo()Methode einer Instanz der MovieClip-Klasse mit dem Namen clip_mc auf:
clip_mc.showInfo();

Im Gegensatz dazu werden (statische) Klassenmitglieder nicht einer beliebigen Instanz der Klasse, sondern der Klasse selbst zugewiesen. Um eine Klassenmethode aufzurufen oder auf eine Klasseneigenschaft zuzugreifen, mssen Sie nicht auf eine bestimmte Instanz der Klasse verweisen, sondern auf den Klassennamen selbst:
ClassName.classMember;

184

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

Die Math-Klasse besteht beispielsweise nur aus statischen Methoden und Eigenschaften. Um eine ihrer Methoden aufzurufen, mssen Sie keine Instanz der Math-Klasse erstellen, sondern einfach die Methoden der Math-Klasse selbst aufrufen. Mit dem folgenden Code wird die sqrt()Methode der Math-Klasse aufgerufen:
var square_root:Number = Math.sqrt(4);

Instanzmitglieder knnen statische Mitglieder lesen, aber nicht schreiben. Instanzmitglieder sind nicht in den Schleifen for oder for..in spezifizierbar. Klassenmitglieder erstellen Mit dem Modifizierer static knnen Sie festlegen, dass eine Eigenschaft einer Klasse statisch sein soll, wie nachfolgend gezeigt.
static var variablenName;

Die Methoden einer Klassen knnen ebenfalls als statisch deklariert werden.
static function funktionsName() { // Funktionskrper }

Klassenmethoden (statische Methoden) knnen nur auf Klasseneigenschaften (statische Eigenschaften), nicht jedoch auf Instanzeigenschaften zugreifen. Der folgende Code fhrt zu einem Compiler-Fehler, da die Klassenmethode getName() auf die Instanzvariable name verweist.
class StaticTest { var name="Tim"; static function getName() { var local_name = name; // Fehler! Auf Instanzvariablen kann in statischen Funktionen nicht zugegriffen werden. } }

Um dieses Problem zu lsen, knnen Sie entweder aus der Methode eine Instanzmethode oder aus der Variablen eine Klassenvariable machen. Klassenmitglieder verwenden: ein einfaches Beispiel Klassenmitglieder (statische Mitglieder) haben u. a. die Aufgabe, Zustandsinformationen ber eine Klasse und ihre Instanzen zu verwalten. Angenommen, Sie mchten die Anzahl der Instanzen verfolgen, die von einer bestimmten Klasse erstellt wurden. Dies lsst sich problemlos mit einer Klasseneigenschaft lsen, deren Wert immer dann erhht wird, wenn eine neue Instanz erstellt wird. Im folgenden Beispiel erstellen Sie die Widget-Klasse, die einen einzelnen statischen Instanzzhler mit dem Namen widgetCount definiert. Jedes Mal, wenn eine neue Instanz erstellt wird, wird der Wert von widgetCount um 1 erhht und der aktuelle Wert von widgetCount im Bedienfeld Ausgabe angezeigt.

Instanz- und Klassenmitglieder

185

So erstellen Sie Instanzzhler mit einer Klassenvariablen:

1 Erstellen Sie eine neue ActionScript (AS)-Datei. 2 Fgen Sie der Datei den folgenden Code hinzu:
class Widget { static var widgetCount:Number = 0; // Klassenvariable initialisieren function Widget() { trace("Erstelle Widget Nr." + widgetCount); widgetCount++; } }

3 4

5 6

Die Variable widgetCount wird als statisch deklariert und daher nur einmalig auf 0 initialisiert. Jedes Mal, wenn die Konstruktorfunktion der Widget-Klasse aufgerufen wird, addiert sie 1 zu widgetCount und zeigt dann die Nummer der aktuell erstellten Instanz an. Speichern Sie die Datei unter Widget.as. Erstellen Sie ein neues Flash (FLA)-Dokument, und speichern Sie es im selben Ordner wie Widget.as unter dem Namen createWidget.fla. In dieser Datei erstellen Sie neue Instanzen der Widget-Klasse. Whlen Sie in createWidget.fla in der Zeitleiste Ebene 1, und ffnen Sie das Bedienfeld Aktionen (Fenster > Entwicklungs-Bedienfelder > Aktionen). Fgen Sie im Bedienfeld Aktionen den folgenden Code hinzu:
// Bevor Sie Instanzen der Klasse erstellen, // ist widgetCount Null (0) trace("Widget-Anzahl zu Beginn: " + Widget.widgetCount); var widget_1 = new Widget(); var widget_2 = new Widget(); var widget_3 = new Widget();

7 Speichern Sie die Datei, und testen Sie sie (Steuerung > Film testen).

Im Bedienfeld Ausgabe sollten Sie Folgendes sehen:


Widget-Anzahl zu Beginn: 0 Erstelle Widget Nr. 0 Erstelle Widget Nr. 1 Erstelle Widget Nr. 2

Klassenmitglieder und Unterklassen Klassenmitglieder werden an Unterklassen der bergeordneten Klasse weitergegeben, die diese Mitglieder definiert. Im vorherigen Beispiel (siehe Klassenmitglieder verwenden: ein einfaches Beispiel auf Seite 185) haben Sie mit einer Klasseneigenschaft die Anzahl der Instanzen der von Ihnen erstellten Klasse verfolgt. Nun knnen Sie eine Unterklasse der Widget-Klasse erstellen (siehe folgendes Beispiel).
class SubWidget extends Widget { function SubWidget() { trace("Erstelle Subwidget Nr. " + Widget.widgetCount); } }

186

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

Schnittstellen erstellen und verwenden


In der objektorientierten Programmierung sind Schnittstellen mit Klassen vergleichbar, deren Methoden deklariert wurden, die aber sonst nichts anderes tun. Eine Schnittstelle setzt sich also aus leeren Methoden zusammen. Schnittstellen haben u. a. die Aufgabe, ein Protokoll zwischen ansonsten unverwandten Klassen zu erzwingen. Angenommen, Sie gehren zu einer Gruppe von Programmierern, bei der jeder einzelne Programmierer an einem anderen Teil - d. h. einer anderen Klasse - einer groen Anwendung arbeitet. Die meisten dieser Klassen stehen miteinander nicht in Beziehung. Dennoch mssen die verschiedenen Klassen miteinander kommunizieren knnen. Sie mssen also eine Schnittstelle oder ein Kommunikationsprotokoll definieren, das alle Klassen befolgen. Eine Mglichkeit wre, dass Sie eine Kommunikationsklasse erstellen, die die Gesamtheit dieser Methoden definiert, und dann jede einzelne Klasse diese bergeordnete Klasse erweitern oder von ihr erben lassen. Da die Anwendung jedoch aus unverwandten Klassen besteht, ist es nicht sinnvoll, alle diese Klassen in eine gemeinsame Klassenhierarchie zu zwingen. Die bessere Lsung ist das Erstellen einer Schnittstelle, in der die Methoden deklariert werden, die diese Klassen zur Kommunikation verwenden. Anschlieend knnen Sie jede Klasse diese Methoden implementieren lassen (d. h., ihre jeweils eigenen Definitionen zur Verfgung stellen). Fr eine erfolgreiche Programmierung sind in der Regel keine Schnittstellen erforderlich. Werden Schnittstellen richtig eingesetzt, kann das Design Ihrer Anwendung dadurch jedoch eleganter, skalierbarer und leichter zu pflegen sein. Schnittstellen erstellen Schnittstellen werden auf dieselbe Art und Weise erstellt wie Klassen. Wie bei Klassen knnen Sie Schnittstellen nur in externen ActionScript (AS)-Dateien definieren. Schnittstellen deklarieren Sie mit dem Schlsselwort interface. Darauf folgen der Name der Schnittstelle und dann die ffnende und schlieende geschweifte Klammer, die den Krper der Schnittstelle definieren.
interface interfaceName { // Methodendeklarationen der Schnittstelle }

Schnittstellen knnen nur Methodendeklarationen (Funktionsdeklarationen) enthalten, einschlielich Parameter, Parametertypen und Funktionsrckgabetypen. Der folgende Code deklariert beispielsweise die Schnittstelle MeinInterface, die zwei Methoden enthlt, method_1() und method_2(). Die erste Methode erwartet keine Parameter und hat keinen Rckgabetyp (sie wird als Void festgelegt). Die zweite Methodendeklaration erwartet einen einzigen Parameter vom Typ String und legt den Rckgabetyp Boolean fest.
interface MeinInterface { function method_1():Void; function method_2(param:String):Boolean; }

Schnittstellen drfen keine Variablendeklarationen oder Zuweisungen enthalten. Die in einer Schnittstelle deklarierten Funktionen drfen keine geschweiften Klammern enthalten. Die folgende Schnittstelle wird zum Beispiel nicht kompiliert:
interface BadInterface{ // Compiler-Fehler. Variablendeklaration sind in Schnittstellen nicht zulssig. var illegalVar;

Schnittstellen erstellen und verwenden

187

// Compiler-Fehler. Funktionskrper sind in Schnittstellen nicht zulssig. function illegalMethod(){ } }

Die Regeln fr die Namensgebung und das paketweise Speichern von Schnittstellen entspricht dem fr Klassen; siehe Klassen erstellen und verwenden auf Seite 180 und Pakete verwenden auf Seite 191. Schnittstellen als Datentypen Wie Klassen definieren Schnittstellen einen neuen Datentyp. Jede beliebige Klasse, die eine Schnittstelle implementiert, weist den Klassentyp auf, der von der Schnittstelle definiert wird. Dies ist besonders dann von Nutzen, wenn Sie bestimmen mchten, ob ein bestimmtes Objekt eine bestimmte Schnittstelle implementiert. Betrachten Sie z. B. die folgende Schnittstelle:
interface Movable { function moveUp(); function moveDown(); }

Lassen Sie jetzt die Box-Klasse die Movable-Schnittstelle implementieren.


class Box implements Movable { var x_pos, y_pos; function moveUp() { // Definition der Methode } function moveDown() { // Definition der Methode } }

In einem anderen Skript, in dem Sie eine Instanz der Box-Klasse erstellen, knnten Sie eine Variable dem Movable-Typ zuordnen.
var newBox:Movable = new Box();

Zur Laufzeit knnen Sie in Flash Player 7 und hheren Versionen einen Ausdruck in einen Schnittstellentyp umwandeln. Wenn der Ausdruck ein Objekt ist, das die Schnittstelle implementiert, oder eine bergeordnete Klasse hat, die die Schnittstelle implementiert, wird das Objekt zurckgegeben. Anderenfalls wird null zurckgegeben. Das ist dann ntzlich, wenn Sie sicherstellen mchten, dass eine bestimmte Schnittstelle in einem bestimmten Objekt implementiert wird. Im folgenden Beispiel wird durch den Code erst geprft, ob die Movable-Schnittstelle den Objektnamen someObject implementiert, bevor die Methode moveUp() fr das Objekt aufgerufen wird.
if(Movable(someObject) != null) { someObject.moveUp(); }

188

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

Mit Classpath arbeiten


Damit von Ihnen definierte Klassen oder Schnittstellen verwendet werden knnen, muss Flash die externen AS-Dateien mit der Klassen- oder Schnittstellendefinition finden knnen. Die Liste der Ordner, in denen Flash nach Klassen- und Schnittstellendefinitionen sucht, wird als Classpath bezeichnet. Wenn Sie eine ActionScript-Klassendatei erstellen, mssen Sie die Datei in einem der im Classpath angegebenen Ordner oder Unterordner speichern. (Sie knnen den Classpath so ndern, dass er den gewnschten Ordnerpfad enthlt; siehe Classpath ndern auf Seite 190.) Andernfalls kann Flash die im Skript angegebene Klasse oder Schnittstelle nicht auflsen oder finden. Innerhalb eines Classpath-Ordners erstellte Unterordner werden als Pakete bezeichnet. Mit ihnen knnen Sie Ihre Klassen organisieren. Weitere Informationen hierzu finden Sie unter Pakete verwenden auf Seite 191. Globaler Classpath und Classpath auf Dokumentebene In Flash gibt es zwei Classpath-Einstellungen: den globalen Classpath und den Classpath auf Dokumentebene. Der globale Classpath bezieht sich auf externe AS- und FLA-Dateien und wird im Dialogfeld Voreinstellungen (Bearbeiten > Voreinstellungen) festgelegt. Der Classpath auf Dokumentebene bezieht sich nur auf FLA-Dateien und wird im Dialogfeld Einstellungen fr Verffentlichungen (Datei >Einstellungen fr Verffentlichungen) fr die jeweilige FLA-Datei festgelegt. Standardmig enthlt der globale Classpath zwei Ordnerpfade: einen relativen Pfad, der auf den Ordner mit dem aktuellen Dokument verweist, und den Ordner Classes, der sich in dem mit Flash installierten Ordner Configuration befindet. Die Position dieses Ordners ist:

Windows 2000 oder Windows XP: C:\Dokumente und Einstellungen\<Benutzer>\Lokale


Einstellungen\Anwendungsdaten\Macromedia\Flash 2004\<Sprache>\Configuration\

Windows 98: C:\Windows\Anwendungsdaten\Macromedia\Flash 2004\


<Sprache>\Configuration\

Macintosh OS X: Hard Drive/Users/Library/Application Support/Macromedia/Flash 2004/


<Sprache>/Configuration/ Der Classpath auf Dokumentebene ist standardmig leer. So lst der Compiler Klassenverweise auf: Wenn Flash versucht, Klassenverweise in einem FLA-Skript aufzulsen, durchsucht Flash zunchst den fr das FLA-Skript festgelegten Classpath auf Dokumentebene. Wenn die Klasse in dem Classpath nicht gefunden wird oder wenn der Classpath leer ist, durchsucht Flash den globalen Classpath. Wird die Klasse im globalen Classpath nicht gefunden, tritt ein CompilerFehler auf. Wenn Flash versucht, Klassenverweise in einem AS-Skript aufzulsen, durchsucht Flash nur die globalen Classpath-Ordner, da AS-Dateien mit keinem Classpath auf Dokumentebene verknpft sind.

Mit Classpath arbeiten

189

Classpath ndern Sie knnen den globalen Classpath im Dialogfeld Voreinstellungen ndern. Die Einstellung des Classpath auf Dokumentebene lsst sich mit dem Dialogfeld Einstellungen fr Verffentlichungen fr die jeweilige FLA-Datei ndern. Sie haben die Mglichkeit, absolute Ordnerpfade (z. B. C:/meine_Klassen) und relative Ordnerpfade (z. B. ../meine_Klassen oder .) hinzuzufgen. Standardmig enthlt der globale Classpath einen absoluten Pfad (den Klassenordner im Konfigurationsordner des Benutzers) und einen durch einen Punkt (.) angegebenen relativen Classpath, der auf den aktuellen Dokumentordner verweist. Beachten Sie, dass relative Classpaths je nach Position des Dokuments, das gerade kompiliert oder verffentlicht wird, auf verschiedene Ordner verweisen knnen. Weitere Informationen finden Sie unter Globaler Classpath und Classpath auf Dokumentebene auf Seite 189.
So ndern Sie den globalen Classpath:

1 Whlen Sie Bearbeiten > Voreinstellungen, um das Dialogfeld Voreinstellungen zu ffnen. 2 Klicken Sie auf die Registerkarte ActionScript und dann auf die Schaltflche ActionScript 2.0-

Einstellungen. 3 Fhren Sie einen der folgenden Schritte aus: Wenn Sie dem Classpath einen Ordner hinzufgen mchten, klicken Sie auf die Schaltflche Pfad ffnen, gehen Sie zu dem Ordner, den Sie hinzufgen mchten, und klicken Sie auf OK. Alternativ dazu knnen Sie auch auf die Schaltflche Neuen Pfad hinzufgen (+) klicken, um der Classpath-Liste eine neue Zeile hinzuzufgen. Doppelklicken Sie auf die neue Zeile, geben Sie einen absoluten oder relativen Pfad ein, und klicken Sie auf OK. Wenn Sie einen vorhandenen Classpath-Ordner bearbeiten mchten, whlen Sie den Pfad in der Classpath-Liste, klicken Sie auf die Schaltflche Pfad ffnen, gehen Sie zu dem Ordner, den Sie hinzufgen mchten, und klicken Sie auf OK. Sie knnen stattdessen auch in der Classpath-Liste auf den Pfad doppelklicken, den gewnschten Pfad eingeben und dann auf OK klicken. Wenn Sie einen Ordner vom Classpath lschen mchten, mssen Sie in der Classpath-Liste den Pfad auswhlen und dann auf die Schaltflche Vom Pfad entfernen klicken.
So ndern Sie den Classpath auf Dokumentebene:

1 Whlen Sie Datei > Einstellungen fr Verffentlichungen, um das Dialogfeld Einstellungen

fr Verffentlichungen zu ffnen. 2 Klicken Sie auf die Registerkarte Flash. 3 Klicken Sie neben dem Popupmen ActionScript-Version auf die Schaltflche Einstellungen. 4 Fhren Sie einen der folgenden Schritte aus: Wenn Sie dem Classpath einen Ordner hinzufgen mchten, klicken Sie auf die Schaltflche Pfad ffnen, gehen Sie zu dem Ordner, den Sie hinzufgen mchten, und klicken Sie auf OK. Alternativ dazu knnen Sie auch auf die Schaltflche Neuen Pfad hinzufgen (+) klicken, um der Classpath-Liste eine neue Zeile hinzuzufgen. Doppelklicken Sie auf die neue Zeile, geben Sie einen absoluten oder relativen Pfad ein, und klicken Sie auf OK.

190

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

Wenn Sie einen vorhandenen Classpath-Ordner bearbeiten mchten, whlen Sie den Pfad in der Classpath-Liste, klicken Sie auf die Schaltflche Pfad ffnen, gehen Sie zu dem Ordner, den Sie hinzufgen mchten, und klicken Sie auf OK. Sie knnen stattdessen auch in der Classpath-Liste auf den Pfad doppelklicken, den gewnschten Pfad eingeben und dann auf OK klicken. Wenn Sie einen Ordner aus dem Classpath lschen mchten, mssen Sie in der ClasspathListe den Pfad auswhlen und dann auf die Schaltflche Vom Pfad entfernen klicken.

Pakete verwenden
Sie haben die Mglichkeit, Ihre ActionScript-Klassendateien in Paketen zu organisieren. Ein Paket ist ein Ordner mit einer oder mehreren Klassendateien, der sich in einem angegebenen ClasspathOrdner befindet. (Weitere Informationen finden Sie unter Mit Classpath arbeiten auf Seite 189.) Ein Paket kann wiederum weitere Pakete enthalten, die als Unterpakete bezeichnet werden und jeweils ihre eigenen Klassendateien enthalten. Paketnamen mssen Bezeichner sein; das erste Zeichen ist also ein Buchstabe, ein Unterstrich (_) oder ein Dollarzeichen ($), und jedes folgende Zeichen muss ein Buchstabe, eine Zahl, ein Unterstrich oder ein Dollarzeichen sein. Mit Paketen werden zumeist verwandte Klassen organisiert. Als Beispiel sollen die drei verwandten Square-, Circle- und Triangle-Klassen dienen, die in Square.as, Circle.as und Triangle.as definiert sind. Angenommen, Sie haben die AS-Dateien in einem im Classpath angegebenen Ordner gespeichert.
// In Square.as: class Square {} // In Circle.as: class Circle {} // In Triangle.as: class Triangle {}

Da diese drei Klassen verwandt sind, mchten Sie sie mglicherweise in dem Paket (Ordner) Shapes ablegen. In diesem Fall wrde der vollstndig qualifizierte Klassenname den Paketpfad sowie den einfachen Klassennamen enthalten. Paketpfade werden durch eine Punktsyntax angegeben. Jeder Punkt steht dabei fr einen Unterordner. Wenn Sie jede AS-Datei, mit der eine Form definiert wird, im Ordner Shapes ablegen wrden, mssten Sie den Namen der einzelnen Klassendateien wie folgt ndern, um den neuen Speicherort zu kennzeichnen:
// In Shapes/Square.as: class Shapes.Square {} // In Shapes/Circle.as: class Shapes.Circle {} // In Shapes/Triangle.as: class Shapes.Triangle {}

Um auf eine Klasse zu verweisen, die sich in einem Paket-Ordner befindet, knnen Sie entweder den vollstndig qualifizierten Klassennamen angeben oder das Paket mit der Anweisung import importieren.

Pakete verwenden

191

Klassen importieren
Um auf eine Klasse in einem anderen Skript zu verweisen, mssen Sie dem Klassennamen den Paketpfad der Klasse voranstellen. Die Kombination aus dem Namen und dem Paketpfad einer Klasse ist der vollstndig qualifizierte Klassenname. Wenn eine Klasse in einem Classpath-Ordner auf oberster Ebene und nicht in einem Unterordner des Classpath-Ordners gespeichert ist, dann ist der vollstndig qualifizierte Klassenname einfach der Klassenname. Um Paketpfade festzulegen, trennen Sie die Paketordnernamen mittels Punktnotation. Paketpfade sind hierarchisch gegliedert. Jeder Punkt stellt einen verschachtelten Ordner dar. Angenommen, Sie erstellen die Data-Klasse, die in Ihrem Classpath im Paket com/network/ abgelegt ist. Um eine Instanz dieser Klasse zu erstellen, knnten Sie den vollstndig qualifizierten Klassennamen wie folgt angeben:
var dataInstance = new com.network.Data();

Mit dem vollstndig qualifizierten Klassennamen knnen Sie auch Variablentypen festlegen:
var dataInstance:com.network.Data = new Data();

Sie knnen die import-Anweisung verwenden, um Pakete in ein Skript zu importieren. Dadurch knnen Sie den abgekrzten Klassennamen anstelle des vollstndig qualifizierten Namens verwenden. Mit dem Platzhalter-Zeichen (*) knnen Sie zudem alle Klassen in einem Paket importieren. Angenommen, Sie haben die UserClass-Klasse erstellt, die zum Paketordnerpfad macr.util.users gehrt:
// In der Datei macr/util/users/UserClass.as class macr.util.users.UserClass { ... }

Angenommen, Sie haben in einem anderen Skript diese Klasse wie folgt mit der importAnweisung importiert:
import macr.util.users.UserClass;

Im selben Skript knnten Sie spter mit dem abgekrzten Namen auf diese Klasse verweisen:
var meinUser:UserClass = new UserClass();

Mit dem Platzhalter-Zeichen (*) knnen Sie alle Klassen in einem bestimmten Paket importieren. Angenommen, Sie haben ein Paket namens macr.util, das die beiden ActionScriptKlassendateien foo.as und bar.as enthlt. In einem anderen Skript knnten Sie die beiden Klassen in dem Paket mit dem Platzhalter-Zeichen importieren.
import macr.util.*;

Im selben Skript knnen Sie dann entweder auf die foo-Klasse oder auf die bar-Klasse direkt verweisen.
var meinFoo:foo = new foo(); var meineBar:bar = new bar();

Die import-Anweisung gilt nur fr das aktuelle Skript (Bild oder Objekt), in dem sie aufgerufen wird. Wenn eine importierte Klasse nicht in einem Skript verwendet wird, kann die Klasse in den Bytecode der entstehenden SWF-Datei aufgenommen werden. Die Klasse ist auch nicht in SWFDateien vorhanden, die von der FLA-Datei aufgerufen wird, in der die import-Anweisung enthalten ist. Weitere Informationen finden Sie unter import auf Seite 422.

192

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

Implizite get-/set-Methoden
In der objektorientierten Programmierung ist in der Regel kein direkter Zugriff auf die Eigenschaften einer Klasse zulssig. Klassen definieren normalerweise get-Methoden, die Lesezugriff auf eine bestimmte Eigenschaft gestatten, und set-Methoden, die Schreibzugriff gestatten. Als Beispiel soll eine Klasse mit der Eigenschaft userName dienen:
var userName:String;

Die Instanzen der Klasse knnen nicht direkt auf diese Eigenschaft (z. B. obj.userName = "Jutta") zugreifen. Die Klasse erfordert stattdessen die beiden Methoden getUserName und setUserName, die wie folgt implementiert werden knnen:
function getUserName:String() { return userName; } function setUserName(name:String): { userName = name; } getUserName gibt also den aktuellen Wert von userName zurck, und setUserName setzt den Wert von userName auf den der Methode bergebenen String-Parameter. Eine Instanz der Klasse verwendet dann die folgende Syntax, um den Wert der Eigenschaft userName abzurufen oder zu

setzen.
// "get"-Methode aufrufen var name = obj.getUserName(); // "set"-Methode aufrufen obj.setUserName("Jutta");

Wenn Sie jedoch eine krzere Syntax verwenden mchten, sollten Sie mit den impliziten get-/setMethoden arbeiten. Mit impliziten get-/set-Methoden knnen Sie auf Klasseneigenschaften direkt zugreifen und trotzdem die Regeln der objektorientierten Programmierung aufrechterhalten. Sie knnen diese Methoden mit den get- und set-Methodenattributen definieren. Erstellen Sie Methoden, die den Wert einer Eigenschaft abrufen oder festlegen, und setzen Sie vor den Methodennamen das Schlsselwort get bzw. set.
function get user():String { return userName; } function set user(name:String):Void { userName = name; }

Einer get-Methode mssen keine Parameter bergeben werden. Einer set-Methode muss genau ein erforderlicher Parameter bergeben werden. Eine set-Methode kann im selben Gltigkeitsbereich denselben Namen wie eine get-Methode haben. Get/set-Methoden drfen nicht dieselben Namen wie andere Eigenschaften haben. Im Beispielcode oben, mit dem get-/setMethoden namens user definiert werden, wre es nicht mglich, auch eine Eigenschaft mit der Bezeichnung user in derselben Klasse zu haben.

Implizite get-/set-Methoden

193

Im Gegensatz zu gewhnlichen Methoden werden get-/set-Methoden ohne runde Klammern oder Argumente aufgerufen. Die folgende Syntax knnte nun verwendet werden, um mit den oben definierten get-/set-Methoden auf den Wert von userName zuzugreifen oder ihn zu ndern.
var name = obj.user; obj.user = "Jakob"; Hinweis: Implizite get-/set-Methoden sind syntaktische Kurzelemente fr die Object.addProperty()-Methode in ActionScript 1.

Dynamische Klassen erstellen


Standardmig haben Klassen feste Eigenschaften und Methoden. Instanzen einer Klasse knnen also keine Eigenschaften oder Methoden erstellen oder auf sie zugreifen, wenn diese Eigenschaften oder Methoden ursprnglich von der Klasse deklariert oder definiert wurden. Als Beispiel soll die Person-Klasse dienen, die die beiden Eigenschaften name und age definiert:
class Person { var name:String; var age:Number; }

Wenn Sie in einem anderen Skript eine Instanz der Person-Klasse erstellen und versuchen, auf eine nicht vorhandene Eigenschaft der Klasse zuzugreifen, tritt ein Compiler-Fehler auf. Der folgende Code erstellt beispielsweise eine neue Instanz der Person-Klasse (a_person) und versucht dann, der nicht vorhandenen Eigenschaft hairColor einen Wert zuzuweisen.
var a_person:Person = new Person(); a_person.hairColor = "blau"; // Compiler-Fehler

Dieser Code verursacht einen Compiler-Fehler, weil die Person-Klasse keine Eigenschaft mit dem Namen hairColor deklariert. In den meisten Fllen soll genau das passieren. In manchen Fllen mchten Sie jedoch vielleicht zur Laufzeit Eigenschaften oder Methoden einer Klasse hinzufgen oder auf Eigenschaften oder Methoden zugreifen, die in der ursprnglichen Klasse nicht definiert sind. Genau dies knnen Sie mit dem Modifizierer dynamic erreichen. Mit dem folgenden Code knnen Sie den Modifizierer dynamic der zuvor genannten Person-Klasse hinzufgen:
dynamic class Person { var name:String; var age:Number; }

Jetzt knnen Instanzen der Person-Klasse Eigenschaften oder Methoden hinzufgen oder auf Eigenschaften oder Methoden zugreifen, die in der ursprnglichen Klasse nicht definiert sind.
var a_person:Person = new Person(); a_person.hairColor = "blau"; // Kein Compiler-Fehler, weil Klasse dynamisch ist

Untergeordnete Klassen von dynamischen Klassen sind ebenfalls dynamisch.

194

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

So knnen Klassen kompiliert und exportiert werden:


Standardmig werden Klassen von SWF-Dateien in das erste Bild dieser Datei eingebettet und exportiert. Sie knnen dieses Bild allerdings frei whlen. Das ist dann ntzlich, wenn in einer SWF-Datei mehrere Klassen verwendet werden, die viel Zeit zum Herunterladen bentigen. Wenn die Klassen ber das erste Bild exportiert wrden, msste der Anwender warten, bis der gesamte Klassencode heruntergeladen worden ist, bevor das Bild angezeigt wrde. Durch das Festlegen eines spter auftretenden Bilds in der Zeitleiste knnten Sie eine schnellladende Animation in den ersten Bildern der Zeitleiste abspielen lassen, whrend der Klassencode aus dem nachfolgenden Bild heruntergeladen wird.
So legen Sie das Exportbild fr Klassen in einem Flash-Dokument fest:

1 Bei geffneter FLA-Datei whlen Sie Datei > Einstellungen fr Verffentlichungen. 2 Klicken Sie im Dialogfeld Einstellungen fr Verffentlichungen auf die Registerkarte Flash. 3 Klicken Sie neben dem Popupmen ActionScript-Version auf die Schaltflche Einstellungen.

Das Dialogfeld ActionScript-Einstellungen wird geffnet.


4 Geben Sie in das Textfeld Frame fr Klassen exportieren die Nummer des Bilds ein, in das Sie

Ihren Klassencode exportieren mchten. Sollte das Bild auf der Zeitleiste nicht vorhanden sein, erhalten Sie beim Verffentlichen Ihrer SWF-Datei eine Fehlermeldung. 5 Mit OK schlieen Sie das Dialogfeld ActionScript-Einstellungen. Klicken Sie anschlieend auf OK, um das Dialogfeld Einstellungen fr Verffentlichungen zu schlieen.

So knnen Klassen kompiliert und exportiert werden:

195

196

Kapitel 9: Klassen mit ActionScript 2.0 erstellen

TEIL IV Mit externen Daten und Medien arbeiten

TEIL IV

In diesem Teil erfahren Sie, wie Sie externe Daten und Medien in Ihre Macromedia FlashAnwendungen integrieren. Kapitel 10: Mit externen Daten arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Kapitel 11: Mit externen Medien arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

KAPITEL 10 Mit externen Daten arbeiten

Mit ActionScript knnen Sie in Macromedia Flash MX 2004 und Macromedia Flash MX Professional 2004 Daten aus externen Quellen in SWF-Dateien laden. Auerdem knnen Sie Daten aus SWF-Dateien bertragen, damit diese von einem Anwendungsserver (wie z. B. Macromedia ColdFusion MX oder Macromedia JRun) oder einem anderen serverseitigen Skript (wie z. B. PHP oder Perl) verarbeitet werden. Flash Player kann Daten per HTTP oder HTTPS sowie aus einer lokalen Textdatei senden und laden. Sie haben zudem die Mglichkeit, TCP/IPSocketverbindungen fr Anwendungen zu erstellen, die geringe Latenzzeiten erfordern, beispielsweise Chat-Anwendungen oder Brsenkursdienste. Die Daten, die in eine SWF-Datei geladen oder aus ihr gesendet werden, knnen als XML (Extensible Markup Language) oder als Namen-/Wertepaare formatiert werden. Flash Player kann auch Daten an seine Hostumgebung ( z. B. an einen Webbrowser) oder eine andere Instanz von Flash Player auf demselben Computer senden und von ihr empfangen. Standardmig kann eine SWF-Datei nur auf Daten zugreifen, die sich in derselben Domne (z. B. www.macromedia.com) wie der Flash-Film befinden. Weitere Informationen hierzu finden Sie unter Flash Player-Sicherheitsfunktionen auf Seite 211.

Variablen an/aus Remote-Quellen senden und laden


Eine SWF-Datei ist ein Fenster, in dem hnlich wie in einer HTML-Seite Informationen erfasst und angezeigt werden. Im Gegensatz zu HTML-Seiten knnen SWF-Dateien jedoch dauerhaft in den Browser geladen und regelmig mit neuen Informationen aktualisiert werden, ohne dass die Seite erneut geladen werden muss. Mit ActionScript-Funktionen und -Methoden knnen Sie Informationen an serverseitige Skripts, Textdateien und XML-Dateien senden oder aus diesen empfangen. Serverseitige Skripts knnen bestimmte Informationen aus einer Datenbank abrufen und an eine SWF-Datei weiterleiten. Sie knnen in einer Vielzahl unterschiedlicher Sprachen geschrieben werden: Zu den gngigsten Sprachen gehren CFML, Perl, ASP (Microsoft Active Server Pages) und PHP. Durch Speichern von Informationen in einer Datenbank und Abrufen dieser Daten knnen Sie dynamische und personalisierte Inhalte in Ihre SWF-Datei einbinden. Sie knnen z. B. ein Bulletin Board, persnliche Profile fr Benutzer oder einen Einkaufskorb erstellen, mit dem die Einkufe eines Benutzers festgehalten und so die Vorlieben dieses Benutzers ermittelt werden.

199

Mit mehreren ActionScript-Funktionen und -Methoden knnen Sie Daten in eine und aus einer SWF-Datei bertragen. Jede Funktion und Methode verwendet zur Datenbertragung ein bestimmtes Protokoll, das vorgibt, wie Informationen formatiert sein mssen.

Die folgenden Funktionen und MovieClip-Methoden senden mit dem Protokoll HTTP oder
HTTPS Daten im URL-kodierten Format: getURL(), loadVariables(), loadVariablesNum(), loadMovie() und loadMovieNum(). Die folgenden LoadVars-Methoden bertragen mit dem Protokoll HTTP oder HTTPS Daten im URL-kodierten Format: load(), send() und sendAndLoad(). Die folgenden Methoden bertragen mit dem Protokoll HTTP oder HTTPS Daten im XMLFormat: XML.send(), XML.load() und XML.sendAndLoad(). Die folgenden Methoden erstellen und benutzen eine TCP/IP-Socketverbindung zum bertragen von Daten im XML-Format: XMLSocket.connect und XMLSocket.send.

berprfen, ob Daten geladen wurden Alle Funktionen oder Methoden, die Daten in eine SWF-Datei laden (auer XMLSocket.send()), sind asynchron: Die Ergebnisse der Aktion werden also zu einem unbekannten Zeitpunkt zurckgegeben. Bevor Sie geladene Daten in einer SWF-Datei verwenden knnen, mssen Sie prfen, ob die Daten tatschlich geladen wurden. Sie knnen z. B. nicht in ein und demselben Skript Variablen laden und ihre Werte manipulieren. Im folgenden Skript knnen Sie erst auf die Variable letztesBild zugreifen, nachdem sichergestellt ist, dass die Variable aus der DateimeineDaten.txt geladen wurde:
loadVariables("meineDaten.txt", 0); gotoAndPlay(letztesBild);

Fr jede Funktion und Methode steht ein bestimmtes Verfahren zur Verfgung, mit dem geprft werden kann, welche Daten geladen wurden. Bei Verwendung von loadVariables() und loadMovie() knnen Sie Informationen in ein Movieclip-Ziel laden und ein Skript mit dem Ereignis data der Prozedur onClipEvent() ausfhren. Wenn Sie die Daten mit loadVariables() laden, wird die Prozedur onClipEvent(data) beim Laden der letzten Variablen ausgefhrt. Wenn Sie die Daten mit loadMovie() laden, wird die Prozedur onClipEvent(data) beim Laden eines SWF-Segments in den Flash Player ausgefhrt. Die folgende Schaltflchenaktion ldt z. B. die Variablen aus der Datei meineDaten.txt in den Movieclip ladezielMC:
on(release) { loadVariables("meineDaten.txt", _root.ladezielMC); }

Eine der Instanz ladezielMC zugewiesene onClipEvent()-Prozedur verwendet die Variable letztesBild, die aus der Datei meineDaten.txt geladen wird. Die folgende Prozedur wird nur ausgefhrt, wenn alle Variablen, einschlielich letztesBild, geladen sind:
onClipEvent(data) { goToAndPlay(letztesBild); }

200

Kapitel 10: Mit externen Daten arbeiten

Bei Verwendung der Methoden XML.load(), XML.sendAndLoad() und XMLSocket.connect() wird empfohlen, eine Prozedur zu definieren, die die Daten beim Empfang verarbeitet. Hierbei handelt es sich um eine Eigenschaft eines XML- oder XMLSocket-Objekts, der Sie eine selbst definierte Funktion zuweisen. Die Prozeduren werden automatisch durch den Datenempfang aufgerufen. Verwenden Sie XML.onLoad() oder XML.onData() fr das XML-Objekt. und fr das XMLSocket-ObjektXMLSocket.onConnect(). Weitere Informationen hierzu finden Sie unter XML-Klasse verwenden auf Seite 204 und Die XMLSocket-Klasse verwenden auf Seite 207. ber HTTP mit serverseitigen Skripts kommunizieren Die Funktionen loadVariables(), loadVariablesNum(), getURL(), loadMovie() und loadMovieNum() sowie die Methoden MovieClip.loadVariables(), MovieClip.loadMovie() und MovieClip.getURL() knnen mit serverseitigen Skripts ber HTTP- oder HTTPS-Protokolle kommunizieren. Diese Funktionen bertragen alle Variablen aus der Zeitleiste, mit der die Funktion verknpft ist. Bei Verwendung als Methoden des MovieClip-Objekts bertragen loadVariables, getURL und loadMovie alle Variablen des angegebenen Movieclips. Die Verarbeitung der Antworten geschieht bei den einzelnen Funktionen (bzw. Methoden) wie folgt:

gibt alle Informationen an ein Browserfenster zurck, nicht an den Flash Player. ldt Variablen in die angegebene Zeitleiste oder Stufe im Flash Player. loadMovie() ldt eine SWF-Datei in die angegebene Stufe bzw. den angegebenen Movieclip im Flash Player.
getURL() loadVariables()

Bei Verwendung von loadVariables(), getURL() und loadMovie() knnen Sie mehrere Parameter angeben:

bezeichnet die Datei, in der sich die Remote-Variablen befinden. Ort bezeichnet die Stufe oder das Ziel in der SWF-Datei, an die bzw. das die Variablen gesendet werden. (Die Funktion getURL() untersttzt diesen Parameter nicht.) Weitere Informationen ber Ebenen und Ziele finden Sie in der Hilfe Flash verwenden unter Mehrere Zeitleisten und Stufen. Variablen bestimmt die HTTP-Methode (GET oder POST), mit der die Variablen gesendet werden. Wenn keine Methode ausgewhlt wird, verwendet der Flash Player standardmig GET, aber es werden keine Variablen gesendet.
URL

Wenn Sie z. B. die Punktzahlen fr ein Spiel aufzeichnen mchten, knnen Sie diese auf einem Server speichern und anschlieend ber loadVariables() immer dann in die SWF-Datei laden, wenn ein Benutzer das Spiel gespielt hat. Der Funktionsaufruf sieht in etwa so aus:
loadVariables("http://www.meineSite.com/skripts/punktzahlen.php", _root.punkteClip, GET);

Hierdurch werden Variablen aus dem PHP-Skript mit dem Namen punktzahlen.php in die Movieclip-Instanz punkteClip geladen. Das Laden erfolgt ber die HTTP-Methode GET.

Variablen an/aus Remote-Quellen senden und laden

201

Alle mit der Funktion loadVariables() geladenen Variablen mssen im Standard-MIMEFormat application/x-www-form-urlencoded vorliegen (einem von CGI-Skripts verwendeten Standardformat). In der im Parameter URL von loadVariables() angegebenen Datei mssen die Variablen und zugehrigen Werte in diesem Format vorliegen, damit Flash sie lesen kann. Diese Datei kann eine beliebige Anzahl an Variablen enthalten. Variablen- und Wertepaare mssen durch ein kaufmnnisches Und-Zeichen (&), Wrter innerhalb eines Wertes durch ein Pluszeichen (+) voneinander getrennt sein. Mit dem folgenden Ausdruck werden z. B. mehrere Variablen definiert:
punktzahl1=54000&spielername1=rockin+franz&punktzahl2=53455&spielername2= knochenhelm&punktzahl3=42885&spielername3=coole+lisa

Weitere Informationen finden Sie unter loadVariables() auf Seite 444, getURL() auf Seite 415, loadMovie() auf Seite 441 und unter dem Eintrag LoadVars-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. LoadVars-Klasse verwenden Anstelle der Funktion loadVariables() knnen Sie auch die LoadVars-Klasse zur bertragung von Variablen zwischen einer SWF-Datei und einem Server verwenden. Mit der LoadVars-Klasse knnen Sie alle Variablen in einem Objekt an eine bestimmte URL senden und alle Variablen an einer bestimmten URL in ein Objekt laden. Die Antwort vom Server lst die Methode LoadVars.onLoad() aus und setzt Variablen am Ziel. Mit LoadVars knnen Sie beim Herunterladen Fehlerinformationen und Statusangaben abrufen und Daten streamen. Die LoadVars-Klasse funktioniert hnlich wie die XML-Klasse. Zur Kommunikation mit dem Server verwendet sie die Methoden load(), send() und sendAndLoad(). Der Hauptunterschied zwischen der LoadVars- und der XML-Klasse besteht darin, dass die LoadVars-Daten eine Eigenschaft des LoadVars-Objekts sind und kein im XML-Objekt gespeicherter XML-DOMBaum (DOM = Document Object Model). Sie mssen zum Aufrufen seiner Methoden ein LoadVars-Objekt erstellen. In diesem Objekt werden die geladenen Daten abgelegt. In der folgenden Anleitung wird beschrieben, wie mit dem LoadVars-Objekt Variablen aus einer Textdatei geladen und diese Variablen in einem Textfeld angezeigt werden.
So laden Sie Daten mit dem LoadVars-Objekt:

1 Erstellen Sie in einem Texteditor (wie z. B. dem Editor unter Windows oder SimpleText) eine

neue Textdatei, und geben Sie den folgenden Text ein:


tag=11&monat=Juli&jahr=2003

2 Speichern Sie die Datei unter dem Namen date.txt. 3 Erstellen Sie in Flash ein Dokument. 4 Erstellen Sie auf der Bhne ein dynamisches Textfeld mit dem Namen date_txt. 5 Markieren Sie in der Zeitleiste das Bild 1, und whlen Sie Fenster > Entwicklungs-

Bedienfelder > Aktionen, um das Bedienfeld Aktionen zu ffnen.

202

Kapitel 10: Mit externen Daten arbeiten

6 Geben Sie im Bedienfeld Aktionen den folgenden Code ein:


var dateVars = new LoadVars(); dateVars.onLoad = function(ok) { if (ok) { date_txt.text = dateVars.tag+"/"+dateVars.monat+"/"+dateVars.jahr; } }; dateVars.load("date.txt");

Mit diesem Code werden die Variablen in der Datei data.txt (tag, monat, jahr) geladen, formatiert und im Textfeld date_txt angezeigt. 7 Speichern Sie das Dokument unter dem Namen dateReader.fla im selben Ordner wie die unter Schritt 3 gespeicherte Textdatei date.txt. 8 Whlen Sie Steuerung > Film testen, um das Dokument zu testen. Weitere Informationen finden Sie unter dem Eintrag LoadVars-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Einfhrung in XML XML (Extensible Markup Language) entwickelt sich immer mehr zum Standard fr den Austausch von strukturierten Daten in Internetanwendungen. Sie knnen in Flash eine Datenintegration mit Servern implementieren, bei denen die XML-Technologie eingesetzt wird, und so anspruchsvolle Anwendungen entwickeln, wie beispielsweise Chat- oder Brokerage-Systeme. Wie in HTML knnen Sie auch in XML Tags verwenden, um einen Textabschnitt auszuzeichnen. In HTML verwenden Sie vordefinierte Tags, um die gewnschte Textdarstellung in einem Webbrowser festzulegen (mit dem Tag <b> wird ein Textabschnitt z. B. fett formatiert). In XML definieren Sie Tags, mit denen der Typ eines Datensegments angegeben wird (z. B. <password>VerySecret</password>). Bei XML werden Struktur und Darstellungsform der Informationen voneinander getrennt, sodass Sie XML-Dokumente in unterschiedlichen Umgebungen verwenden knnen. Jedes XML-Tag wird als Knoten (oder Element) bezeichnet. Jeder Knoten verfgt ber einen Typ (1 = XML-Element oder 3 = Textknoten). Zustzlich knnen Elemente Attribute aufweisen. Ein in einem anderen Knoten verschachtelter Knoten wird Child-Knoten genannt. Diese hierarchische Baumstruktur der Knoten wird als XML Document Object Model (DOM) bezeichnet. Es kann mit dem JavaScript DOM verglichen werden, mit dem die Struktur von Elementen in einem Webbrowser definiert wird. Im folgenden Beispiel ist <PORTFOLIO> der bergeordnete (Parent-) Knoten. Er besitzt keine Attribute und beinhaltet den untergeordneten (Child-) Knoten <HOLDING>, der die Attribute SYMBOL, QTY, PRICE und VALUE aufweist:
<PORTFOLIO> <HOLDING SYMBOL="RICH" QTY="75" PRICE="245.50" VALUE="18412.50" /> </PORTFOLIO>

Variablen an/aus Remote-Quellen senden und laden

203

XML-Klasse verwenden Mit den Methoden der XML-Klasse in ActionScript (z. B. appendChild(), removeNode() und knnen Sie XML-Daten in Flash fr die bertragung an einen Server strukturieren und heruntergeladene XML-Daten manipulieren und interpretieren.
insertBefore())

Verwenden Sie die folgenden XML-Klassenmethoden, um XML-Daten mit Hilfe der HTTPMethode POSTan einen Server zu senden oder von diesem herunterzuladen:

Mit der Methode load knnen XML-Daten von einer URL heruntergeladen und in ein
ActionScript-XML-Objekt gestellt werden. Mit der Methode send() wird ein XML-Objekt an eine URL bertragen. Alle zurckgegebenen Informationen werden an ein anderes Browserfenster gesendet. Mit der Methode sendAndLoad() wird ein XML-Objekt an eine URL gesendet. Alle zurckgegebenen Informationen werden in einem ActionScript-XML-Objekt abgelegt.

Sie knnen z. B. ein Brokerage-System fr den Handel mit Wertpapieren erstellen, bei dem alle Informationen (Benutzernamen, Kennwrter, Session-IDs, Portfolio-Eintrge und Transaktionsinformationen) in einer Datenbank gespeichert werden. Das serverseitige Skript, ber das die Daten zwischen Flash und der Datenbank bertragen werden, liest und schreibt die Daten im XML-Format. Mit ActionScript knnen Sie die in der SWF-Datei erfassten Informationen (z. B. Benutzername und Kennwort) in ein XML-Objekt umwandeln und die Daten als XML-Dokument an das serverseitige Skript senden. Auerdem knnen Sie das vom Server zurckgegebene XML-Dokument mit ActionScript in ein XMLObjekt laden und dieses in einer SWF-Datei verwenden.

Datenfluss und -umwandlung zwischen Flash-Film, serverseitigem Skript und Datenbank Zur Kennwortprfung im Brokerage-System sind zwei Skripts erforderlich: eine im ersten Bild definierte Funktion und ein Skript, das die XML-Objekte erstellt und sendet, die mit der Schaltflche bermitteln im Formular verbunden sind. Wenn ein Benutzer in der SWF-Datei die entsprechenden Informationen in die Textfelder fr die Variablen username und password eingibt, mssen diese Variablen vor der bergabe an den Server in XML umgewandelt werden. Im ersten Abschnitt des Skripts werden die Variablen in ein neu erstelltes XML-Objekt namens loginXML geladen. Sobald ein Benutzer auf die Schaltflche bermitteln klickt, wird das Objekt loginXML in einen String mit XML-Daten umgewandelt und an den Server gesendet. Das folgende Skript ist mit der Schaltflche bermitteln verknpft. Lesen Sie die mit den Zeichen // eingeleiteten Kommentarzeilen, um dieses Skript besser zu verstehen.

204

Kapitel 10: Mit externen Daten arbeiten

on(release) { // A. XML-Dokument mit LOGIN-Element erstellen loginXML = new XML(); loginElement = loginXML.createElement("LOGIN"); loginElement.attributes.username = username; loginElement.attributes.password = password; loginXML.appendChild(loginElement); // B. XML-Objekt fr die Antwort des Servers erstellen loginReplyXML = new XML(); loginReplyXML.onLoad = onLoginReply; // C. LOGIN-Element an den Server senden // und Antwort in "loginReplyXML" ablegen loginXML.sendAndLoad("https://www.imexstocks.com/main.cgi", loginReplyXML); }

Im ersten Abschnitt des Skripts wird das folgende XML-Konstrukt erzeugt, sobald ein Benutzer auf die Schaltflche bermitteln klickt:
<LOGIN USERNAME="JeanSmith" PASSWORD="VerySecret" />

Der Server empfngt das XML-Konstrukt, erzeugt eine XML-Antwort und sendet diese zurck an die SWF-Datei. Wenn das Kennwort akzeptiert wurde, antwortet der Server wie folgt:
<LOGINREPLY STATUS="OK" SESSION="rnr6f7vkj2oe14m7jkkycilb" />

Dieses XML-Konstrukt beinhaltet das Attribut SESSION, das eine nach dem Zufallsprinzip generierte eindeutige Session-ID enthlt. Diese wird whrend der gesamten Sitzung zur Kommunikation zwischen Client und Server verwendet. Wenn das Kennwort abgelehnt wird, gibt der Server folgende Meldung zurck:
<LOGINREPLY STATUS="FAILED" />

Der XML-Knoten LOGINREPLY muss in ein leeres XML-Objekt in der SWF-Datei geladen werden. Die folgende Anweisung erstellt das XML-Objekt loginreplyXML, in dem der XMLKnoten abgelegt wird:
// B. XML-Objekt fr die Antwort des Servers erstellen loginReplyXML = new XML(); loginReplyXML.onLoad = onLoginReply;

In der zweiten Anweisung wird der Prozedur loginReplyXML.onLoad die Funktion onLoginReply() zugewiesen.

Variablen an/aus Remote-Quellen senden und laden

205

Das XML-Element LOGINREPLY wird asynchron empfangen (wie die Daten der Funktion loadVariables()) und in das Objekt loginReplyXML geladen. Beim Empfang der Daten wird die Prozedur onLoad des Objekts loginReplyXML aufgerufen. Sie mssen die Funktion onLoginReply() definieren und der Prozedur loginReplyXML.onLoad zuweisen, damit diese das Element LOGINREPLY verarbeiten kann. Auerdem mssen Sie die Funktion onLoginReply() dem Bild mit der Schaltflche bermitteln zuweisen.

Die Funktion onLoginReply() wird im ersten Bild der SWF-Datei definiert. (Lesen Sie die Kommentarzeilen zum besseren Verstndnis dieses Skripts.)
function onLoginReply() { // Erstes XML-Element abrufen var e = this.firstChild; // Wenn das erste XML-Element ein LOGINREPLY-Element mit // Status "OK" ist, zum Portfolio-Bildschirm wechseln. Andernfalls // zum Bildschirm fr fehlgeschlagene Anmeldung wechseln, damit der Benutzer es erneut versuchen kann. if (e.nodeName == "LOGINREPLY" && e.attributes.status == "OK") { // Session-ID fr nachfolgende Kommunikation mit dem Server speichern sessionID = e.attributes.session; // Zum Portfolio-Bildschirm wechseln gotoAndStop("portfolioView"); } else { // Anmeldung fehlgeschlagen! Zum Bildschirm fr fehlgeschlagene Anmeldung wechseln. gotoAndStop("loginFailed"); } }

In der ersten Zeile dieser Funktion, var e = this.firstChild, wird das Schlsselwort this verwendet, um auf das XML-Objekt loginReplyXML Bezug zu nehmen, in das soeben die XMLDaten vom Server geladen wurden. Sie knnen this verwenden, da onLoginReply() als loginReplyXML.onLoad aufgerufen wurde. Obwohl es sich bei onLoginReply() um eine einfache Funktion zu handeln scheint, wird diese wie eine Methode von loginReplyXML behandelt und verarbeitet.

206

Kapitel 10: Mit externen Daten arbeiten

Um den Benutzernamen und das Kennwort als XML an den Server zu senden und eine XMLAntwort zurck in die SWF-Datei zu laden, verwenden Sie die Methode sendAndLoad() wie folgt:
// C. LOGIN-Element an den Server senden // und Antwort in "loginReplyXML" ablegen loginXML.sendAndLoad("https://www.imexstocks.com/main.cgi", loginReplyXML); Hinweis: Bei diesem Entwurf handelt es sich lediglich um ein Beispiel; es kann nicht garantiert werden, dass hierbei tatschlich ein ausreichendes Ma an Datensicherheit erzielt wird. Wenn Sie ein sicheres System mit Kennwortschutz implementieren mchten, sollten Sie genauestens mit Fragen der Netzwerksicherheit vertraut sein.

Weitere Informationen finden Sie unter Integrating XML and Flash in a Web Application unter www.macromedia.com/support/flash/interactivity/xml/ und unter dem Eintrag XML-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Die XMLSocket-Klasse verwenden In ActionScript gibt es eine vordefinierte XMLSocket-Klasse, ber die Sie eine stndige Verbindung zu einem Server herstellen knnen. ber eine Socketverbindung kann der Server Informationen an den Client weitergeben, sobald diese zur Verfgung stehen. Ohne eine stndige Verbindung msste der Server auf eine HTTP-Anforderung warten. Offene Verbindungen sorgen dafr, dass keine Latenzprobleme auftreten, und werden deshalb in der Regel fr Echtzeitanwendungen wie Chats genutzt. Die Daten werden als String ber die Socketverbindung gesendet und mssen im XML-Format vorliegen. Mit der XML-Klasse knnen Sie die Daten strukturieren. Um eine Socketverbindung herzustellen, mssen Sie eine serverseitige Anwendung erstellen, die auf die Socketverbindungsanforderung wartet und eine Antwort an die SWF-Datei sendet. Sie knnen diese serverseitige Anwendung in einer Programmiersprache wie Java schreiben. Mit den Methoden connect() und send() der XMLSocket-Klasse knnen Sie XML-Daten ber eine Socketverbindung mit einem Server austauschen. Mit der Methode connect() stellen Sie eine Socketverbindung zu einem Webserver-Anschluss her. Mit der Methode send() bergeben Sie ein XML-Objekt an den in der Socketverbindung festgelegten Server. Sobald Sie die Methode connect() aufrufen, ffnet der Flash Player eine TCP/IP-Verbindung zum Server und erhlt diese Verbindung aufrecht, bis eine der folgenden Bedingungen eintritt:

Die Methode close() der XMLSocket-Klasse wird aufgerufen. Es sind keine Verweise auf das XMLSocket-Objekt mehr vorhanden. Flash Player wird beendet. Die Verbindung wird unterbrochen (z. B. wenn die Modemverbindung getrennt wird).

Im folgenden Beispiel wird eine XML-Socketverbindung hergestellt, ber die Daten aus dem XML-Objekt meinXML gesendet werden. Lesen Sie die durch die Zeichen // eingeleiteten Kommentarzeilen, um dieses Skript besser zu verstehen.
// Neues XMLSocket-Objekt erstellen sock = new XMLSocket(); // connect()-Methode aufrufen, um Verbindung zu Anschluss 1024 // des Servers mit der angegebenen URL herzustellen sock.connect("http://www.meinserver.com", 1024); // Funktion definieren, die dem Objekt "sock" zugewiesen wird, mit dem die Antwort

Variablen an/aus Remote-Quellen senden und laden

207

// des Servers verarbeitet wird. Bei erfolgreichem Verbindungsaufbau das // Objekt "meinXML" senden. Wenn nicht, Fehlermeldung in einem Textfeld // ausgeben. function onSockConnect(success){ if (success) { sock.send(meinXML); } else { msg="Fehler beim Herstellen einer Verbindung zu "+serverName; } } // onSockConnect()-Funktion der onConnect-Eigenschaft zuweisen sock.onConnect = onSockConnect;

Weitere Informationen finden Sie unter dem Eintrag XMLSocket-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Meldungen an den und vom Flash Player bertragen


Wenn Sie Nachrichten aus einer SWF-Datei an deren Host-Umgebung senden mchten (z. B. an einen Webbrowser, einen Macromedia Director-Film oder den eigenstndigen Flash Player), verwenden Sie die Funktion fscommand(). Dies erffnet Ihnen vielfltigere Mglichkeiten in Ihrer SWF-Datei, da Sie die Funktionen des Hosts nutzen knnen. Sie knnen z. B. eine fscommand()-Funktion an eine JavaScript-Funktion in einer HTML-Seite bergeben, mit der ein neues Browserfenster mit bestimmten Eigenschaften geffnet wird. Wenn Sie eine SWF-Datei im Flash Player ber eine Webbrowser-Skriptsprache wie JavaScript, VBScript oder Microsoft JScript steuern mchten, knnen Sie Flash Player-Methoden verwenden (d. h. Funktionen, die Nachrichten aus einer Host-Umgebung an die SWF-Datei senden). Sie knnen z. B. einen Hyperlink in eine HTML-Seite einbinden, mit dem die SWF-Datei an eine bestimmte Bildposition gesetzt wird. fscommand() verwenden Mit der Funktion fscommand() wird eine Nachricht an das Programm bermittelt, in dem der Flash Player ausgefhrt wird. Die Funktion fscommand() besitzt zwei Parameter: befehl und argumente. Wenn Sie eine Nachricht an die eigenstndige Version des Flash Players senden mchten, mssen Sie vordefinierte Befehle und Argumente verwenden. Mit der folgenden Aktion wird der eigenstndige Player z. B. angewiesen, die SWF-Datei in der vollen Bildschirmgre darzustellen, sobald die Schaltflche losgelassen wird:
on(release) { fscommand("fullscreen", "true"); }

In der folgenden Tabelle sind die zulssigen Werte fr die Parameter befehl und argumente von fscommand() aufgefhrt, mit denen Sie eine in einem eigenstndigen Player (einschlielich Projektoren) wiedergegebene SWF-Datei steuern knnen:
Befehl
quit fullscreen

Argumente Keine
true oder false

Funktion Schliet den Projektor. Bei Angabe von true wird der Flash Player in den Vollbildmodus gesetzt. Mit false wird der Player auf die normale Menansicht zurckgesetzt.

208

Kapitel 10: Mit externen Daten arbeiten

Befehl
allowscale

Argumente
true oder false

Funktion Bei Angabe von false wird der Player angewiesen, die SWFDatei immer in ihrer ursprnglichen Gre darzustellen und nicht zu skalieren. Bei Angabe von true wird die SWF-Datei exakt in der Gre des Players dargestellt. Bei Angabe von true werden smtliche Kontextmenelemente aktiviert. Bei Angabe von false werden alle Elemente des Kontextmens auer Einstellungen und ber Flash Player deaktiviert. Fhrt eine Anwendung vom Projektor aus.

showmenu

true oder false

exec

Pfad der Anwendung

Wenn Sie mit fscommand() eine Nachricht an eine Skriptsprache (z. B. JavaScript) in einem Webbrowser senden, knnen Sie zwei beliebige Parameter in den Parametern befehl und argumente bergeben. Bei diesen Parametern kann es sich um Strings oder Ausdrcke handeln, die in einer JavaScript-Funktion verwendet werden, mit der die Aktion fscommand() abgefangen wird. Eine fscommand()-Funktion ruft die JavaScript-Funktion filmname_DoFSCommand in der HTML-Seite auf, in die die SWF-Datei eingebettet ist. Hierbei ist filmname der Name fr den Flash Player, der mit dem Attribut NAME des Tags EMBED bzw. dem Attribut ID des Tags OBJECT zugewiesen wurde. Wenn dem Flash Player der Name meinFilm zugewiesen wurde, muss die JavaScript-Funktion meinFilm_DoFSCommand aufgerufen werden.
So ffnen Sie ber JavaScript mit fscommand() ein Feld mit Nachrichten aus einer SWFDatei in der HTML-Seite:

1 Fgen Sie der HTML-Seite, die die SWF-Datei enthlt, den folgenden JavaScript-Code hinzu:
function theMovie_DoFSCommand(befehl, argumente) { if (befehl == "messagebox") { alert(argumente); } }

Wenn Sie Ihre SWF-Datei unter Verwendung der Vorlage Flash mit FSCommand (auf der Registerkarte HTML des Dialogfelds Einstellungen fr Verffentlichungen) verffentlichen, wird dieser Code automatisch eingefgt. Die Attribute NAME und ID der SWF-Datei bilden den Dateinamen. Fr die Datei meinFilm.fla werden die Attributwerte zum Beispiel auf meinFilm gesetzt. (Weitere Informationen zum Verffentlichen finden Sie in der Hilfe Flash verwenden unter Verffentlichen.) Bei Anwendungen fr Microsoft Internet Explorer knnen Sie wie im folgenden Beispiel eine Ereignisprozedur direkt im Tag <SCRIPT> angeben:
<Script Language = "JavaScript" event="FSCommand (befehl, argumente)" for= "theMovie"> ... </Script>

2 Fgen Sie im Flash-Dokument die Funktion fscommand() zu einer Schaltflche hinzu:


on(press){ fscommand("messagebox", "Dieses Nachrichtenfeld wird von Flash aus aufgerufen."); }

Meldungen an den und vom Flash Player bertragen

209

Wie im folgenden Beispiel gezeigt, knnen Sie fr fscommand() und die zugehrigen Parameter auch Ausdrcke verwenden:
fscommand("messagebox", "Hallo, " + name + ", willkommen auf unserer Website!")

3 Whlen Sie Datei > Vorschau fr Verffentlichungen > HTML, um das Dokument zu testen.

ber die Funktion fscommand() knnen Nachrichten an Macromedia Director gesendet werden, die von Lingo als Strings, Ereignisse oder ausfhrbarer Lingo-Code interpretiert werden. Wenn es sich um einen String oder ein Ereignis handelt, mssen Sie entsprechenden Lingo-Code schreiben, der die Nachrichten der Funktion fscommand() empfngt und in Director eine Aktion aufruft. Weitere Informationen finden Sie im Director Support Center unter http:// www.macromedia.com/go/flash_support_de. In Visual Basic, Visual C++ und anderen Programmen, in denen ActiveX-Steuerelemente ausgefhrt werden knnen, sendet fscommand ein VB-Ereignis mit zwei Strings, die in der Programmiersprache der Umgebung verarbeitet werden knnen. Wenn Sie weitere Informationen bentigen, suchen Sie die Schlsselwrter Flash method im Flash Support Center unter www.macromedia.com/support/flash. bersicht ber Flash Player-Methoden Mit Hilfe der Flash Player-Methoden knnen Sie im Flash Player eine SWF-Datei ber Webbrowser-Skriptsprachen wie JavaScript und VBScript steuern. Wie bei anderen Methoden knnen Sie mit den Flash Player-Methoden aus einer anderen Skriptumgebung als ActionScript Aufrufe an SWF-Dateien senden. Jede Methode weist einen Namen auf, und die meisten Methoden akzeptieren Parameter. Mit einem Parameter wird ein bestimmter Wert angegeben, der von der Methode verarbeitet wird. Bei den von einigen Methoden durchgefhrten Berechnungen werden Werte zurckgegeben, die in der Skriptumgebung verwendet werden knnen. Zwei unterschiedliche Technologien ermglichen die Kommunikation zwischen dem Browser und dem Flash Player: LiveConnect (Netscape Navigator 3.0 oder hher unter Windows 95/98/ 2000/NT oder Power Macintosh) und ActiveX (Internet Explorer 3.0 und hher unter Windows 95/98/2000/NT). Obwohl sich die Skripterstellungsverfahren aller Browser und Programmiersprachen hneln, stehen bei der Verwendung von ActiveX-Steuerung zustzliche Eigenschaften und Ereignisse zur Verfgung. Weitere Informationen, zum Beispiel die vollstndige Liste der Flash Player-Skriptmethoden, erhalten Sie, wenn Sie nach den Schlsselwrtern Flash method im Flash Support Center unter http://www.macromedia.com/go/flash_support_de suchen. Flash JavaScript-Methoden mit dem Flash Player verwenden Der Flash Player ab Version 6.40 untersttzt Flash JavaScript-Methoden und FSCommand in Netscape 6.2 und hher. In frheren Versionen von Flash Player werden Flash JavaScriptMethoden und FSCommand in Netscape ab Version 6.2 nicht untersttzt. Bei Netscape 6.2 und hher ist es nicht erforderlich, swLiveConnect auf true zu setzen. Es entstehen jedoch keine Nachteile, wenn swLiveConnect auf true gesetzt wird.

210

Kapitel 10: Mit externen Daten arbeiten

Flash Player-Sicherheitsfunktionen
Standardmig wird in Flash Player 7 und spteren Versionen verhindert, dass eine von einer Domne geladene SWF-Datei Zugriff auf Daten, Objekte oder Variablen aus SWF-Dateien erhlt, die von anderen Domnen geladenen wurden. Es ist wechselseitig kein Zugriff auf die Objekte und Variablen mglich. Inhalte, die mit Hilfe nicht sicherer (nicht-HTTPS-) Protokolle geladen werden, knnen nicht auf Inhalte zugreifen, die mit einem sicheren (HTTPS-) Protokoll geladen werden, selbst wenn sich die Inhalte in derselben Domne befinden. Eine SWF-Datei unter http://www.macromedia.com/main.swf kann beispielsweise keine Daten aus https:// www.macromedia.com/data.txt laden. Genauso wenig kann eine in einer Domne bereitgestellte SWF-Datei (z. B. mit loadVariables()) Daten einer anderen Domne laden. Identische numerische IP-Adressen sind kompatibel. Ein Domnenname ist jedoch auch dann nicht mit einer IP-Adresse kompatibel, wenn der Domnenname dieselbe IP-Adresse besitzt. Beispiele fr kompatible Domnen finden Sie in der folgenden Tabelle:
www.macromedia.com data.macromedia.com 65.57.83.12 www.macromedia.com data.macromedia.com 65.57.83.12

Beispiele fr nicht kompatible Domnen finden Sie in der folgenden Tabelle:


www.macromedia.com macromedia.com www.macromedia.com 65.57.83.12 www.macromedia.com data.macromedia.com www.macromedia.com macromedia.com www.macromedia.com (auch bei einer Domne mit der IP-Adresse 65.57.83.12) 65.57.83.12 (auch wenn www.macromedia.com diese IP-Adresse besitzt)

Informationen zum Festlegen einer von einer Domne geladenen SWF-Datei fr den Zugriff auf Daten, Objekten oder Variablen aus SWF-Dateien, die von einer anderen Domne geladen werden, finden Sie unter Zulassen des Datenzugriffs zwischen SWF-Dateien ber Domnen hinaus auf Seite 212. Informationen zum Festlegen einer von einem sicheren Protokoll (HTTPS) geladenen SWF-Datei fr den Zugriff auf Daten, Objekte oder Variablen aus SWFDateien, die von unsicheren Protokollen geladen werden, finden Sie unter Ermglichen von Protokollzugriff von HTTP nach HTTPS zwischen SWF-Dateien auf Seite 213. Informationen zur Erlaubnis fr eine von einer Domne geladenen SWF-Datei zum Laden von Daten (zum Beispiel ber loadVariables()) aus einer anderen Domne finden Sie unter Domnenbergreifendes Laden von Daten ermglichen auf Seite 213. Informationen ber die Auswirkungen dieser genderten Sicherheitsfunktionen auf den in Flash MX und frheren Versionen erstellten Inhalt finden Sie unter Kompatibilitt mit frheren Flash Player-Sicherheitsmodellen auf Seite 214.

Flash Player-Sicherheitsfunktionen

211

Zulassen des Datenzugriffs zwischen SWF-Dateien ber Domnen hinaus Eine SWF-Datei kann eine andere SWF-Datei von einem beliebigen Ort im Internet laden. Damit die beiden SWF-Dateien jedoch gegenseitig auf ihre Daten (Variablen und Objekte) zugreifen knnen, mssen die beiden Dateien von derselben Domne stammen. Standardmig mssen die beiden Domnen in Flash Player ab Version 7 genau bereinstimmen, damit die beiden Dateien Daten gemeinsam nutzen knnen. Eine SWF-Datei kann den Zugriff auf SWFDateien, die aus bestimmten Domnen geladen wurden, durch den Aufruf von LocalConnection.allowDomain oder System.security.allowDomain() gewhren. Angenommen, main.swf wird auf www.macromedia.com bereitgestellt. Diese SWF-Datei kann dann eine andere SWF-Datei (data.swf ) von data.macromedia.com in eine Movieclip-Instanz (target_mc) laden.
// In macromedia.swf target_mc.loadMovie("http://data.macromedia.com/data.swf");

Angenommen, data.swf definiert ferner die Methode getData() in ihrer Hauptzeitleiste. Standardmig kann main.swf die in der Datei data.swf definierte getData()-Methode nicht aufrufen, wenn diese Datei geladen wurde. Dies liegt daran, dass sich die beiden SWF-Dateien in verschiedenen Domnen befinden. Beim folgenden Methodenaufruf in main.swf tritt beispielsweise ein Fehler auf, wenn data.swf geladen wurde.
// In macromedia.swf nach dem Laden von data.swf: target_mc.getData(); // Dieser Methodenaufruf schlgt fehl

Jedoch kann data.swf den Zugriff auf SWF-Dateien ermglichen, die mit der Prozedur LocalConnection.allowDomain oder der Methode System.security.allowDomain() aus www.macromedia.com geladen wurden (je nach erforderlicher Zugriffsmethode). Mit dem zu data.swf hinzugefgten Code kann eine aus www.macromedia.com geladene SWF-Datei auf deren Variablen und Methoden zugreifen:
// Innerhalb von data.swf System.security.allowDomain("www.macromedia.com"); mein_lc.allowDomain = function(sendendeDomne) return(sendendeDomne=="www.macromedia.com"); }

Beachten Sie, dass es mit allowDomain beliebigen SWF-Dateien in der zugelassenen Domne ermglicht wird, in andere SWF-Dateien in der Domne zu schreiben, die den Zugriff ermglichen, auer diese SWF-Datei befindet sich an einem Ort, an dem ein sicheres Protokoll (HTTPS) verwendet wird. In diesem Fall mssen Sie allowInsecureDomain anstelle von allowDomain verwenden, siehe Ermglichen von Protokollzugriff von HTTP nach HTTPS zwischen SWF-Dateien unten. Weitere Informationen zum Abgleichen von Domnennamen finden Sie unter Flash PlayerSicherheitsfunktionen auf Seite 211.

212

Kapitel 10: Mit externen Daten arbeiten

Ermglichen von Protokollzugriff von HTTP nach HTTPS zwischen SWFDateien Wie im vorhergehenden Abschnitt beschrieben, muss eine allowDomain-Prozedur oder Methode verwendet werden, um den Zugriff auf eine SWF-Datei in einer Domne durch eine SWF-Datei in einer anderen Domne zu ermglichen. Wenn sich die SWF-Datei, auf die zugegriffen wird, jedoch an einer Position befindet, an der ein sicheres Protokoll (HTTPS) verwendet wird, ermglicht die allowDomain-Prozedur keinen Zugriff von einer SWF-Datei, die sich an einem Standort befindet, an dem ein unsicheres Protokoll verwendet wird. Um diesen Zugriff zu ermglichen, mssen Sie die Anweisung LocalConnection.allowInsecure Domain() oder System.security.allowInsecureDomain() verwenden. Wenn die SWF-Datei unter https://www.eineSite.com/data.swf beispielsweise Zugriff auf eine SWF-Datei unter http://www.eineSite.com ermglichen soll, muss der folgende Code in data.swf eingefgt werden:
// Innerhalb von data.swf System.security.allowInsecureDomain("www.eineSite.com"); mein_lc.allowInsecureDomain = function(sendendeDomne) { return(sendendeDomne=="www.eineSite.com"); }

Domnenbergreifendes Laden von Daten ermglichen Flash-Dokumente knnen mit Hilfe eines der folgenden Aufrufe Daten aus externen Quellen laden: XML.load(), XML.sendAndLoad(), LoadVars.load(), LoadVars.sendAndLoad(), loadVariables(), loadVariablesNum(). Darber hinaus knnen SWF-Dateien Runtime Shared Libraries oder in einer anderen SWF-Datei definierte Bestnde zur Laufzeit importieren. Standardmig mssen sich die Daten bzw. (im Fall von Runtime Shared Libraries) SWF-Medien in derselben Domne wie die SWF-Datei befinden, die die externen Daten oder Medien ldt. Mit einer domnenbergreifenden Richtliniendatei knnen Sie Runtime Shared Library-Daten und -Bestnde fr SWF-Dateien in verschiedenen Domnen zur Verfgung stellen. Eine domnenbergreifende Richtliniendatei ist eine XML-Datei, mit der der Server angeben kann, dass seine Daten und Dokumente fr SWF-Dateien bestimmter Domnen oder aller Domnen verfgbar sind. Jede SWF-Datei, die von einer in der Richtliniendatei des Servers festgelegten Domne bereitgestellt wird, kann auf Daten oder Bestnde dieses Servers zugreifen. Wenn ein Flash-Dokument versucht, auf Daten einer anderen Domne zuzugreifen, versucht der Flash Player automatisch, eine Richtliniendatei von dieser Domne zu laden. Wenn die Domne des Flash-Dokuments, das auf die Daten zuzugreifen versucht, in der Richtliniendatei enthalten ist, sind die Daten automatisch zugnglich. Richtliniendateien mssen den Namen crossdomain.xml tragen und sich im Stammverzeichnis des Servers befinden, der die Daten bereitstellt. Sie knnen nur auf Servern eingesetzt werden, die per HTTP, HTTPS oder FTP kommunizieren. Richtliniendateien sind speziell fr den Anschluss und das Protokoll des Servers ausgelegt, auf dem sie sich befinden. Die Richtliniendatei unter https://www.macromedia.com:8080/crossdomain.xml gilt beispielsweise nur fr Aufrufe, die an www.macromedia.com per HTTPS an Anschluss 8080 gerichtet wurden.

Flash Player-Sicherheitsfunktionen

213

Eine Ausnahme von dieser Regel ist die Verwendung eines XMLSocket-Objekts zur Verbindung mit einem Socketserver in einer anderen Domne. In diesem Fall muss ein HTTP-Server an Anschluss 80 in derselben Domne wie der Socketserver die Richtliniendatei fr den Methodenaufruf zur Verfgung stellen. Eine XML-Richtliniendatei enthlt ein einziges <cross-domain-policy>-Tag, das wiederum keine oder mehrere <allow-access-from>-Tags enthlt. Jedes <allow-access-from>-Tag enthlt das Attribut domain, das entweder eine genaue IP-Adresse, eine genaue Domne oder eine Platzhalterdomne (beliebige Domne) festlegt. Platzhalterdomnen sind entweder durch einen einzelnen Stern (*), der fr alle Domnen und alle IP-Adressen steht, oder einen Stern mit nachfolgendem Suffix gekennzeichnet, der nur fr die Domnen steht, die mit dem angegebenen Suffix enden. Suffixe mssen mit einem Punkt beginnen. Platzhalterdomnen mit Suffixen knnen jedoch fr Domnen stehen, die nur das Suffix, nicht jedoch den Punkt enthalten. Beispielsweise wird foo.com als Teil von *.foo.com betrachtet. In IP-Domnen sind Platzhalter nicht erlaubt. Wenn Sie eine IP-Adresse festlegen, erhalten nur die SWF-Dateien Zugriff, die mit der IP-Syntax von der IP-Adresse geladen wurden (z. B. http://65.57.83.12/flashmovie.swf ), nicht aber diejenigen, die mit der Domnensyntax geladen wurden. Flash Player fhrt keine DNSAuflsung durch. Nachfolgend sehen Sie ein Beispiel fr eine Richtliniendatei, die einem Flash-Dokument auf foo.com Zugriff auf Flash-Dokumente gestattet, die von foo.com, friendOfFoo.com, *.foo.com und 105.216.0.40 stammen:
<?xml version="1.0"?> <!-- http://www.foo.com/crossdomain.xml --> <cross-domain-policy> <allow-access-from domain="www.friendOfFoo.com" /> <allow-access-from domain="www.friendOfFoo.com" /> <allow-access-from domain="105.216.0.40" /> </cross-domain-policy>

Eine Richtliniendatei, die keine <allow-access-from>-Tags enthlt, hat dieselben Folgen wie ein Server ohne Richtliniendatei. Kompatibilitt mit frheren Flash Player-Sicherheitsmodellen Die nderungen der Sicherheitsfunktion in Flash Player (siehe Flash PlayerSicherheitsfunktionen auf Seite 211) haben zur Folge, dass Inhalt, der in Flash Player 6 oder frheren Versionen fehlerfrei ausgefhrt wird, in Flash Player ab Version 7 unter Umstnden fehlerbehaftet ist. So konnten beispielsweise SWF-Dateien in Flash Player 6 unter www.macromedia.com ber einen Server unter data.macromedia.com auf Daten zugreifen. Das bedeutet, dass in Flash Player 6 SWF-Dateien in einer Domne Daten aus einer hnlichen Domne laden konnten.

214

Kapitel 10: Mit externen Daten arbeiten

In Flash Player ab Version 7 wird jedoch das Dialogfeld Einstellungen fr Macromedia Flash Player angezeigt, wenn eine unter Version 6 (oder einer frheren Version) erstellte SWF-Datei versucht, Daten von einem Server zu laden, der sich in einer anderen Domne befindet und keine Richtliniendatei hat, die den Zugriff von der Domne dieser SWF-Datei gewhrt. In diesem Dialogfeld wird der Benutzer gefragt, ob der domnenbergreifende Zugriff gewhrt werden soll.

Wenn der Benutzer auf Zulassen klickt, wird der SWF-Datei der Zugriff auf die gewnschten Daten gewhrt. Wenn der Benutzer auf Verweigern klickt, wird der SWF-Datei der Zugriff auf die gewnschten Daten verweigert. Erstellen Sie auf dem Server, der die Daten bereitstellt, eine Sicherheitsrichtliniendatei, damit dieses Dialogfeld nicht angezeigt wird. Weitere Informationen finden Sie unter Domnenbergreifendes Laden von Daten ermglichen auf Seite 213.

Flash Player-Sicherheitsfunktionen

215

216

Kapitel 10: Mit externen Daten arbeiten

KAPITEL 11 Mit externen Medien arbeiten

Wenn Sie beim Erstellen eines Flash-Dokuments Bilder oder einen Sound in Macromedia Flash MX 2004 oder Macromedia Flash MX Professional 2004 importieren, werden diese beim Verffentlichen des Dokuments in die SWF-Datei eingebettet und in ihr gespeichert. Sie knnen nicht nur beim Authoring Medien importieren, sondern auch externe Medien zur Laufzeit laden. Es gibt mehrere Grnde, Medien nicht in einem Flash-Dokument, sondern extern zu speichern.
Reduzierung der Dateigre

Wenn Sie groe Mediendateien auerhalb des Flash-Dokuments speichern und sie zur Laufzeit laden, knnen Sie die Downloadzeit fr Ihre Anwendungen und Prsentationen vor allem bei langsamen Internetverbindungen reduzieren.

Modularisierung groer Prsentationen

Sie knnen groe Prsentationen oder Anwendungen in mehrere SWF-Dateien aufteilen und die einzelnen Dateien nach Bedarf zur Laufzeit laden. Das verkrzt nicht nur die Downloadzeit, sondern erleichtert auch die Pflege und Aktualisierung der Prsentationsinhalte. Dies ist ein hufig angesprochenes Thema in der Anwendungsentwicklung, vor allem in der Entwicklung datengesteuerter Anwendungen. Beispielsweise wird in einer Shopanwendung ein JPEG-Bild jedes Produkts angezeigt. Wenn Sie die JPEG fr jedes Bild zur Laufzeit laden, knnen Sie das Bild eines Produkts leicht aktualisieren, ohne die FLA-Originaldatei zu ndern.

Trennung von Inhalt und Layout

Ausnutzung von Laufzeitfunktionen

Manche Funktionen, wie z. B. das Streaming von FLVund MP3-Dateien, stehen mit ActionScript nur zur Laufzeit zur Verfgung.

Externe Medien laden - berblick


Zur Laufzeit knnen Sie vier Arten von Mediendateien in eine Flash-Anwendung laden: SWF-, MP3-, JPEG- und FLV-Dateien. Flash Player kann externe Medien von jeder beliebigen HTTPoder FTP-Adresse und mit einem relativen Pfad oder dem Protokoll file:// von einem lokalen Datentrger laden. Externe SWF- und JPEG-Dateien knnen Sie entweder mit den Funktionen loadMovie() oder oder mit der MovieClip.loadMovie()-Methode laden. Wenn Sie eine SWFoder JPEG-Datei laden, geben Sie einen Movieclip oder eine Filmstufe als Ziel fr das Medium an. Weitere Informationen zum Laden von SWF- und JPEG-Dateien finden Sie unter Externe SWF- und JPEG-Dateien laden auf Seite 218.
loadMovieNum()

217

Externe MP3 (MPEG Layer 3)-Dateien knnen Sie mit der loadSound()-Methode der SoundKlasse wiedergeben. Mit dieser Methode knnen Sie festgelegen, ob die MP3-Datei gestreamt oder vollstndig geladen werden soll, bevor sie abgespielt wird. Wenn die in MP3-Dateien eingebetteten ID3-Informationen verfgbar sind, knnen Sie sie auch lesen. Weitere Informationen finden Sie unter ID3-Tags in MP3-Dateien lesen auf Seite 220. Flash Video (FLV) ist das native Videoformat von Flash Player. FLV-Dateien knnen ber HTTP oder vom lokalen Datentrgersystem wiedergegeben werden. Das Abspielen externer FLVDateien bietet mehrere Vorteile im Vergleich zum Einbetten von Videodateien in FlashDokumente, so z. B. bessere Leistungs- und Speicherverwaltung und unabhngige Video- und Flash-Bildraten. Weitere Informationen finden Sie unter Externe FLV-Dateien dynamisch wiedergeben auf Seite 221. Sie haben auch die Mglichkeit, externe Medien zu laden und den Ladevorgang zu verfolgen. Mit dem Flash Player 7 wird die MovieClipLoader-Klasse eingefhrt, mit der Sie den Ladevorgang von SWF- oder JPEG-Dateien verfolgen knnen. MP3- und FLV-Dateien knnen Sie mit der Methode getBytesLoaded() der Sound-Klasse und der Eigenschaft bytesLoaded der NetStream-Klasse laden. Weitere Informationen finden Sie unter Externe Medien laden auf Seite 222.

Externe SWF- und JPEG-Dateien laden


SWF- oder JPEG-Dateien knnen Sie mit den globalen Funktionen loadMovie() bzw. loadMovieNum() oder mit der loadMovie()-Methode der MovieClip-Klasse laden. Mit loadMovieNum() knnen Sie SWF- oder JPEG-Dateien in eine Filmstufe in Flash Player laden. Mit der loadMovie()-Funktion bzw. Methode ist dies fr einen Movieclip mglich. In beiden Fllen wird der Inhalt der angegebenen Filmstufe oder des Movieclips durch den geladenen Inhalt ersetzt. Wenn Sie SWF- oder JPEG-Dateien in ein Movieclip-Ziel laden, wird die obere linke Ecke der SWF- oder JPEG-Datei am Registrierungspunkt des Movieclips ausgerichtet. Da dieser Registrierungspunkt in vielen Fllen in der Mitte des Movieclips liegt, erscheint der geladene Inhalt unter Umstnden nicht ordnungsgem zentriert. Wenn Sie ein SWF- oder ein JPEG-Bild in eine Hauptzeitleiste laden, wird die linke obere Bildecke an der linken oberen Ecke der Bhne ausgerichtet. Der geladene Inhalt erbt die Drehungs- und Skalierungseigenschaften des Movieclips, dessen ursprnglicher Inhalt jedoch entfernt wird. Optional knnen Sie mit dem Aufruf loadMovie() bzw. loadMovieNum() ActionScriptVariablen bertragen. Dies ist z. B. dann sinnvoll, wenn die URL, die Sie im Methodenaufruf angegeben haben, ein serverseitiges Skript ist, das je nach den Daten aus der Flash-Anwendung eine JPEG- oder eine SWF-Datei zurckgibt. In der Kategorie Bilddateien untersttzt Flash nur herkmmliche JPEGs, keine progressiven JPEGs. Bei Verwendung der globalen Funktion loadMovie() bzw. loadMovieNum() mssen Sie die Zielebene oder den Zielclip als Parameter angeben. Der folgende Code ldt beispielsweise die Flash-Anwendung contents.swf in die MovieClip-Instanz target_mc:
loadMovieNum("contents.swf", target_mc);

Mit MovieClip.loadMovie() erzielen Sie dasselbe Ergebnis:


target_mc.loadMovie("contents.swf");

218

Kapitel 11: Mit externen Medien arbeiten

Der folgende Code ldt das JPEG-Bild flowers.jpg in die MovieClip-Instanz image_clip:
image_clip.loadMovie("flowers.jpg");

Weitere Informationen zu loadMovie(), loadMovieNum() und MovieClip.loadMovie() finden Sie unter den entsprechenden Eintrgen in Kapitel 12, ActionScript-Lexikon, auf Seite 229. Geladene SWF-Dateien und die Hauptzeitleiste Die ActionScript-Eigenschaft _root gibt einen Bezug auf die Stammzeitleiste einer SWF-Datei an oder zurck. Wenn Sie eine SWF-Datei in einen Movieclip in einer anderen SWF-Datei laden, beziehen sich alle _root-Verweise in der geladenen SWF-Datei auf die Hauptzeitleiste in der Host-SWF-Datei und nicht auf die in der geladenen SWF-Datei. Unter Umstnden fhrt dies zu unerwarteten Verhaltensweisen zur Laufzeit, z. B. wenn sowohl die Host-SWF-Datei als auch die geladene SWF-Datei mit _root eine Variable festlegen. Im Flash Player ab Version 7 knnen Sie mit der MovieClip._lockroot-Eigenschaft Verweise auf _root erzwingen, die von einem Movieclip fr die eigene Zeitleiste erstellt werden und nicht fr die Zeitleiste der SWF-Datei, die den Movieclip enthlt. Weitere Informationen finden Sie unter Hauptzeitleisten fr geladene SWF-Dateien festlegen auf Seite 136. Auf Daten in geladenen SWF-Dateien zugreifen Eine SWF-Datei kann eine andere SWF-Datei von einem beliebigen Ort im Internet laden. Damit eine SWF-Datei jedoch auf die in einer anderen SWF-Datei definierten Daten (Variablen, Methoden usw.) zugreifen kann, mssen die beiden Dateien von derselben Domne stammen. Im Flash Player ab Version 7 ist, sofern von der geladenen SWF-Datei durch Aufruf von System.security.allowDomain() nicht anders angegeben, keine domnenbergreifende Skripterstellung zulssig. Weitere Informationen finden Sie unter Flash Player-Sicherheitsfunktionen auf Seite 211 und System.security.allowDomain() in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Externe MP3-Dateien laden


Wenn MP3-Dateien zur Laufzeit geladen werden sollen, verwenden Sie die loadSound()Methode der Sound-Klasse. Zunchst mssen Sie ein Sound-Objekt erstellen:
var song_1_sound = new Sound();

Mit Hilfe des neuen Objekts knnen Sie dann loadSound() aufrufen, um einen Ereignis- oder Streaming-Sound zu laden. Ereignis-Sounds mssen erst vollstndig geladen werden, bevor die Wiedergabe beginnt. Streaming-Sounds werden hingegen schon beim Herunterladen abgespielt. Mit dem Parameter isStreaming der loadSound()-Methode knnen Sie angeben, ob ein Sound ein Ereignis- oder ein Streaming-Sound ist. Nachdem Sie einen Ereignis-Sound geladen haben, mssen Sie zur Wiedergabe die Methode start() der Sound-Klasse aufrufen. Bei StreamingSounds beginnt die Wiedergabe, sobald gengend Daten in die SWF-Datei geladen sind; die Methode start() muss nicht aufgerufen werden. Der folgende Code erstellt beispielsweise ein neues Sound-Objekt mit dem Namen classical und ldt dann die MP3-Datei beethoven.mp3:
var song_1_sound = new Sound(); classical.loadSound("http://server.com/mp3s/beethoven.mp3", true);

Externe MP3-Dateien laden

219

In den meisten Fllen sollten Sie den Parameter isStreaming auf true setzen, vor allem wenn Sie groe Sound-Dateien laden, die so schnell wie mglich wiedergegeben werden sollen - z. B. wenn Sie eine Jukebox-Anwendung erstellen. Wenn Sie jedoch krzere Sound-Clips laden und sie zu einem bestimmten Zeitpunkt abspielen mchten (z. B. wenn ein Benutzer auf eine Schaltflche klickt), sollten Sie isStreaming auf false setzen. Mit der Ereignisprozedur Sound.onLoad knnen Sie ermitteln, ob ein Sound vollstndig geladen wurde. Diese Ereignisprozedur erhlt automatisch einen Booleschen Wert (true oder false). Dieser gibt an, ob die Datei erfolgreich geladen wurde. Angenommen, Sie erstellen ein Online-Spiel, bei dem verschiedene Sounds fr die vom Benutzer erreichten Stufen verwendet werden. Der folgende Code ldt eine MP3-Datei (blastoff.mp3) in das Sound-Objekt gameSound und spielt den Sound ab, nachdem die Datei vollstndig geladen wurde:
var gameSound = new Sound(); gameSound.onLoad = function (loadedOK) { if(loadedOK) { gameSound.start(); } } gameSound.loadSound("http://server.com/sounds/blastoff.mp3", false);

Als Sounddateien untersttzt Flash Player nur das MP3-Format. Weitere Informationen finden Sie unter Sound.loadSound(), Sound.start() und Sound.onLoad() in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

ID3-Tags in MP3-Dateien lesen


Bei ID3-Tags handelt es sich um einer MP3-Datei hinzugefgte Datenfelder, die Informationen zur Datei enthalten, z. B. den Namen des Songs, des Albums und des Knstlers. Mit der Sound.ID3-Eigenschaft, deren Eigenschaften den Namen der in der geladenen MP3Datei enthaltenen ID3-Tags entsprechen, knnen Sie ID3-Tags aus einer MP3-Datei lesen. Mit Hilfe der Ereignisprozedur Sound.onID3 knnen Sie bestimmen, ob fr eine gerade heruntergeladene MP3-Datei ID3-Tags zur Verfgung stehen. Flash Player 7 untersttzt Tags der Versionen 1.0, 1.1, 2.3 und 2.4. Tags der Version 2.2 werden nicht untersttzt. Der folgende Code ldt beispielsweise eine MP3-Datei mit dem Namen favoriteSong.mp3 in das Sound-Objekt song. Sind fr die Datei ID3-Tags verfgbar, wird im Textfeld display_txt der Name des Knstlers und des Songs angezeigt.
var song = new Sound(); song.onID3 = function () { display_txt.text = "Knstler: " + song.id3.TCOM + newline; display_txt.text += "Song: " + song.id3.TIT2); } song.loadSound("mp3s/favoriteSong.mp3, true");

Da ID3-Tags der Version 2.0 am Anfang einer MP3-Datei (vor den Sound-Daten) gespeichert sind, sind sie gleich nach Beginn des Herunterladens verfgbar. ID3-Tags der Version 1.0 sind dagegen am Ende der Datei (nach den Sound-Daten) gespeichert. Sie stehen also erst zur Verfgung, nachdem die gesamte MP3-Datei heruntergeladen wurde.

220

Kapitel 11: Mit externen Medien arbeiten

Die Ereignisprozedur onID3 wird jedes Mal aufgerufen, wenn neue ID3-Daten verfgbar sind. Wenn eine MP3-Datei also ID3-Tags der Versionen 2.0 und 1.0 enthlt, wird die Prozedur onID3 zweimal aufgerufen, weil sich die Tags in unterschiedlichen Teilen der Datei befinden. Eine Liste der untersttzten ID3-Tags finden Sie unter Sound.ID3 auf Seite 648.

Externe FLV-Dateien dynamisch wiedergeben


Anstatt Video-Dateien in die Flash-Authoring-Umgebung zu importieren, knnen Sie externe FLV-Dateien in Flash Player auch mit Hilfe von ActionScript dynamisch wiedergeben. FLVDateien knnen von einer HTTP-Adresse oder vom lokalen Datentrgersystem wiedergegeben werden. Um FLV-Dateien wiederzugeben, verwenden Sie die NetConnection- und NetStreamKlasse sowie die attachVideo()-Methode der Video-Klasse. (Vollstndige Informationen finden Sie unter den Eintrgen NetConnection-Klasse, NetStream-Klasse und Video.attachVideo() in Kapitel 12, ActionScript-Lexikon, auf Seite 229.) Sie knnen FLV-Dateien erstellen, indem Sie eine Video-Datei in das Flash-Authoring-Tool importieren und sie anschlieend als FLV-Datei exportieren. (Weitere Informationen finden Sie unter Macromedia Flash-Video in der Hilfe Flash verwenden.) Wenn Sie mit Flash MX Professional arbeiten, knnen Sie mit dem Plug-In fr den FLV-Export FLV-Dateien aus untersttzten Videobearbeitungsprogrammen exportieren. (Weitere Informationen finden Sie unter FLV-Dateien aus Videobearbeitungsprogrammen exportieren (nur Flash Professional) in der Hilfe Flash verwenden.) Bei externen FLV-Dateien ergeben sich gewisse Mglichkeiten, die bei importierten VideoDateien nicht zur Verfgung stehen:

In Ihren Flash-Dokumenten knnen Sie lngere Videoclips verwenden, ohne dass die
Wiedergabe dadurch langsamer wird. Externe FLV-Dateien werden aus dem Cache-Speicher wiedergegeben, d. h., groe Dateien werden in kleinen Teilen gespeichert und dynamisch abgerufen. Sie erfordern daher weniger Speicher als eingebettete Videodateien. Die Bildraten externer FLV-Dateien knnen sich von denen der Flash-Dokumente, die sie wiedergeben, unterscheiden. Sie knnen z. B. die Bildrate des Flash-Dokuments auf 30 BpS und die des Videos auf 21 BpS einstellen. Auf diese Weise lsst sich leichter eine flssige Wiedergabe des Videos erreichen. Bei externen FLV-Dateien muss die Wiedergabe des Flash-Dokuments zum Laden der Videodatei nicht unterbrochen werden. Importierte Videodateien knnen unter Umstnden die Dokumentwiedergabe unterbrechen, um bestimmte Funktionen auszufhren (z. B. auf ein CD-ROM-Laufwerk zugreifen). FLV-Dateien knnen Funktionen unabhngig vom FlashDokument ausfhren und unterbrechen die Wiedergabe daher nicht. Mit externen FLV-Dateien ist es leichter, Video-Inhalte zu erfassen, da Sie mit Ereignisprozeduren auf die Metadaten des Videos zugreifen knnen.

Die nachfolgende Beschreibung erlutert Ihnen, wie Sie eine Datei mit dem Namen videoFile.flv abspielen, die an derselben Position wie Ihre SWF-Datei gespeichert ist.
So geben Sie eine externe FLV-Datei in einem Flash-Dokument wieder:

1 Whlen Sie, whrend das Dokument im Flash-Authoring-Tool geffnet ist, im Optionsmen

des Bedienfelds Bibliothek (Fenster > Bibliothek) die Option Neues Video, um ein VideoObjekt zu erstellen. 2 Ziehen Sie ein Video-Objekt aus dem Bedienfeld Bibliothek auf die Bhne. Dadurch erstellen Sie eine Videoobjekt-Instanz.

Externe FLV-Dateien dynamisch wiedergeben

221

3 Whlen Sie das Videoobjekt auf der Bhne aus, und geben Sie im Eigenschafteninspektor, den

4 5 6 7

Sie ber Fenster > Eigenschaften aufrufen, im Textfeld Instanzname den Namen mein_video ein. ffnen Sie mit Fenster > Entwicklungs-Bedienfelder > Komponenten das Bedienfeld Komponenten, und ziehen Sie eine TextArea-Komponente auf die Bhne. Whlen Sie das TextArea-Objekt auf der Bhne aus, und geben Sie im Eigenschafteninspektor im Textfeld Instanzname den Namen status ein. Whlen Sie in der Zeitleiste Bild 1 aus, und ffnen Sie ber Fenster > EntwicklungsBedienfelder > Aktionen das Bedienfeld Aktionen. Fgen Sie im Bedienfeld Aktionen folgenden Code hinzu:
// NetConnection-Objekt erstellen: var netConn:NetConnection = new NetConnection(); // Lokale Streaming-Verbindung erstellen: netConn.connect(null); // NetStream-Objekt erstellen und onStatus()-Funktion definieren: var netStream:NetStream = new NetStream(netConn); netStream.onStatus = function(infoObject) { status.text += "Status (NetStream)" + newline; status.text += "Level: "+infoObject.level + newline; status.text += "Code: "+infoObject.code + newline; }; // NetStream-Videofeed an das Video-Objekt anhngen: mein_video.attachVideo(netStream); // Zwischenspeicherzeit festlegen: netStream.setBufferTime(5); // Wiedergabe der FLV-Datei: netStream.play("videoFile.flv");

Externe Medien laden


ActionScript bietet mehrere Mglichkeiten, externe Medien zu laden und den Ladevorgang zu verfolgen. Laden Sie SWF- und JPEG-Dateien mit der MovieClipLoader-Klasse, bei der mit einem Ereignis-Listener-Mechanismus der Ladefortschritt berprft werden kann. Diese Klasse wurde neu in Flash Player 7 hinzugefgt. Weitere Informationen finden Sie unter SWF- und JPEG-Dateien vorausladen auf Seite 222. Mit den Methoden Sound.getBytesLoaded() und Sound.getBytesTotal() knnen Sie den Ladefortschritt von MP3-Dateien verfolgen. Mit den Eigenschaften NetStream.bytesLoaded und NetStream.bytesTotal knnen Sie den Ladefortschritt von FLV-Dateien verfolgen. Weitere Informationen finden Sie unter MP3- und FLV-Dateien vorausladen auf Seite 224. SWF- und JPEG-Dateien vorausladen Mit Hilfe der MovieClipLoader-Klasse knnen Sie SWF- und JPEG-Dateien in MovieClipInstanzen vorausladen. Diese Klasse stellt einen Ereignis-Listener-Mechanismus bereit, mit dem der Status von Dateidownloads in Movieclips angegeben wird. Wenn Sie mit dem MovieClipLoader-Objekt SWF- und JPEG-Dateien vorausladen, mssen Sie folgende Schritte ausfhren:
Neues MovieClipLoader-Objekt erstellen Sie knnen den Ladefortschritt fr mehrere Dateien mit nur einem MovieClipLoader-Objekt verfolgen oder ein einzelnes Objekt fr den Ladevorgang jeder Datei erstellen. var loader:MovieClipLoader = new MovieClipLoader();

222

Kapitel 11: Mit externen Medien arbeiten

Listener-Objekt und Ereignisprozeduren erstellen

Das Listener-Objekt kann ein beliebiges ActionScript-Objekt sein, wie z. B. ein generisches Object-Objekt, ein Movieclip oder eine benutzerdefinierte Komponente.

Mit dem folgenden Code werden beispielsweise das generische Listener-Objekt loadListener erstellt und die Funktionen onLoadStart, onLoadProgress und onLoadComplete fr den Code definiert.
// Listener-Objekt erstellen: var loadListener:Object = new Object(); loadListener.onLoadStart = function (loadTarget) { trace("Laden in " + loadTarget + " wurde gestartet."); } loadListener.onLoadProgress = function(loadTarget, bytesLoaded, bytesTotal) { var percentLoaded = bytesLoaded/bytesTotal * 100; trace("%" + percentLoaded + " in Ziel " + loadTarget); } loadListener.onLoadComplete = function(loadTarget) { trace("Ladevorgang abgeschlossen in: " + loadTarget); } Listener-Objekt dem MovieClipLoader-Objekt zuordnen Damit das Listener-Objekt die Ladeereignisse erhlt, mssen Sie es dem MovieClipLoader-Objekt zuordnen. loader.addListener(loadListener); Ladevorgang fr die JPEG- oder SWF-Datei in einen Zielclip starten Der Ladevorgang JPEG- bzw. SWF-Datei wird mit der MovieClipLoader.loadClip()-Methode gestartet. loader.loadClip("scene_2.swf"); Hinweis: Zum Verfolgen des Ladefortschritts von Dateien, die mit der MovieClipLoader.loadClip()-Methode geladen werden, knnen Sie nur MovieClipLoaderMethoden verwenden. Die loadMovie()-Funktion und die MovieClip.loadMovie()-Methode knnen nicht verwendet werden.

der

Im folgenden Beispiel wird mit der setProgress()-Methode der ProgressBar-Komponente der Ladefortschritt einer SWF-Datei angezeigt. (Weitere Informationen finden Sie in der Hilfe Komponenten verwenden.)
So zeigen Sie den Downloadstatus mit der ProgressBar-Komponente an:

1 Erstellen Sie in einem neuen Flash-Dokument auf der Bhne einen Movieclip mit dem Namen
target_mc.

2 ffnen Sie ber Fenster > Entwicklungs-Bedienfelder > Komponenten das Bedienfeld

Komponenten. 3 Ziehen Sie die ProgressBar-Komponente aus dem Bedienfeld Komponenten auf die Bhne. 4 Vergeben Sie im Eigenschafteninspektor fr die ProgressBar-Komponente den Namen pBar, und markieren Sie auf der Registerkarte Parameter im Popupmen Modus die Option Manuell. 5 Whlen Sie in der Zeitleiste Bild 1 aus, und ffnen Sie ber Fenster > EntwicklungsBedienfelder > Aktionen das Bedienfeld Aktionen.

Externe Medien laden

223

6 Fgen Sie im Bedienfeld Aktionen folgenden Code hinzu:


// Ein MovieClipLoader-Objekt und ein Listener-Objekt erstellen meinLoader = new MovieClipLoader(); meinListener = new Object(); // Dem Listener-Objekt die MovieClipLoader-Rckrufe hinzufgen meinListener.onLoadStart = function(clip) { // Dieses Ereignis wird ausgelst, wenn der Ladevorgang beginnt pBar.label = "Wird geladen: " + clip; }; meinListener.onLoadProgress = function(clip, bytesLoaded, bytesTotal) { var percentLoaded = int (100*(bytesLoaded/bytesTotal)); pBar.setProgress(bytesLoaded, bytesTotal); };meinLoader.addListener(meinListener); meinLoader.loadClip("SehrGroeDatei.swf", target_mc);

7 Testen Sie das Dokument mit Steuerung > Film testen.

Weitere Informationen finden Sie unter dem Eintrag MovieClipLoader-Klasse in Kapitel 12, ActionScript-Lexikon, auf Seite 229. MP3- und FLV-Dateien vorausladen Um MP3- und FLV-Dateien vorauszuladen, knnen Sie mit der setInterval()-Funktion eine Art Abfragemechanismus erstellen, mit dem die fr ein Sound- oder NetStream-Objekt geladenen Byte in zuvor bestimmten Intervallen berprft werden. Mit den Methoden Sound.getBytesLoaded() und Sound.getBytesTotal() knnen Sie den Ladefortschritt von MP3-Dateien verfolgen. Mit den Eigenschaften NetStream.bytesLoaded und NetStream.bytesTotal knnen Sie den Ladefortschritt von FLV-Dateien verfolgen. Im folgenden Beispielcode wird mit setInterval() die Anzahl der geladenen Byte fr ein Sound- oder NetStream-Objekt in zuvor bestimmten Intervallen berprft.
// Neues Sound-Objekt fr die Sound-Wiedergabe erstellen. var songTrack = new Sound(); // Die Abfragefunktion erstellen, die den Ladefortschritt verfolgt. // Dies ist die Funktion, die "abgefragt" wird. Sie berprft // den Ladefortschritt des als Verweis bergebenen Sound-Objekts. checkProgress = function (soundObj) { var bytesLoaded = soundObj.getBytesLoaded(); var bytesTotal = soundObj.getBytesTotal(); var percentLoaded = Math.floor(bytesLoaded/bytesTotal * 100); trace("%" + percentLoaded + " geladen."); } // Intervallabruf nach dem beendeten Ladevorgang lschen. songTrack.onLoad = function () { clearInterval(poll); } // Streaming-MP3-Datei laden und Aufruf von checkProgress() starten songTrack.loadSound("beethoven.mp3", true); var poll = setInterval(checkProgress, 1000, songTrack);

Zum Laden externer FLV-Dateien knnen Sie dieselbe Abruftechnik verwenden. Mit den Eigenschaften NetStream.bytesLoaded und NetStream.bytesTotal erhalten Sie die Gesamtzahl von Byte und die bisher geladenen Byte fr eine FLV-Datei.

224

Kapitel 11: Mit externen Medien arbeiten

FLV-Dateien knnen auch mit der NetStream.setBufferTime()-Methode vorausgeladen werden. Diese Methode erwartet einen einzigen Parameter, der angibt, wie viele Sekunden verbleiben, bis der zu ladende FLV-Stream wiedergegeben wird. Weitere Informationen finden Sie unter MovieClip.getBytesLoaded(), MovieClip.getBytesTotal(), NetStream.bytesLoaded, NetStream.bytesTotal, NetStream.setBufferTime(), setInterval(), Sound.getBytesLoaded() und Sound.getBytesTotal() in Kapitel 12, ActionScript-Lexikon, auf Seite 229.

Externe Medien laden

225

226

Kapitel 11: Mit externen Medien arbeiten

TEIL V Referenz

TEIL V

Dieser Teil enthlt die ActionScript-Referenz mit Informationen zur Syntax und Verwendung der einzelnen Elemente in der ActionScript-Sprache. Auerdem finden Sie hier Anhnge mit Referenzmaterial, das Sie beim Schreiben von Skripts zurate ziehen knnen. Kapitel 12: ActionScript-Lexikon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Anhang A: Fehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 Anhang B: Vorrang und Assoziativitt von Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805 Anhang C: Tastaturtasten und Tastencodewerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807 Anhang D: Skripts fr frhere Versionen von Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . 813 Anhang E: Objektorientiertes Programmieren mit ActionScript 1 . . . . . . . . . . . . . . . . . . . . . 817

KAPITEL 12 ActionScript-Lexikon

in diesem Lexikon werden die Syntax und die Verwendung von ActionScript-Elementen in Macromedia Flash MX 2004 und Macromedia Flash MX Professional 2004 beschrieben. Um Beispiele in einem Skript zu verwenden, kopieren Sie den Beispielcode aus diesem Lexikon und fgen ihn in das Skriptfenster oder eine externe Skriptdatei ein. Im Lexikon werden alle ActionScript-Elemente wie Operatoren, Schlsselwrter, Anweisungen, Aktionen, Eigenschaften, Funktionen, Klassen und Methoden aufgefhrt. Einen berblick ber smtliche Eintrge des Lexikons finden Sie unter Inhalt des Lexikons auf Seite 231; die Tabellen in diesem Abschnitt eignen sich hervorragend zum Nachschlagen von Symboloperatoren oder Methoden, deren Klasse Sie nicht kennen. Informationen zu Komponenten finden Sie unter Komponenten verwenden. Dieses Lexikon umfasst zwei Arten von Eintrgen:

einzelne Eintrge fr Operatoren, Schlsselwrter, Funktionen, Variablen, Eigenschaften,


Methoden und Anweisungen

Klasseneintrge mit allgemeinen Informationen ber vordefinierte Klassen


Struktur und Konventionen, die in diesen Eintragstypen verwendet werden, knnen Sie den Beispieleintrgen entnehmen.

Beispieleintrag fr die meisten ActionScript-Elemente


Im folgenden Beispieleintrag werden die Konventionen erlutert, die fr alle ActionScriptElemente mit Ausnahme von Klassen verwendet werden. Eintragstitel Alle Eintrge sind in alphabetischer Reihenfolge aufgefhrt. Bei der alphabetischen Sortierung bleiben Gro- und Kleinschreibung, vorangestellte Unterstriche und hnliches unbercksichtigt.
Verfgbarkeit

Sofern nicht anders angegeben, ist im Abschnitt Verfgbarkeit aufgefhrt, welche Versionen von Flash Player das Element untersttzen. Dies unterscheidet sich von der Flash-Version, die zur Erstellung verwendet wird. Wenn Sie z. B. mit Macromedia Flash MX 2004 oder Macromedia Flash MX Professional 2004 Inhalte fr Flash Player 6 erstellen, knnen Sie nur solche ActionScript-Elemente verwenden, die fr Flash Player 6 verfgbar sind. In einigen Fllen wird in diesem Abschnitt auch angegeben, welche Version des Authoring-Tools ein Element untersttzt. Ein Beispiel finden Sie unter System.setClipboard().

229

Falls ein Element nur in ActionScript 2.0 untersttzt wird, ist auch diese Information in diesem Abschnitt aufgefhrt.
Verwendung

In diesem Abschnitt ist die korrekte Syntax fr die Verwendung des jeweiligen ActionScriptElements in Ihrem Code aufgefhrt. Der erforderliche Teil der Syntax erscheint in Codeschrift, der vom Benutzer anzugebende Code steht in kursiver Codeschrift. Eckige Klammern ([]) kennzeichnen optionale Parameter.
Parameter

In diesem Abschnitt werden alle in der Syntax aufgefhrten Parameter beschrieben.


Rckgaben

In diesem Abschnitt sind die vom Element zurckgegebenen Werte aufgefhrt (falls zutreffend).
Beschreibung

In diesem Abschnitt wird der Elementtyp angegeben (z. B. Operator, Methode, Funktion oder sonstiges Element) und anschlieend seine Verwendung beschrieben.
Beispiel

In diesem Abschnitt wird ein Codebeispiel fr die Verwendung des Elements angegeben.
Siehe auch

In diesem Abschnitt werden verwandte ActionScript-Lexikon-Eintrge angegeben.

Beispieleintrag fr Klassen
Im folgenden Beispieleintrag werden die Konventionen erlutert, die fr vordefinierte ActionScript-Klassen verwendet werden. Klassen werden zusammen mit allen anderen Elementen in alphabetischer Reihenfolge im Lexikon aufgefhrt. Eintragstitel Der Eintragstitel gibt den Namen der Klasse an. Auf den Klassennamen folgt eine allgemeine Beschreibung. Methoden- und Eigenschaftsbersichten Jeder Klasseneintrag enthlt eine Tabelle, in der alle zugehrigen Methoden aufgefhrt sind. Wenn die Klasse ber Eigenschaften verfgt (oft Konstanten), Ereignisprozeduren oder EreignisListener, werden diese Elemente in zustzlichen Tabellen zusammengefasst. Alle in diesen Tabellen aufgefhrten Elemente verfgen ber eigene Eintrge im Lexikon, die auf den Eintrag fr die Klasse folgen. Konstruktor Wenn Sie fr den Zugriff auf Methoden und Eigenschaften einer Klasse einen Konstruktor verwenden mssen, wird dieser Konstruktor im jeweiligen Klasseneintrag beschrieben. Diese Beschreibung umfasst smtliche Standardelemente (Syntax, Beschreibung usw.) der anderen Eintrge.

230

Kapitel 12: ActionScript-Lexikon

Listen der Methoden und Eigenschaften Die Methoden und Eigenschaften einer Klasse werden in alphabetischer Reihenfolge im Anschluss an den Klasseneintrag aufgefhrt.

Inhalt des Lexikons


Die Eintrge sind in alphabetischer Reihenfolge aufgelistet. Einige Operatoren sind jedoch Symbole und werden in ASCII-Reihenfolge aufgefhrt. Darber hinaus werden Methoden fr eine Klasse zusammen mit dem Namen der Klasse angegeben. Die Methode abs() der MathKlasse wird beispielsweise als Math.abs() aufgefhrt. Die folgenden beiden Tabellen erleichtern Ihnen die Suche nach diesen Elementen. In der ersten Tabelle sind die Symboloperatoren in der gleichen Reihenfolge wie im Lexikon aufgefhrt. In der zweiten Tabelle sind alle sonstigen ActionScript-Elemente aufgefhrt.
Symboloperatoren
-++ ! != !== % %= & && &= () * *= , . : ?: / // /* /= [] ^

Siehe Eintrag
-- (Dekrement) ++ (Inkrement) ! (logisches NOT) != (Ungleichheit) !== (strikte Ungleichheit) % (Modulo) %= (Modulo-Zuweisung) & (bitweiser AND-Operator) && (logisches AND) &= (bitweise AND-Zuweisung) () (runde Klammern) - (Minus) * (Multiplikation) *= (Multiplikationszuweisung) , (Komma) . (Punkt) : (Typ) ?: (bedingt) / (Division) // (Kommentartrennzeichen) /* (Kommentartrennzeichen) /= (Divisionszuweisung) [] (Arrayzugriff) ^ (bitweises XOR)

Inhalt des Lexikons

231

Symboloperatoren
^= {} | || |= ~ + += < << <<= <= <> = -= == === > >= >> >>= >>> >>>=

Siehe Eintrag
^= (bitweise XOR-Zuweisung) {} (Objektinitialisierung) | (bitweises OR) || (logisches OR) |= (bitweise OR-Zuweisung) ~ (bitweises NOT) + (Addition) += (Additionszuweisung) < (kleiner als) << (bitweise Verschiebung nach links) <<= (bitweise Verschiebung nach links und Zuweisung) <= (kleiner oder gleich) <> (Ungleichheit) = (Zuweisung) -= (Subtraktionszuweisung) == (Gleichheit) === (strikte Gleichheit) > (grer als) >= (grer oder gleich) >> (bitweise Verschiebung nach rechts) >>= (bitweise Verschiebung nach rechts und Zuweisung) >>> (vorzeichenlose bitweise Verschiebung nach rechts) >>>= (vorzeichenlose bitweise Verschiebung nach rechts und Zuweisung)

In der folgenden Tabelle sind alle ActionScript-Elemente aufgelistet, die keine Symboloperatoren sind.
ActionScript-Element Siehe Eintrag
#endinitclip #include #initclip __proto__ _accProps _alpha _currentframe #endinitclip #include #initclip Object.__proto__ _accProps MovieClip._alpha, Button._alpha, TextField._alpha MovieClip._currentframe

232

Kapitel 12: ActionScript-Lexikon

ActionScript-Element Siehe Eintrag


_droptarget _focusrect _framesloaded _global _height _highquality MovieClip._droptarget _focusrect, Button._focusrect, MovieClip._focusrect MovieClip._framesloaded _global object Button._height, MovieClip._height, TextField._height _highquality, Button._highquality, MovieClip._highquality, TextField._highquality MovieClip._lockroot Button._name, MovieClip._name, TextField._name P_parent, Button._parent, MovieClip._parent, TextField._parent Q_quality, Button._quality, TextField._quality _root Button._rotation, MovieClip._rotation, TextField._rotation _soundbuftime, Button._soundbuftime, MovieClip._soundbuftime, TextField._soundbuftime Button._target, MovieClip._target, TextField._target MovieClip._totalframes Button._url, MovieClip._url, TextField._url Button._visible, MovieClip._visible, TextField._visible Button._width, MovieClip._width, TextField._width Button._x, MovieClip._x, TextField._x Button._xmouse, MovieClip._xmouse, TextField._xmouse Button._xscale, MovieClip._xscale, TextField._xscale Button._y, MovieClip._y, TextField._y Button._ymouse, MovieClip._ymouse, TextField._ymouse Button._yscale, MovieClip._yscale, TextField._yscale Math.abs()

_lockroot _name _parent _quality _root _rotation _soundbuftime

_target _totalframes _url _visible _width _x _xmouse _xscale _y _ymouse _yscale abs Accessibility acos activityLevel add addListener

Accessibility-Klasse
Math.acos() Camera.activityLevel, Microphone.activityLevel add Key.addListener(), Mouse.addListener(), MovieClipLoader.addListener(), Selection.addListener(), Stage.addListener(), TextField.addListener() PrintJob.addPage()

addPage

Inhalt des Lexikons

233

ActionScript-Element Siehe Eintrag


addProperty addRequestHeader align allowDomain allowInsecureDomain Object.addProperty() LoadVars.addRequestHeader(), XML.addRequestHeader() Stage.align, TextFormat.align LocalConnection.allowDomain, System.security.allowDomain() LocalConnection.allowInsecureDomain, System.security.allowInsecureDomain() and XML.appendChild() Function.apply()

and appendChild apply Arguments Array asfunction asin atan atan2 attachAudio attachMovie attachSound attachVideo attributes autosize avHardwareDisable background backgroundColor BACKSPACE bandwidth beginFill beginGradientFill blockIndent bold Boolean border borderColor bottomScroll

Arguments-Klasse Array-Klasse, Array()


asfunction Math.asin() Math.atan() Math.atan2() MovieClip.attachAudio() MovieClip.attachMovie() Sound.attachSound() Video.attachVideo() XML.attributes TextField.autoSize System.capabilities.avHardwareDisable TextField.background TextField.backgroundColor Key.BACKSPACE Camera.bandwidth MovieClip.beginFill() MovieClip.beginGradientFill() TextFormat.blockIndent TextFormat.bold Boolean(), Boolean-Klasse TextField.border TextField.borderColor TextField.bottomScroll

234

Kapitel 12: ActionScript-Lexikon

ActionScript-Element Siehe Eintrag


break bufferLength bufferTime builtInItems bullet Button bytesLoaded bytesTotal call callee caller Camera capabilities CAPSLOCK caption case catch ceil charAt charCodeAt childNodes chr class clear clearInterval cloneNode close Color concat connect break NetStream.bufferLength NetStream.bufferTime ContextMenu.builtInItems TextFormat.bullet

Button-Klasse
NetStream.bytesLoaded NetStream.bytesTotal call(), Function.call() arguments.callee arguments.caller

Camera-Klasse
System.capabilities-Objekt Key.CAPSLOCK ContextMenuItem.caption case try..catch..finally Math.ceil() String.charAt() String.charCodeAt() XML.childNodes chr class MovieClip.clear(), SharedObject.clear(), Video.clear() clearInterval() XML.cloneNode() LocalConnection.close(), NetStream.close(), XMLSocket.close()

Color-Klasse, TextFormat.color
Array.concat(), String.concat() LocalConnection.connect(), NetConnection.connect(), XMLSocket.connect() TextField.condenseWhite

condenseWhite

Inhalt des Lexikons

235

ActionScript-Element Siehe Eintrag


constructor

Array-Klasse, Boolean-Klasse, Camera-Klasse, Color-Klasse, ContextMenu-Klasse, ContextMenuItem-Klasse, Date-Klasse, Error class, LoadVars-Klasse, LocalConnection-Klasse, Microphone-Klasse, NetConnection-Klasse, NetStream-Klasse, Number-Klasse, OObjectKlasse, PrintJob-Klasse, SharedObject-Klasse, Sound-Klasse, StringKlasse, TextField.StyleSheet-Klasse, TextFormat class, XML-Klasse, XMLSocket-Klasse
LoadVars.contentType, XML.contentType

contentType ContextMenu ContextMenuItem continue CONTROL copy cos createElement createEmptyMovieClip createTextField createTextNode currentFps curveTo CustomActions customItems data Date deblocking default delete DELETEKEY do while docTypeDecl domain DOWN duplicateMovieClip duration dynamic E

ContextMenu-Klasse ContextMenuItem-Klasse
continue Key.CONTROL ContextMenu.copy(), ContextMenuItem.copy() Math.cos() XML.createElement() MovieClip.createEmptyMovieClip() MovieClip.createTextField() XML.createTextNode() Camera.currentFps, NetStream.currentFps MovieClip.curveTo()

CustomActions-Klasse
ContextMenu.customItems SharedObject.data

Date-Klasse
Video.deblocking default delete Key.DELETEKEY do while XML.docTypeDecl LocalConnection.domain() Key.DOWN duplicateMovieClip(), MovieClip.duplicateMovieClip() Sound.duration dynamic Math.E

236

Kapitel 12: ActionScript-Lexikon

ActionScript-Element Siehe Eintrag


else else if embedFonts enabled END endFill ENTER eq Error ESCAPE (Konstante) escape (Funktion) eval exactSettings exp extends false finally findText firstChild floor flush focusEnabled font for for..in fps fromCharCode fscommand function gain ge get getAscii getBeginIndex else else if TextField.embedFonts Button.enabled, ContextMenuItem.enabled, MovieClip.enabled Key.END MovieClip.endFill() Key.ENTER eq (equal string specific)

Error class
Key.ESCAPE escape eval() System.exactSettings Math.exp() extends false try..catch..finally TextSnapshot.findText() XML.firstChild Math.floor() SharedObject.flush() MovieClip.focusEnabled TextFormat.font for for..in Camera.fps String.fromCharCode() fscommand() function, Function-Klasse Microphone.gain ge (grer oder gleich - stringspezifisch) Camera.get(), CustomActions.get(), get, Microphone.get() Key.getAscii() Selection.getBeginIndex()

Inhalt des Lexikons

237

ActionScript-Element Siehe Eintrag


getBounds getBytesLoaded MovieClip.getBounds() LoadVars.getBytesLoaded(), MovieClip.getBytesLoaded(), Sound.getBytesLoaded(), XML.getBytesLoaded() LoadVars.getBytesTotal(), MovieClip.getBytesTotal(), Sound.getBytesTotal(), XML.getBytesTotal() Selection.getCaretIndex() Key.getCode() TextSnapshot.getCount() Date.getDate() Date.getDay() Button.getDepth(), MovieClip.getDepth(), TextField.getDepth() Selection.getEndIndex() Selection.getFocus() TextField.getFontList() Date.getFullYear() Date.getHours() MovieClip.getInstanceAtDepth() SharedObject.getLocal() Date.getMilliseconds() Date.getMinutes() Date.getMonth() TextField.getNewTextFormat() MovieClip.getNextHighestDepth() Sound.getPan() MovieClipLoader.getProgress() getProperty Color.getRGB() Date.getSeconds() TextSnapshot.getSelected() TextSnapshot.getSelectedText() SharedObject.getSize() TextField.StyleSheet.getStyle() TextField.StyleSheet.getStyleNames() MovieClip.getSWFVersion() TextSnapshot.getText()

getBytesTotal

getCaretIndex getCode getCount getDate getDay getDepth getEndIndex getFocus getFontList getFullYear getHours getInstanceAtDepth getLocal getMilliseconds getMinutes getMonth getNewTextFormat getNextHighestDepth getPan getProgress getProperty getRGB getSeconds getSelected getSelectedText getSize getStyle getStyleNames getSWFVersion getText

238

Kapitel 12: ActionScript-Lexikon

ActionScript-Element Siehe Eintrag


getTextExtent getTextFormat getTextSnapshot getTime getTimer getTimezoneOffset getTransform getURL getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getVersion getVolume getYear globalToLocal goto gotoAndPlay gotoAndStop gt hasAccessibility hasAudio hasAudioEncoder hasChildNodes hasEmbeddedVideo hasMP3 hasPrinting hasScreenBroadcast hasScreenPlayback hasStreamingAudio hasStreamingVideo TextFormat.getTextExtent() TextField.getTextFormat() MovieClip.getTextSnapshot() Date.getTime() getTimer Date.getTimezoneOffset() Color.getTransform(), Sound.getTransform() getURL(), MovieClip.getURL() Date.getUTCDate() Date.getUTCDay() Date.getUTCFullYear() Date.getUTCHours() Date.getUTCMilliseconds() Date.getUTCMinutes() Date.getUTCMonth() Date.getUTCSeconds() getVersion Sound.getVolume() Date.getYear() MovieClip.globalToLocal() gotoAndPlay(), gotoAndStop() gotoAndPlay(), MovieClip.gotoAndPlay() gotoAndStop(), MovieClip.gotoAndStop() gt (grer als - stringspezifisch) System.capabilities.hasAccessibility System.capabilities.hasAudio System.capabilities.hasAudioEncoder XML.hasChildNodes() System.capabilities.hasEmbeddedVideo System.capabilities.hasMP3 System.capabilities.hasPrinting System.capabilities.hasScreenBroadcast System.capabilities.hasScreenPlayback System.capabilities.hasStreamingAudio System.capabilities.hasStreamingVideo

Inhalt des Lexikons

239

ActionScript-Element Siehe Eintrag


hasVideoEncoder height hide hideBuiltInItems hitArea hitTest hitTestTextNearPos HOME hscroll html htmlText ID3 if ifFrameLoaded ignoreWhite implements import indent index indexOf Infinity -Infinity INSERT insertBefore install instanceof int interface isActive isDebugger isDown isFinite isNaN isToggled italic System.capabilities.hasVideoEncoder Camera.height, Stage.height, Video.height Mouse.hide() ContextMenu.hideBuiltInItems() MovieClip.hitArea MovieClip.hitTest() TextSnapshot.hitTestTextNearPos() Key.HOME TextField.hscroll TextField.html TextField.htmlText Sound.ID3 if ifFrameLoaded XML.ignoreWhite implements import TextFormat.indent Camera.index, Microphone.index String.indexOf() Infinity -Infinity Key.INSERT XML.insertBefore() CustomActions.install() instanceof int interface Accessibility.isActive() System.capabilities.isDebugger Key.isDown() isFinite isNaN() Key.isToggled() TextFormat.italic

240

Kapitel 12: ActionScript-Lexikon

ActionScript-Element Siehe Eintrag


join Key language lastChild lastIndexOf le leading LEFT leftMargin length Array.join()

Key-Klasse
System.capabilities.language XML.lastChild String.lastIndexOf() le (kleiner oder gleich - stringspezifisch) TextFormat.leading Key.LEFT TextFormat.leftMargin length, arguments.length, Array.length, String.length, TextField.length _level MovieClip.lineStyle() MovieClip.lineTo() CustomActions.list() Math.LN10 Math.LN2 LoadVars.load(), TextField.StyleSheet.load(), XML.load(), MovieClipLoader.loadClip() LoadVars.loaded, XML.loaded loadMovie(), MovieClip.loadMovie() loadMovieNum() Sound.loadSound() loadVariables(), MovieClip.loadVariables() loadVariablesNum()

level lineStyle lineTo list LN10 LN2 load loadClip loaded loadMovie loadMovieNum loadSound loadVariables loadVariablesNum LoadVars LocalConnection localFileReadDisable localToGlobal log LOG10E LOG2E lt manufacturer Math

LoadVars-Klasse LocalConnection-Klasse
System.capabilities.localFileReadDisable MovieClip.localToGlobal() Math.log() Math.LOG10E Math.LOG2E lt (kleiner als - stringspezifisch) System.capabilities.manufacturer

Math-Klasse

Inhalt des Lexikons

241

ActionScript-Element Siehe Eintrag


max MAX_VALUE maxChars maxhscroll maxscroll mbchr mblength mbord mbsubstring menu message Microphone min MIN_VALUE MMExecute motionLevel motionTimeOut Mouse mouseWheelEnabled moveTo Movieclip MovieClipLoader multiline muted name names NaN ne NEGATIVE_INFINITY NetConnection NetStream new (Operator) newline nextFrame Math.max() Number.MAX_VALUE TextField.maxChars TextField.maxhscroll maxscroll, TextField.maxscroll mbchr mblength mbord mbsubstring Button.menu, MovieClip.menu, TextField.menu Error.message

Microphone-Klasse
Math.min() Number.MIN_VALUE MMExecute() Camera.motionLevel Camera.motionTimeOut

Mouse-Klasse
TextField.mouseWheelEnabled MovieClip.moveTo() MovieClip-Klasse

MovieClipLoader-Klasse
TextField.multiline Camera.muted, Microphone.muted Error.name, Microphone.name Camera.names, Microphone.names NNaN, Number.NaN ne (ungleich - stringspezifisch) Number.NEGATIVE_INFINITY

NetConnection-Klasse NetStream-Klasse
new newline nextFrame(), MovieClip.nextFrame()

242

Kapitel 12: ActionScript-Lexikon

ActionScript-Element Siehe Eintrag


nextScene nextSibling nodeName nodeType nodeValue not null Number Object on onActivity onChanged onClipEvent onClose onConnect onData onDragOut onDragOver onEnterFrame onID3 onKeyDown onKeyUp onKillFocus onLoad nextScene() XML.nextSibling XML.nodeName XML.nodeType XML.nodeValue not null Number(), Number-Klasse

OObject-Klasse, Object()
on() Camera.onActivity, Microphone.onActivity TextField.onChanged onClipEvent() XMLSocket.onClose() XMLSocket.onConnect() LoadVars.onData, MovieClip.onData, XML.onData, XMLSocket.onData() Button.onDragOut, MovieClip.onDragOut Button.onDragOver, MovieClip.onDragOver MovieClip.onEnterFrame Sound.onID3() Button.onKeyDown, Key.onKeyDown, MovieClip.onKeyDown Button.onKeyUp, Key.onKeyUp, MovieClip.onKeyUp Button.onKillFocus, MovieClip.onKillFocus, TextField.onKillFocus LoadVars.onLoad, MovieClip.onLoad, Sound.onLoad(), TextField.StyleSheet.onLoad, XML.onLoad() MovieClipLoader.onLoadComplete() MovieClipLoader.onLoadError() MovieClipLoader.onLoadInit() MovieClipLoader.onLoadProgress() MovieClipLoader.onLoadStart() Mouse.onMouseDown, MovieClip.onMouseDown Mouse.onMouseMove, MovieClip.onMouseMove Mouse.onMouseUp, MovieClip.onMouseUp Mouse.onMouseWheel

onLoadComplete onLoadError onLoadInit onLoadProgress onLoadStart onMouseDown onMouseMove onMouseUp onMouseWheel

Inhalt des Lexikons

243

ActionScript-Element Siehe Eintrag


onPress onRelease onReleaseOutside onResize onRollOut onRollOver onScroller onSelect onSetFocus Button.onPress, MovieClip.onPress Button.onRelease, MovieClip.onRelease Button.onReleaseOutside, MovieClip.onReleaseOutside Stage.onResize Button.onRollOut, MovieClip.onRollOut Button.onRollOver, MovieClip.onRollOver TextField.onScroller ContextMenu.onSelect, ContextMenuItem.onSelect Button.onSetFocus, MovieClip.onSetFocus, Selection.onSetFocus, TextField.onSetFocus Sound.onSoundComplete Camera.onStatus, LocalConnection.onStatus, Microphone.onStatus, NetStream.onStatus, SharedObject.onStatus(), System.onStatus MovieClip.onUnload onUpdate XMLSocket.onXML() or ord System.capabilities.os XML.parentNode TextField.StyleSheet.parseCSS() parseFloat parseInt XML.parseXML() TextField.password NetStream.pause() Key.PGDN Key.PGUP Math.PI System.capabilities.pixelAspectRatio play(), MovieClip.play(), NetStream.play() System.capabilities.playerType Array.pop() Sound.position Number.POSITIVE_INFINITY

onSoundComplete onStatus

onUnload onUpdate onXML or (logisches OR) ord os parentNode parseCSS parseFloat parseInt parseXML password pause PGDN PGUP PI pixelAspectRatio play playerType pop position POSITIVE_INFINITY

244

Kapitel 12: ActionScript-Lexikon

ActionScript-Element Siehe Eintrag


pow prevFrame previousSibling prevScene print printAsBitmap printAsBitmapNum PrintJob printNum private prototype public push quality random rate registerClass removeListener Math.pow() prevFrame(), MovieClip.prevFrame() XML.previousSibling prevScene() print() printAsBitmap() printAsBitmapNum()

PrintJob-Klasse
printNum() private Function.prototype public Array.push() Camera.quality Rrandom, Math.random() Microphone.rate Object.registerClass() Key.removeListener(), Mouse.removeListener(), MovieClipLoader.removeListener(), Selection.removeListener(), Stage.removeListener(), TextField.removeListener() removeMovieClip(), MovieClip.removeMovieClip() XML.removeNode() TextField.removeTextField() TextField.replaceSel() TextField.replaceText() System.capabilities.screenResolutionX System.capabilities.screenResolutionY TextField.restrict return Array.reverse() Key.RIGHT TextFormat.rightMargin Math.round() Stage.scaleMode System.capabilities.screenColor

removeMovieClip removeNode removeTextField replaceSel replaceText resolutionX resolutionY restrict return reverse RIGHT rightMargin round scaleMode screenColor

Inhalt des Lexikons

245

ActionScript-Element Siehe Eintrag


screenDPI screenResolutionX screenResolutionY scroll seek selectable Selection send System.capabilities.screenDPI System.capabilities.screenResolutionX System.capabilities.screenResolutionY Sscroll, TextField.scroll NetStream.seek() TextField.selectable

Selection-Klasse
LoadVars.send(), LocalConnection.send(), PrintJob.send(), XML.send(), XMLSocket.send() LoadVars.sendAndLoad(), XML.sendAndLoad() ContextMenuItem.separatorBefore System.capabilities.serverString set set variable NetStream.setBufferTime() System.setClipboard() Date.setDate() Selection.setFocus() Date.setFullYear() Microphone.setGain() Date.setHours() setInterval() MovieClip.setMask() Date.setMilliseconds() Date.setMinutes() Camera.setMode() Date.setMonth() Camera.setMotionLevel() TextField.setNewTextFormat() Sound.setPan() setProperty Camera.setQuality() Microphone.setRate() Color.setRGB() Date.setSeconds()

sendAndLoad separatorBefore serverString set set variable setBufferTime setClipboard setDate setFocus setFullYear setGain setHours setInterval setMask setMilliseconds setMinutes setMode setMonth setMotionLevel setNewTextFormat setPan setProperty setQuality setRate setRGB setSeconds

246

Kapitel 12: ActionScript-Lexikon

ActionScript-Element Siehe Eintrag


setSelectColor setSelected setSelection setSilenceLevel setStyle setTextFormat setTime setTransform setUseEchoSuppression setUTCDate setUTCFullYear setUTCHours setUTCMilliseconds setUTCMinutes setUTCMonth setUTCSeconds setVolume setYear SharedObject SHIFT (Konstante) shift (Methode) show showMenu showSettings silenceLevel silenceTimeout sin size slice smoothing sort sortOn Sound SPACE TextSnapshot.setSelectColor() TextSnapshot.setSelected() Selection.setSelection() Microphone.setSilenceLevel() TextField.StyleSheet.setStyle() TextField.setTextFormat() Date.setTime() Color.setTransform(), Sound.setTransform() Microphone.setUseEchoSuppression() Date.setUTCDate() Date.setUTCFullYear() Date.setUTCHours() Date.setUTCMilliseconds() Date.setUTCMinutes() Date.setUTCMonth() Date.setUTCSeconds() Sound.setVolume() Date.setYear()

SharedObject-Klasse
Key.SHIFT Array.shift() Mouse.show() Stage.showMenu System.showSettings() Microphone.silenceLevel() Microphone.silenceTimeout() Math.sin() TextFormat.size Array.slice(), String.slice() Video.smoothing Array.sort() Array.sortOn()

Sound-Klasse
Key.SPACE

Inhalt des Lexikons

247

ActionScript-Element Siehe Eintrag


splice split sqrt SQRT1_2 SQRT2 Stage start startDrag static status stop stopAllSounds stopDrag String StyleSheet (Klasse) styleSheet (Eigenschaft) substr substring super swapDepths switch System TAB tabChildren tabEnabled tabIndex tabStops tan target targetPath tellTarget text textColor TextField Array.splice() String.split() Math.sqrt() Math.SQRT1_2 Math.SQRT2

Stage-Klasse
PrintJob.start(), Sound.start() startDrag(), MovieClip.startDrag() static XML.status stop(), MovieClip.stop(), Sound.stop() stopAllSounds() stopDrag(), MovieClip.stopDrag()

String-Klasse, String() TextField.StyleSheet-Klasse


TextField.styleSheet String.substr() substring, String.substring() super MovieClip.swapDepths() switch

System-Klasse
Key.TAB MovieClip.tabChildren Button.tabEnabled, MovieClip.tabEnabled, TextField.tabEnabled Button.tabIndex, MovieClip.tabIndex, TextField.tabIndex TextFormat.tabStops Math.tan() TextFormat.target targetPath tellTarget TextField.text TextField.textColor

TextField-Klasse

248

Kapitel 12: ActionScript-Lexikon

ActionScript-Element Siehe Eintrag


TextFormat textHeight TextSnapshot textWidth this throw time toggleHighQuality toLowerCase toString

TextFormat class
TextField.textHeight

TextSnapshot-Objekt
TextField.textWidth this throw NetStream.time toggleHighQuality() String.toLowerCase() Array.toString(), Boolean.toString(), Date.toString(), Error.toString(), LoadVars.toString, Number.toString(), Object.toString(), XML.toString() String.toUpperCase() trace() Button.trackAsMenu, MovieClip.trackAsMenu true try..catch..finally TextField.type typeof undefined TextFormat.underline unescape CustomActions.uninstall() MovieClipLoader.unloadClip() unloadMovie(), MovieClip.unloadMovie() unloadMovieNum() Array.unshift() Object.unwatch() Key.UP updateAfterEvent() Accessibility.updateProperties() TextFormat.url System.useCodepage Microphone.useEchoSuppression() Button.useHandCursor, MovieClip.useHandCursor

toUpperCase trace trackAsMenu true try type typeof undefined underline unescape uninstall unloadClip unloadMovie unLoadMovieNum unshift unwatch UP updateAfterEvent updateProperties url useCodePage useEchoSuppression useHandCursor

Inhalt des Lexikons

249

ActionScript-Element Siehe Eintrag


UTC valueOf var variable version Video visible void watch while width with wordwrap XML xmlDecl XMLNode XMLSocket Date.UTC() Boolean.valueOf(), Number.valueOf(), Object.valueOf() var TextField.variable System.capabilities.version

Video-Klasse
ContextMenuItem.visible void Object.watch() while Camera.width, Stage.width, Video.width with TextField.wordWrap

XML-Klasse
XML.xmlDecl

XMLNode-Klasse XMLSocket-Klasse

-- (Dekrement)
Verfgbarkeit

Flash Player 4.
Verwendung --ausdruck ausdruck-Parameter

Keine.
Rckgaben

Eine Zahl.
Beschreibung

Operator (arithmetisch); ein unrer Pr-Dekrement- und Post-Dekrement-Operator, der 1 von ausdruck subtrahiert. Die Pr-Dekrement-Form des Operators (--ausdruck) subtrahiert 1 von ausdruck und gibt das Ergebnis zurck. Die Post-Dekrement-Form des Operators (ausdruck--) subtrahiert 1 von ausdruck und gibt den Ausgangswert von ausdruck (das Ergebnis vor der Subtraktion) zurck.

250

Kapitel 12: ActionScript-Lexikon

Beispiel

Die Pr-Dekrement-Form des Operators dekrementiert x zu 2 (x - 1 = 2) und gibt das Ergebnis als y zurck:
x = 3; y = --x; //y ist gleich 2

Die Post-Dekrement-Form des Operators dekrementiert x zu 2 (x - 1 = 2) und gibt den Ausgangswert von x als Ergebnis y zurck:
x = 3; y = x-//y ist gleich 3

++ (Inkrement)
Verfgbarkeit

Flash Player 4.
Verwendung ++ausdruck ausdruck++ Parameter

Keine.
Rckgaben

Eine Zahl.
Beschreibung

Operator (arithmetisch); ein unrer Pr-Inkrement- und Post-Inkrement-Operator, der 1 zu ausdruck addiert. Ausdruck kann eine Variable, ein Element in einem Array oder eine Objekteigenschaft sein. Die Pr-Inkrement-Form des Operators (++ausdruck) addiert 1 zu ausdruck und gibt das Ergebnis zurck. Die Post-Inkrement-Form des Operators (ausdruck++) addiert 1 zu ausdruck und gibt den Ausgangswert von ausdruck (Wert vor der Addition) zurck. Die Pr-Inkrement-Form des Operators inkrementiert x zu 2 (x + 1 = 2) und gibt das Ergebnis als y zurck:
x = 1; y = ++x //y ist gleich 2

Die Post-Dekrement-Form des Operators inkrementiert x zu 2 (x + 1 = 2) und gibt den Ausgangswert von x als Ergebnis y zurck:
x = 1; y = x++; //y ist gleich 1

++ (Inkrement)

251

Beispiel

Im folgenden Beispiel wird ++ als Post-Inkrement-Operator verwendet, um eine while-Schleife fnfmal zu durchlaufen.
i = 0; while(i++ < 5){ trace("Ausfhrung " + i); }

Im folgenden Beispiel wird ++ als Pr-Inkrement-Operator verwendet:


var a = []; var i = 0; while (i < 10) { a.push(++i); } trace(a.join());

Dieses Skript zeigt im Ausgabefenster folgendes Ergebnis an:


1,2,3,4,5,6,7,8,9,10

Im folgenden Beispiel wird ++ als Post-Inkrement-Operator verwendet:


var a = []; var i = 0; while (i < 10) { a.push(i++); } trace(a.join());

Dieses Skript zeigt im Ausgabefenster folgendes Ergebnis an:


0,1,2,3,4,5,6,7,8,9

! (logisches NOT)
Verfgbarkeit

Flash Player 4.
Verwendung !ausdruck Parameter

Keine.
Rckgaben

Ein Boolescher Wert.


Beschreibung

Operator (logisch); kehrt den Booleschen Wert einer Variablen oder eines Ausdrucks um. Wenn ausdruck eine Variable mit dem absoluten oder umgewandelten Wert true ist, besitzt !ausdruck den Wert false. Wenn der Ausdruck x && y den Wert false ergibt, ergibt der Ausdruck !(x && y) den Wert true. Die folgenden Ausdrcke veranschaulichen die Verwendung des Operators !.
!true

gibt false zurck.

252

Kapitel 12: ActionScript-Lexikon

!false Beispiel

gibt true zurck.

Im folgenden Beispiel wird die Variable happy auf false gesetzt. Die if-Bedingung wertet die Bedingung !happy aus. Wenn die Bedingung true ist, schreibt die Aktion trace() einen String in das Ausgabefenster.
happy = false; if (!happy) { trace("dont worry, be happy"); }

!= (Ungleichheit)
Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 != ausdruck2 Parameter

Keine.
Rckgaben

Ein Boolescher Wert.


Beschreibung

Operator (Ungleichheit); prft auf das genaue Gegenteil des Operators ==. Wenn ausdruck1 gleich ausdruck2 ist, ist das Ergebnis false. Wie beim Operator == hngt die Definition von gleich von den verglichenen Datentypen ab.

Zahlen, Strings und Boolesche Werte werden anhand ihres Werts verglichen. Variablen, Objekte, Arrays und Funktionen werden anhand ihrer Referenz verglichen.
Beispiel

Im folgenden Beispiel werden die Ergebnisse des Operators != veranschaulicht.


5 != 8 5 != 5

gibt true zurck gibt false zurck

Im folgenden Beispiel wird die Verwendung des Operators != in einer if-Anweisung veranschaulicht:
a = "David"; b = "Dummkopf" if (a != b){ trace("David ist kein Dummkopf"); } Siehe auch !== (strikte Ungleichheit), == (Gleichheit), === (strikte Gleichheit)

!= (Ungleichheit)

253

!== (strikte Ungleichheit)


Verfgbarkeit

Flash Player 6.
Verwendung ausdruck1 !== ausdruck2 Beschreibung

Operator; prft auf das genaue Gegenteil des Operators ===. Der strikte Ungleichheitsoperator bewirkt das Gleiche wie der Ungleichheitsoperator, es erfolgt jedoch keine Umwandlung der Datentypen. Wenn ausdruck1 gleich ausdruck2 ist und die Datentypen bereinstimmen, ist das Ergebnis false. Wie beim Operator === hngt die Definition von gleich von den verglichenen Datentypen ab.

Zahlen, Strings und Boolesche Werte werden anhand ihres Werts verglichen. Variablen, Objekte, Arrays und Funktionen werden anhand ihrer Referenz verglichen.
Beispiel

Der folgende Code zeigt den Rckgabewert von Operationen mit dem Gleichheits-, strikten Gleichheits- und strikten Ungleichheitsoperator an:
s1 = new String("5"); s2 = new String("5"); s3 = new String("Hallo"); n = new Number(5); b = new Boolean(true); s1 s1 s1 s1 s1 s1 s1 s1 s1 s1 s1 s1 == == == == === === === === !== !== !== !== s2; // true s3; // false n; // true b; // false s2; // true s3; // false n; // false b; // false s2; // false s3; // true n; // true b; // true

Siehe auch != (Ungleichheit), == (Gleichheit), === (strikte Gleichheit)

% (Modulo)
Verfgbarkeit

Flash Player 4. Bei Flash 4-Dateien wird der Operator % in der SWF-Datei zu x - int(x/y) * y erweitert und ist unter Umstnden nicht so schnell und genau wie in neueren Versionen des Flash Players.

254

Kapitel 12: ActionScript-Lexikon

Verwendung ausdruck1 % ausdruck2 Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Operator (arithmetisch); berechnet den Rest einer Division von ausdruck1 durch ausdruck2. Wenn einer der Parameter im ausdruck nicht numerisch ist, versucht der Modulo-Operator, ihn in eine Zahl umzuwandeln. Ausdruck kann eine beliebige Zahl oder ein beliebiger String sein, die bzw. der sich in einen numerischen Wert umwandeln lsst.
Beispiel

Das folgende Beispiel veranschaulicht die Verwendung des Modulo-Operators (%) in Verbindung mit numerischen Werten:
trace (12 % 5); // Rckgabewert: 2 trace (4.3 % 2.1); // Rckgabewert: ca. 0.1

%= (Modulo-Zuweisung)
Verfgbarkeit

Flash Player 4.
Verwendung ausdruck1 %= ausdruck2 Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Operator (zusammengesetzte arithmetische Zuweisung); weist ausdruck1 den Wert von ausdruck1 % ausdruck2 zu. Die folgenden Ausdrcke sind beispielsweise gleichwertig:
x %= y x = x % y Beispiel

Im folgenden Beispiel wird der Wert 4 der Variablen x zugewiesen:


x = 14; y = 5; trace(x %= y); // Rckgabewert: 4

%= (Modulo-Zuweisung)

255

Siehe auch % (Modulo)

& (bitweiser AND-Operator)


Verfgbarkeit

Flash Player 5. In Flash 4 wurde der Operator & zum Verketten von Strings verwendet. Seit Flash 5 ist der Operator & ein bitweises AND. Zum Verketten von Strings werden die Operatoren add und + verwendet. Flash 4-Dateien, die den Operator & verwenden, werden automatisch aktualisiert (Operator wird durch add ersetzt), wenn sie in der Flash-Authoring-Umgebung ab Version 5 geffnet werden.
Verwendung ausdruck1 & ausdruck2 Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Operator (bitweise); wandelt ausdruck1 und ausdruck2 in vorzeichenlose 32-Bit-Ganzzahlen um und fhrt eine Boolesche AND-Operation fr jedes einzelne Bit der ganzzahligen Parameter aus. Das Ergebnis ist eine neue vorzeichenlose 32-Bit-Ganzzahl.

&& (logisches AND)


Verfgbarkeit

Flash Player 4.
Verwendung ausdruck1 && ausdruck2 Parameter

Keine.
Rckgaben

Ein Boolescher Wert.


Beschreibung

Operator (logisch); fhrt fr die Werte eines oder beider Ausdrcke eine Boolesche Operation durch. Wertet ausdruck1 (den Ausdruck links vom Operator) aus und gibt false zurck, wenn der Ausdruck den Wert false ergibt. Wenn ausdruck1 den Wert true ergibt, wird ausdruck2 (der Ausdruck rechts vom Operator) ausgewertet. Wenn ausdruck2 den Wert true ergibt, ist das Endergebnis true; andernfalls ist das Endergebnis false.

256

Kapitel 12: ActionScript-Lexikon

Beispiel

Im folgenden Beispiel wird anhand des Operators && ermittelt, ob ein Spieler das Spiel gewonnen hat. Die Variablen turns und score werden jedesmal aktualisiert, wenn ein Spieler an der Reihe ist bzw. wenn er whrend des Spiels Punkte macht. Das folgende Skript zeigt Sie haben gewonnen! im Ausgabefenster an, wenn der Spieler in drei oder weniger Spielzgen 75 Punkte erreicht:
turns=2; score=77; winner = (turns <= 3) && (score >= 75); if (winner) { trace("Sie haben gewonnen!"); } else { trace("Versuchen Sie es noch einmal!"); }

&= (bitweise AND-Zuweisung)


Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 &= ausdruck2 Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Operator; weist ausdruck1 den Wert von ausdruck1 & ausdruck2 zu. Die folgenden Ausdrcke sind beispielsweise gleichwertig:
x &= y; x = x & y; Beispiel

Im folgenden Beispiel wird der Wert 9 der Variablen x zugewiesen:


x = 15; y = 9; trace(x &= y); // Rckgabewert: 9 Siehe auch & (bitweiser AND-Operator)

() (runde Klammern)
Verfgbarkeit

Flash Player 4.

() (runde Klammern)

257

Verwendung (ausdruck1, ausdruck2) funktion(parameter1,..., parameterN) Parameter ausdruck1, ausdruck2 funktion

Zahlen, Strings, Variablen oder Text.

Die Funktion, die fr den Inhalt der runden Klammern ausgefhrt werden soll.

parameter1...parameterN

Eine Reihe von Parametern, die ausgefhrt werden, bevor die Ergebnisse als Parameter an die Funktion auerhalb der runden Klammern bergeben werden.

Rckgaben

Keine.
Beschreibung

Operator; fhrt eine Gruppierungsoperation mit einem oder mehreren Parametern durch bzw. umgibt einen oder mehrere Parameter und bergibt sie als Parameter an eine Funktion auerhalb der runden Klammern. Verwendung 1: Bestimmt die Reihenfolge, in der die Operatoren im Ausdruck ausgefhrt werden. Runde Klammern setzen die automatische Vorrangreihenfolge auer Kraft und bewirken, dass die Ausdrcke in Klammern zuerst ausgewertet werden. Bei verschachtelten Klammern wird der Inhalt der innersten Klammern vor dem Inhalt der ueren Klammern ausgewertet. Verwendung 2: Umgibt ein oder mehrere Parameter und bergibt sie als Parameter an die Funktion auerhalb der runden Klammern.
Beispiel

Verwendung 1: Die folgenden Anweisungen veranschaulichen die Verwendung von runden Klammern zur Steuerung der Reihenfolge, in der Ausdrcke ausgefhrt werden. Der Wert eines Ausdrucks wird unter der jeweiligen Zeile angezeigt.
trace((2 + 3) * (4 + 5)); // Anzeige: 45 trace(2 + (3 * (4 + 5))); // Anzeige: 29 trace(2 + (3 * 4) + 5); // Anzeige: 19

Verwendung 2: Die folgenden Beispiele veranschaulichen die Verwendung von runden Klammern in Verbindung mit Funktionen:
getDate(); invoice(item, amount); function traceParameter(param){ trace(param); } traceParameter(2*2);

258

Kapitel 12: ActionScript-Lexikon

Siehe auch with

- (Minus)
Verfgbarkeit

Flash Player 4.
Verwendung

(Negation) -ausdruck (Subtraktion) ausdruck1 - ausdruck2


Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Operator (arithmetisch); dient zur Negation oder Subtraktion. Verwendung 1: Als Negation kehrt er das Vorzeichen des numerischen Ausdrucks ausdruck um. Verwendung 2: Als Subtraktion wird eine arithmetische Subtraktion von zwei numerischen Ausdrcken durchgefhrt, wobei ausdruck2 von ausdruck1 subtrahiert wird. Wenn beide Ausdrcke Ganzzahlen sind, ist die Differenz eine Ganzzahl. Wenn einer oder beide Ausdrcke Gleitkommazahlen sind, ist die Differenz eine Gleitkommazahl.
Beispiel

Verwendung 1: Die folgende Anweisung kehrt das Vorzeichen des Ausdrucks 2 + 3 um:
-(2 + 3)

Das Ergebnis ist -5. Verwendung 2: Die folgende Anweisung subtrahiert die Ganzzahl 2 von der Ganzzahl 5:
5 - 2

Das Ergebnis ist die Ganzzahl 3. Verwendung 2: Die folgende Anweisung subtrahiert die Gleitkommazahl 1.5 von der Gleitkommazahl 3.25:
3.25 - 1.5

Das Ergebnis ist die Gleitkommazahl 1.75.

* (Multiplikation)
Verfgbarkeit

Flash Player 4.

* (Multiplikation)

259

Verwendung ausdruck1 * ausdruck2 Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Operator (arithmetisch); multipliziert zwei numerische Ausdrcke. Wenn beide Ausdrcke Ganzzahlen sind, ist das Produkt eine Ganzzahl. Wenn einer oder beide Ausdrcke Gleitkommazahlen sind, ist das Produkt eine Gleitkommazahl.
Beispiel

Verwendung 1: Die folgende Anweisung multipliziert die Ganzzahlen 2 und 3:


2 * 3

Das Ergebnis ist die Ganzzahl 6. Verwendung 2: Die folgende Anweisung multipliziert die Gleitkommazahlen 2.0 und 3.1416:
2.0 * 3.1416

Das Ergebnis ist die Gleitkommazahl 6.2832.

*= (Multiplikationszuweisung)
Verfgbarkeit

Flash Player 4.
Verwendung ausdruck1 *= ausdruck2 Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Operator (zusammengesetzte arithmetische Zuweisung); weist ausdruck1 den Wert von ausdruck1 * ausdruck2 zu. Die folgenden Ausdrcke sind beispielsweise gleichwertig:
x *= y x = x * y Beispiel

Verwendung 1: Im folgenden Beispiel wird der Wert 50 der Variablen x zugewiesen:


x = 5; y = 10;

260

Kapitel 12: ActionScript-Lexikon

trace (x *= y); // Rckgabewert: 50

Verwendung 2: In der zweiten und dritten Zeile des folgenden Beispiels werden die Ausdrcke hinter dem Gleichheitszeichen berechnet und das Ergebnis den Variablen x und y zugewiesen.
i = 5; x = 4 - 6; y = i + 2; trace(x *= y); // Rckgabewert: -14 Siehe auch * (Multiplikation)

, (Komma)
Verfgbarkeit

Flash Player 4.
Verwendung ausdruck1, ausdruck2 Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Operator; wertet ausdruck1 und anschlieend ausdruck2 aus und gibt den Wert von ausdruck2 zurck. Dieser Operator wird hauptschlich in Verbindung mit forSchleifenanweisungen verwendet.
Beispiel

Im folgenden Codebeispiel wird der Komma-Operator verwendet:


var a=1, b=2, c=3;

Dies ist gleichbedeutend mit folgender Schreibweise:


var a=1; var b=2; var c=3;

. (Punkt)
Verfgbarkeit

Flash Player 4.

. (Punkt)

261

Verwendung objekt.eigenschaft_oder_methode instanzname.variable instanzname.unterinstanz.variable Parameter objekt Eine Instanz einer Klasse. Bei dem Objekt kann es sich um eine Instanz einer beliebigen vordefinierten ActionScript-Klasse oder einer benutzerdefinierten Klasse handeln. Dieser Parameter steht immer links vom Punkt-Operator (.). eigenschaft_oder_methode Der Name einer Eigenschaft oder Methode, die einem Objekt zugeordnet ist. Alle gltigen Methoden und Eigenschaften der vordefinierten Klassen sind in den Methoden- und Eigenschaftsbersichten der entsprechenden Klassen aufgefhrt. Dieser Parameter steht immer rechts vom Punkt-Operator (.). instanzname unterinstanz

Der Instanzname eines Movieclips. Die Movieclip-Instanz, die einem anderen Movieclip untergeordnet bzw. in ihm

verschachtelt ist.
variable

Eine Variable in der Zeitleiste des Movieclip-Instanznamens links neben dem PunktOperator (.).

Rckgaben

Keine.
Beschreibung

Operator; wird zur Navigation in Movieclip-Hierarchien verwendet, um auf verschachtelte (untergeordnete) Movieclips, Variablen oder Eigenschaften zuzugreifen. Der Punkt-Operator wird auch zum Testen oder Festlegen der Eigenschaften eines Objekts, zum Ausfhren einer Objektmethode oder zum Erstellen einer Datenstruktur verwendet.
Beispiel

Mit der folgenden Anweisung wird der aktuelle Wert der Variablen haarfarbe im Movieclip person_mc ermittelt:
person_mc.haarfarbe

Dies entspricht der folgenden Syntax in Flash 4:


/person_mc:haarfarbe

: (Typ)
Verfgbarkeit

Flash Player 6.
Verwendung [modifier] [var] variablenname:[typ] function funktionsname():[typ] { ... } function funktionsname(parameter1[:typ], ... , parameterN[:typ]) { ... }

262

Kapitel 12: ActionScript-Lexikon

Parameter variablenname typ

Ein Bezeichner fr eine Variable. Ein Bezeichner fr eine Funktion.

Ein nativer Datentyp, benutzerdefinierter Klassenname oder Schnittstellenname. Ein Bezeichner fr einen Funktionsparameter.

funktionsname parameter Beschreibung

Operator; gibt den Variablentyp, den Funktionsergebnistyp oder den Funktionsparametertyp an. Bei Verwendung in einer Variablendeklaration oder Variablenzuweisung gibt dieser Operator den Typ der Variablen an. Bei Verwendung in einer Funktionsdeklaration oder Funktionsdefinition gibt dieser Operator den Ergebnistyp der Funktion an. Bei Verwendung mit einem Funktionsparameter in einer Funktionsdefinition gibt dieser Operator den erwarteten Variablentyp fr diesen Parameter an. Typisierung ist auf den Kompiliervorgang beschrnkt. Alle Typen werden whrend der Kompilierung berprft, bei einer Diskrepanz wird ein Fehler erzeugt. Weitere Informationen hierzu finden Sie unter Anhang A, Fehlermeldungen, auf Seite 799. Diskrepanzen knnen whrend Zuweisungsoperationen, Funktionsaufrufen und whrend der Dereferenzierung von Klassenelementen mit dem Punktoperator (.) auftreten. Um Typdiskrepanzen zu vermeiden, verwenden Sie die explizite (strikte) Typisierung (siehe Strikte Typisierung auf Seite 42). Zu den verwendbaren Typen gehren alle nativen Objekttypen, Klassen und benutzerdefinierte Schnittstellen sowie Void und Function (die nicht als Objekte vorhanden sind, sondern nur als Typen). Die erkannten nativen Typen sind Array, Boolean, Button, Color, CustomActions, Date, Function, LoadVars, LocalConnection, Microphone, MovieClip, NetConnection, NetStream, Number, Object, SharedObject, Sound, String, TextField, TextFormat, Video, Void, XML, XMLNode und XMLSocket.
Beispiel

Verwendung 1: Im folgenden Beispiel wird eine als public definierte Variable vom Typ String mit dem Namen benutzername deklariert; dieser Variablen wird ein leerer String zugewiesen.
public var benutzername:String = "";

Verwendung 2: Dieses Beispiel zeigt, wie der Parametertyp einer Variablen festgelegt wird. Im folgenden Codebeispiel wird eine Funktion mit dem Namen setDate() definiert, die einen Parameter namens aktuellesDatum vom Typ Date besitzt.
function setDate(aktuellesDatum:Date) { this.date = aktuellesDatum; }

Verwendung 3: Im folgenden Codebeispiel wird eine Funktion namens squareRoot() definiert, die einen Parameter namens wert vom Typ Number besitzt und als Ergebnis die Quadratwurzel von wert, ebenfalls vom Typ Number, zurckgibt.
function squareRoot(wert:Number):Number { return Math.sqrt(wert); }

: (Typ)

263

?: (bedingt)
Verfgbarkeit

Flash Player 4.
Verwendung ausdruck1 ? ausdruck2 : ausdruck3 Parameter ausdruck1 Ein Ausdruck, der einen Booleschen Wert ergibt (in der Regel einen Vergleichsausdruck), wie z. B. x < 5. ausdruck2, ausdruck3 Rckgaben

Werte eines beliebigen Typs.

Keine.
Beschreibung

Operator; weist Flash an, ausdruck1 auszuwerten und den Wert von ausdruck2 zurckzugeben, wenn ausdruck1 den Wert true hat; andernfalls wird der Wert von ausdruck3 zurckgegeben.
Beispiel

Der folgende Ausdruck weist den Wert der Variablen x der Variablen z zu, da ausdruck1 als true ausgewertet wird:
x = 5; y = 10; z = (x < 6) ? x: y; trace (z); // Rckgabewert: 5

/ (Division)
Verfgbarkeit

Flash Player 4.
Verwendung ausdruck1 / ausdruck2 Parameter ausdruck Rckgaben

Eine Zahl oder eine Variable, die als Zahl ausgewertet wird.

Keine.
Beschreibung

Operator (arithmetisch); dividiert ausdruck1 durch ausdruck2. Das Ergebnis der Division ist eine Gleitkommazahl mit doppelter Genauigkeit.

264

Kapitel 12: ActionScript-Lexikon

Beispiel

Die folgende Anweisung dividiert die Gleitkommazahl 22.0 durch 7.0 und zeigt anschlieend das Ergebnis im Ausgabefenster an:
trace(22.0 / 7.0);

Das Ergebnis ist die Gleitkommazahl 3,1429.

// (Kommentartrennzeichen)
Verfgbarkeit

Flash 1.
Verwendung // kommentar Parameter kommentar Rckgaben

Beliebiger Text.

Keine.
Beschreibung

Kommentar; gibt den Beginn eines Skriptkommentars an. Der gesamte Text, der zwischen dem Kommentartrennzeichen // und dem Zeilenendezeichen steht, wird als Kommentar interpretiert und vom ActionScript-Interpreter ignoriert.
Beispiel

In diesem Skript werden Schrgstriche als Kommentartrennzeichen verwendet, um die erste, dritte, fnfte und siebte Zeile als Kommentare auszuweisen:
// X-Position des ballX = ball._x; // Y-Position des ballY = ball._y; // X-Position des batX = bat._x; // Y-Position des batY = bat._y; Siehe auch /* (Kommentartrennzeichen) Movieclips Ball festlegen Movieclips Ball festlegen Movieclips Bat festlegen Movieclips Bat festlegen

/* (Kommentartrennzeichen)
Verfgbarkeit

Flash Player 5.
Verwendung /* kommentar */ /* Kommentar

/* (Kommentartrennzeichen)

265

Kommentar */ Parameter kommentar Rckgaben

Beliebiger Text.

Keine.
Beschreibung

Kommentar; gibt eine oder mehrere Skriptkommentarzeilen an. Der gesamte Text, der zwischen dem einleitenden Kommentarzeichen /* und dem abschlieenden Kommentarzeichen */ steht, wird als Kommentar interpretiert und vom ActionScript-Interpreter ignoriert. Die erste Syntax dient zur Kennzeichnung einzeiliger Kommentare. Die zweite Syntax dient zur Kennzeichnung mehrzeiliger Kommentare. Wenn Sie bei diesem Kommentartrennzeichen das abschlieende */ auslassen, wird eine Fehlermeldung zurckgegeben.
Beispiel

Im folgenden Beispiel werden Kommentartrennzeichen am Anfang des Skripts verwendet:


/* Festlegen der X- und Y-Positionen der Movieclips Ball und Bat */ ballX = ball._x; ballY = ball._y; batX = bat._x; batY = bat._y; Siehe auch // (Kommentartrennzeichen)

/= (Divisionszuweisung)
Verfgbarkeit

Flash Player 4.
Verwendung ausdruck1 /= ausdruck2 Parameter ausdruck1,ausdruck2 Rckgaben

Eine Zahl oder eine Variable, die als Zahl ausgewertet wird.

Keine.
Beschreibung

Operator (zusammengesetzte arithmetische Zuweisung); weist ausdruck1 den Wert von ausdruck1 / ausdruck2 zu. Die folgenden Anweisungen sind beispielsweise gleichwertig:
x /= y x = x / y

266

Kapitel 12: ActionScript-Lexikon

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung des Operators /= in Verbindung mit Variablen und Zahlen:
x = 10; y = 2; x /= y; // x hat nun den Wert 5

[] (Arrayzugriff)
Verfgbarkeit

Flash Player 4.
Verwendung mein_array = ["a0", a1,...aN] meinMehrdimensionales_array = [["a0",...aN],...["a0",...aN]] mein_array[E] = wert meinMehrdimensionales_array[E][E] = wert objekt["wert"] Parameter mein_array

Der Name eines Arrays. Elemente in einem Array. Der Name eines simulierten mehrdimensionalen Arrays.

a0, a1,...aN

meinMehrdimensionales_array E

Die Nummer (bzw. der Index) eines Elements in einem Array. Der Name eines Objekts.

objekt wert

Ein String oder Ausdruck, der als String ausgewertet wird und eine Eigenschaft des Objekts bezeichnet.

Rckgaben

Keine.
Beschreibung

Operator; initialisiert ein neues Array oder ein neues multidimensionales Array mit den angegebenen Elementen (a0 usw.) bzw. greift auf Elemente in einem Array zu. Mit dem ArrayZugriffsoperator knnen Namen von Instanzen, Variablen und Objekten dynamisch gesetzt und abgerufen werden. Sie knnen den Operator auch zum Zugriff auf Objekteigenschaften verwenden. Verwendung 1: Ein Array ist ein Objekt, dessen Eigenschaften (Elemente) durch eine Zahl (den so genannten Index) angegeben werden. Beim Erstellen eines Arrays umgeben Sie die Elemente mit Array-Zugriffsoperatoren (eckigen Klammern). Ein Array kann verschiedene Arten von Elementen enthalten. Das folgende Array namens mitarbeiter weist beispielsweise drei Elemente auf: Das erste ist eine Zahl, und das zweite und dritte sind Strings in doppelten Anfhrungszeichen.
mitarbeiter = [15, "Barbara", "Erich"];

[] (Arrayzugriff)

267

Verwendung 2: Sie knnen eckige Klammern ineinander verschachteln, um mehrdimensionale Arrays zu simulieren. Der folgende Code erstellt ein Array namens ticTacToe mit drei Elementen; jedes Element ist ebenfalls ein Array mit drei Elementen.
ticTacToe = [[1,2,3],[4,5,6],[7,8,9]]; // "Debuggen" > "Variablen auflisten" im Filmtestmodus whlen // um eine Liste der Array-Elemente zu sehen

Verwendung 3: Sie knnen den Index eines jeden Elements mit eckigen Klammern umgeben, damit Sie direkt darauf zugreifen knnen. Auf diese Weise knnen Sie ein neues Element zu einem Array hinzufgen oder den Wert eines vorhandenen Elements ndern oder abrufen. Das erste Element in einem Array ist immer 0:
mein_array[0] = 15; mein_array[1] = "Hallo"; mein_array[2] = true;

Anhand von eckigen Klammern knnen Sie wie folgt ein viertes Element hinzufgen:
mein_array[3] = "Georg";

Verwendung 4: Sie knnen eckige Klammern verwenden, um auf ein Element in einem mehrdimensionalen Array zuzugreifen. Der erste Satz Klammern gibt das Element im ursprnglichen Array an, der zweite Satz das Element im verschachtelten Array. Die folgende Codezeile zeigt die Zahl 6 im Ausgabefenster an:
ticTacToe = [[1,2,3],[4,5,6],[7,8,9]]; trace(ticTacToe[1][2]); // Rckgabewert: 6

Verwendung 5: Sie knnen den Array-Zugriffsoperator anstelle der Funktion eval verwenden, um Werte fr Movieclip-Namen oder eine beliebige Objekteigenschaft dynamisch einzustellen und abzurufen.
name["mc" + i] = "linke_Ecke"; Beispiel

Verwendung 1: Die folgenden Codebeispiele veranschaulichen zwei unterschiedliche Mglichkeiten zum Erstellen eines neuen leeren Array-Objekts. In der ersten Zeile werden eckige Klammern verwendet.
mein_array =[]; mein_array = new Array();

Verwendung 1 und 2: Im folgenden Beispiel wird ein Array namens mitarbeiter_array erstellt. Mit Hilfe der Aktion trace() werden die Elemente an das Ausgabefenster gesendet. In der vierten Zeile wird ein Element im Array gendert, und in der fnften Zeile wird das modifizierte Array an das Ausgabefenster gesendet:
mitarbeiter_array = ["Barbara", "Georg", "Maria"]; trace(mitarbeiter_array); // Barbara, Georg, Maria mitarbeiter_array[2]="Thomas"; trace(mitarbeiter_array); // Barbara, Georg, Thomas

268

Kapitel 12: ActionScript-Lexikon

Verwendung 3: Im folgenden Beispiel wird der Ausdruck in eckigen Klammern ("teil" + i) ausgewertet und das Ergebnis als Name der aus dem Movieclip mein_mc abzurufenden Variablen verwendet. Die Variable i muss sich in der gleichen Zeitleiste befinden wie die Schaltflche. Ist die Variable i beispielsweise gleich 5, wird der Wert der Variablen teil5 im Movieclip mein_mc im Ausgabefenster angezeigt:
on(release) { x = mein_mc["teil"+i]; trace(x); }

Verwendung 3: Im folgenden Beispiel wird der Ausdruck in eckigen Klammern ausgewertet und das Ergebnis als Name der aus dem Movieclip name_mc abzurufenden Variablen verwendet.
name_mc["A" + i];

Wenn Sie mit der ActionScript-Schrgstrichsyntax in Flash 4 vertraut sind, knnen Sie dies auch mit Hilfe der Funktion eval erreichen:
eval("name.A" & i);

Verwendung 3: Der Array-Zugriffsoperator kann auch auf der linken Seite einer Zuweisungsanweisung eingesetzt werden, um die Namen von Instanzen, Variablen und Objekten dynamisch einzustellen:
name[index] = "Gerhard"; Siehe auch

Array-Klasse, OObject-Klasse, eval()

^ (bitweises XOR)
Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 ^ ausdruck2 Parameter ausdruck1,ausdruck2 Rckgaben

Beliebige Zahl.

Keine.
Beschreibung

Operator (bitweise); wandelt ausdruck1 und ausdruck2 in vorzeichenlose 32-Bit-Ganzzahlen um und gibt eine 1 an jeder Bit-Position zurck, an der die entsprechenden Bits in ausdruck1 oder ausdruck2 (jedoch nicht in beiden) 1 sind.
Beispiel

Im folgenden Beispiel wird der bitweise XOR-Operator fr die Dezimalzahlen 15 und 9 verwendet und das Ergebnis der Variablen x zugewiesen.
// 15 dezimal = 1111 binr // 9 dezimal = 1001 binr

^ (bitweises XOR)

269

x = 15 ^ 9 trace(x) // 1111 ^ 1001 = 0110 // Rckgabewert: 6 dezimal( = 0110 binr)

^= (bitweise XOR-Zuweisung)
Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 ^= ausdruck2 Parameter ausdruck1,ausdruck2 Rckgaben

Ganzzahlen und Variablen.

Keine.
Beschreibung

Operator (zusammengesetzte bitweise Zuweisung); weist ausdruck1 den Wert von ausdruck1 ^ ausdruck2 zu. Die folgenden Anweisungen sind beispielsweise gleichwertig:
x ^= y x = x ^ y Beispiel

Das folgende Beispiel stellt eine ^=-Operation dar.


// 15 dezimal = 1111 binr x = 15; // 9 dezimal = 1001 binr y = 9; trace(x ^= y); //Rckgabe: 6 dezimal ( = 0110 binr) Siehe auch ^ (bitweises XOR)

{} (Objektinitialisierung)
Verfgbarkeit

Flash Player 5.
Verwendung objekt = {name1: wert1, name2: wert2,...nameN: wertN } Parameter objekt

Das zu erstellende Objekt. Die Namen der Eigenschaften. Die entsprechenden Werte fr die name-Eigenschaften.

name1,2,...N wert1,2,...N

270

Kapitel 12: ActionScript-Lexikon

Rckgaben

Keine.
Beschreibung

Operator; erstellt ein neues Objekt und initialisiert es mit den angegebenen Eigenschaftspaaren aus name und wert. Die Verwendung dieses Operators entspricht dem Aufruf von new Object und dem anschlieendem Zuweisen der Eigenschaftspaare mit Hilfe des Zuweisungsoperators. Der Prototyp des neu erstellten Objekts wird allgemein als Object-Objekt bezeichnet.
Beispiel

In der ersten Zeile des folgenden Codes wird mit dem Objektinitialisierungsoperator ein leeres Objekt erstellt; in der zweiten Zeile wird mit einer Konstruktorfunktion ein neues Objekt erstellt.
object = {}; object = new Object();

Im folgenden Beispiel wird ein Objekt namens konto erstellt, und die Eigenschaften name, strasse, ort, land, plz und kontostand werden mit den entsprechenden Werten initialisiert.
konto = { name: "Betty Schmidt", strasse: "Haupstr. 123", ort: "Bedorf", land: "Deutschland", plz: "12345", kontostand: "1000" };

Im folgenden Beispiel wird die Verschachtelung von Array- und Objektinitialisierung gezeigt.
person = { name: "Regina Veist", kinder: [ "Renate", "Carla", "Pia"] };

Im folgenden Beispiel werden die Informationen aus dem obenstehenden Beispiel verwendet und anhand von Konstruktorfunktionen die gleichen Ergebnisse erzielt.
person = new Object(); person.name = 'Regina Veist'; person.kinder = new Array(); person.kinder[0] = 'Renate'; person.kinder[1] = 'Carla'; person.kinder[2] = 'Pia'; Siehe auch [] (Arrayzugriff), new,

OObject-Klasse

| (bitweises OR)
Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 | ausdruck2 Parameter ausdruck1,ausdruck2 Rckgaben

Beliebige Zahl.

Keine.

| (bitweises OR)

271

Beschreibung

Operator (bitweise); wandelt ausdruck1 und ausdruck2 in vorzeichenlose 32-Bit-Ganzzahlen um und gibt an jeder Bit-Position eine 1 zurck, an der die entsprechenden Bits in ausdruck1 oder ausdruck2 1 sind.
Beispiel

Das folgende Beispiel stellt eine bitweise OR-Operation dar.


// 15 dezimal = 1111 binr x = 15; // 9 dezimal = 1001 binr y = 9; trace(x | y); // 1111 | 0011 = 1111 // Rckgabe: 15 dezimal (= 1111 binr)

|| (logisches OR)
Verfgbarkeit

Flash Player 4.
Verwendung ausdruck1 || ausdruck2 Parameter ausdruck1,ausdruck2

Ein Boolescher Wert oder ein Ausdruck, der sich in einen Booleschen

Wert umwandeln lsst.


Rckgaben

Ein Boolescher Wert.


Beschreibung

Operator (logisch); wertet ausdruck1 und ausdruck2 aus. Das Ergebnis ist true, wenn einer oder beide Ausdrcke den Wert true haben; das Ergebnis ist nur dann false, wenn beide Ausdrcke den Wert false haben. Sie knnen den logischen OR-Operator mit einer beliebigen Anzahl von Operanden verwenden. Wenn einer der Operanden true ergibt, lautet das Ergebnis ebenfalls true. Bei nicht-Booleschen Ausdrcken weist der logische OR-Operator Flash an, den linken Ausdruck auszuwerten; wenn dieser in true umgewandelt werden kann, ist das Ergebnis true. Andernfalls wertet er den rechten Ausdruck aus, und das Ergebnis ist der Wert dieses Ausdrucks.
Beispiel

Verwendung 1: Im folgenden Beispiel wird der Operator || in einer if-Anweisung verwendet. Der zweite Ausdruck wird als true ausgewertet, sodass das Endergebnis true lautet.
x = 10 y = 250 start = false if (x > 25 || y > 200 || start){ trace("Test logisches OR bestanden"); }

272

Kapitel 12: ActionScript-Lexikon

Verwendung 2: Das folgende Beispiel zeigt, wie ein nicht-Boolescher Ausdruck zu einem unerwarteten Ergebnis fhren kann. Wenn der Ausdruck auf der linken Seite in true umgewandelt werden kann, wird dieses Ergebnis zurckgegeben, ohne den Ausdruck auf der rechten Seite umzuwandeln.
function fx1(){ trace ("fx1 aufgerufen"); return true; } function fx2(){ trace ("fx2 aufgerufen"); return true; } if (fx1() || fx2()){ trace ("IF-Anweisung aufgerufen"); } // Folgendes wird an das Ausgabefenster gesendet: // fx1 aufgerufen // IF-Anweisung aufgerufen

|= (bitweise OR-Zuweisung)
Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 |= ausdruck2 Parameter ausdruck1,ausdruck2 Rckgaben

Beliebige Zahl oder Variable.

Keine.
Beschreibung ausdruck2.

Operator (zusammengesetzte bitweise Zuweisung); weist ausdruck1 den Wert von ausdruck1 | zu. Die folgenden Anweisungen sind beispielsweise gleichwertig:
x |= y; x = x | y;

Beispiel

Im folgenden Beispiel wird der Operator |= verwendet:


// 15 dezimal = 1111 binr x = 15; // 9 dezimal = 1001 binr y = 9; trace(x |= y); // 1111 |= 1001 // Rckgabe: 15 dezimal (= 1111 binr) Siehe auch | (bitweises OR)

|= (bitweise OR-Zuweisung)

273

~ (bitweises NOT)
Verfgbarkeit

Flash Player 5.
Verwendung ~ ausdruck Parameter ausdruck Rckgaben

Beliebige Zahl.

Keine.
Beschreibung

Operator (bitweise); wandelt den ausdruck in eine vorzeichenlose 32-Bit-Ganzzahl um und invertiert die Bits dann. Bei einer bitweisen NOT-Operation wird das Vorzeichen einer Zahl gendert und 1 subtrahiert.
Beispiel

Im folgenden Beispiel wird die Durchfhrung einer bitweisen NOT-Operation fr eine Variable veranschaulicht:
a = 0; trace ("wenn a = 0, ~a = "+~a); // wenn a = 0, ~a = -1 a = 1; trace ("wenn a = 0, ~a = "+~a); // wenn a = 0, ~a = -2 // deshalb ~0=-1 und ~1=-2

+ (Addition)
Verfgbarkeit

Flash Player 4; Flash Player 5. In Flash 5 und hher ist + je nach Datentyp des Parameters ein numerischer Operator oder ein Verknpfungsoperator fr Strings. In Flash 4 ist + ausschlielich ein numerischer Operator. Flash 4-Dateien, die in der Flash-Authoring-Umgebung ab Version 5 geffnet werden, werden konvertiert, um die Datentypintegritt zu gewhrleisten. Im Folgenden wird die Konvertierung einer Flash 4-Datei mit numerischem Qualittsvergleich veranschaulicht. Flash 4-Datei:
x + y

Konvertierte Datei aus Flash ab Version 5:


Number(x) + Number(y) Verwendung ausdruck1 + ausdruck2 Parameter ausdruck1,ausdruck2

Beliebige Zahl oder beliebiger String.

274

Kapitel 12: ActionScript-Lexikon

Rckgaben

Keine.
Beschreibung

Operator; addiert numerische Ausdrcke oder verkettet Strings. Wenn ein Ausdruck ein String ist, werden alle Ausdrcke in Strings umgewandelt und verkettet. Wenn beide Ausdrcke Ganzzahlen sind, ist die Summe eine Ganzzahl; wenn ein oder beide Ausdrcke Gleitkommazahlen sind, ist die Summe eine Gleitkommazahl.
Beispiel

Verwendung 1: Im folgenden Beispiel werden zwei Strings verkettet und das Ergebnis im Ausgabefenster angezeigt:
name = "Cola"; instrument = "Trommel"; trace (name + " spielt " + instrument);

Verwendung 2: Mit dynamischen und Eingabetextfeldern verknpfte Variablen sind Strings. Im folgenden Beispiel ist die Variable einzahlung ein Eingabetextfeld auf der Bhne. Wenn ein Benutzer einen Einzahlungsbetrag eingibt, versucht das Skript, einzahlung zu alterKontostand zu addieren. Da einzahlung dem Datentyp String angehrt, verkettet das Skript die Variablenwerte (d. h. kombiniert sie zu einer einzigen Zeichenfolge), statt sie zu addieren.
alterKontostand = 1345.23; aktuellerKontostand = einzahlung + alterKontostand; trace (aktuellerKontostand);

Wenn der Benutzer beispielsweise 475 ins Einzahlungstextfeld eingibt, sendet die Aktion trace() den Wert 4751345.23 ans Ausgabefenster. Um dieses Problem zu beheben, verwenden Sie die Funktion Number(), um den String in eine Zahl umzuwandeln:
aktuellerKontostand = Number(einzahlung) + alterKontostand;

Verwendung 3: Die folgende Anweisung addiert die Ganzzahlen 2 und 3 und zeigt anschlieend als Ergebnis die Ganzzahl 5 im Ausgabefenster an:
trace (2 + 3);

Die folgende Anweisung addiert die Gleitkommazahlen 2.5 und 3.25 und zeigt anschlieend als Ergebnis die Gleitkommazahl 5.75 im Ausgabefenster an:
trace (2.5 +3.25); Siehe auch _accProps

+= (Additionszuweisung)
Verfgbarkeit

Flash Player 4.

+= (Additionszuweisung)

275

Verwendung ausdruck1 += ausdruck2 Parameter ausdruck1,ausdruck2 Rckgaben

Beliebige Zahl oder beliebiger String.

Keine.
Beschreibung

Operator (zusammengesetzte arithmetische Zuweisung); weist ausdruck1 den Wert von ausdruck1 + ausdruck2 zu. Die folgenden Anweisungen sind beispielsweise gleichwertig:
x += y; x = x + y;

Dieser Operator fhrt auch Stringverkettungen durch. Alle Regeln des Additionsoperators (+) gelten auch fr den Additionszuweisungsoperator (+=).
Beispiel

Das folgende Beispiel veranschaulicht die numerische Verwendung des Operators +=:
x = 5; y = 10; x += y; trace(x); // x gibt 15 zurck

Das folgende Beispiel wendet den Operator += auf einen Stringausdruck an und schreibt Ich heie Georg in das Ausgabefenster:
x = "Ich heie " x += "Georg" trace(x) // gibt "Ich heie Georg" zurck Siehe auch + (Addition)

< (kleiner als)


Verfgbarkeit

Flash Player 4; Flash Player 5. In Flash 5 und hher ist < (kleiner als) ein Vergleichsoperator, der unterschiedliche Datentypen verarbeiten kann. In Flash 4 ist < ein numerischer Operator. Flash 4-Dateien, die in der Flash-Authoring-Umgebung ab Version 5 geffnet werden, werden konvertiert, um die Datentypintegritt zu gewhrleisten. Im Folgenden wird die Konvertierung einer Flash 4-Datei mit numerischem Qualittsvergleich dargestellt. Flash 4-Datei:
x < y

Konvertierte Datei aus Flash ab Version 5:


Number(x) < Number(y)

276

Kapitel 12: ActionScript-Lexikon

Verwendung ausdruck1 < ausdruck2 Parameter ausdruck1,ausdruck2 Beschreibung

Beliebige Zahl oder beliebiger String.

Operator (Vergleich); vergleicht zwei Ausdrcke und gibt true zurck, wenn ausdruck1 gleich ausdruck2 ist. Wenn ausdruck1 grer oder gleich ausdruck2 ist, gibt der Operator false zurck. Stringausdrcke werden in alphabetischer Reihenfolge ausgewertet; Grobuchstaben haben Vorrang vor Kleinbuchstaben.
Beispiel

Die folgenden Beispiele veranschaulichen die Rckgabewerte true und false bei Zahlen- und Stringvergleichen:
3 < 10; // true 10 < 3; // false "Anna" < "Jakob"; // true "Jakob" < "Anna"; // false "11" < "3"; // true "11" < 3; // numerischer Vergleich // false "C" < "abc"; // false "A" < "a"; // true

<< (bitweise Verschiebung nach links)


Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 << ausdruck2 Parameter ausdruck1

Eine Zahl oder ein Ausdruck, die bzw. der bitweise nach links verschoben werden

soll.

<< (bitweise Verschiebung nach links)

277

ausdruck2 Eine Zahl oder ein Ausdruck, die bzw. der in eine Ganzzahl von 0 bis 31 umgewandelt werden kann. Rckgaben

Keine.
Beschreibung

Operator (bitweise); wandelt ausdruck1 und ausdruck2 in 32-Bit-Ganzzahlen um und verschiebt alle Bits in ausdruck1 um die Anzahl von Stellen nach links, die durch die Ganzzahl angegeben wird, die sich aus der Umwandlung von ausdruck2 ergibt. Die Bit-Positionen, die in Folge dieser Operation leer werden, werden mit 0 aufgefllt. Das Verschieben eines Werts um eine Stelle nach links entspricht einer Multiplikation mit 2.
Beispiel

Im folgenden Beispiel wird die Ganzzahl 1 um zehn Bit nach links verschoben:
x = 1 << 10

Das Ergebnis dieser Operation lautet x = 1024. Dies errechnet sich wie folgt: 1 dezimal ist gleich 1 binr, 1 binr um 10 nach links verschoben ist 10000000000 binr, und 10000000000 binr ist 1024 dezimal. Im folgenden Beispiel wird die Ganzzahl 7 um acht Bit nach links verschoben:
x = 7 << 8

Das Ergebnis dieser Operation lautet x = 1792. Dies errechnet sich wie folgt: 7 dezimal ist gleich 111 binr, 111 binr um 8 nach links verschoben ist 11100000000 binr, und 11100000000 binr ist 1792 dezimal.
Siehe auch >>= (bitweise Verschiebung nach rechts und Zuweisung), >> (bitweise Verschiebung nach rechts), <<= (bitweise Verschiebung nach links und Zuweisung)

<<= (bitweise Verschiebung nach links und Zuweisung)


Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 <<= ausdruck2 Parameter ausdruck1

Eine Zahl oder ein Ausdruck, die bzw. der bitweise nach links verschoben werden

soll.
ausdruck2 Eine Zahl oder ein Ausdruck, die bzw. der in eine Ganzzahl von 0 bis 31 umgewandelt werden kann. Rckgaben

Keine.

278

Kapitel 12: ActionScript-Lexikon

Beschreibung

Operator (zusammengesetzte bitweise Zuweisung); dieser Operator fhrt eine bitweise Verschiebung nach links durch und speichert den Inhalt als Ergebnis in ausdruck1. Die folgenden beiden Ausdrcke sind gleichwertig:
A <<= B A = (A << B) Siehe auch << (bitweise Verschiebung nach links), >>= (bitweise Verschiebung nach rechts und Zuweisung), >> (bitweise Verschiebung nach rechts)

<= (kleiner oder gleich)


Verfgbarkeit

Flash Player 4. Flash 4-Datei:


x <= y

Konvertierte Datei aus Flash ab Version 5:


Number(x) <= Number(y) Verwendung ausdruck1 <= ausdruck2 Parameter ausdruck1,ausdruck2 Rckgaben

Beliebige Zahl oder beliebiger String.

Ein Boolescher Wert.


Beschreibung

Operator (Vergleich); vergleicht zwei Ausdrcke und gibt true zurck, wenn ausdruck1 kleiner oder gleich ausdruck2 ist. Wenn ausdruck1 grer als ausdruck2 ist, gibt der Operator false zurck. Stringausdrcke werden in alphabetischer Reihenfolge ausgewertet; Grobuchstaben haben Vorrang vor Kleinbuchstaben. In Flash 5 und hheren Versionen ist <= (kleiner oder gleich) ein Vergleichsoperator, der unterschiedliche Datentypen verarbeiten kann. In Flash 4 ist <= ein numerischer Operator. Flash 4-Dateien, die in der Flash-Authoring-Umgebung ab Version 5 geffnet werden, werden konvertiert, um die Datentypintegritt zu gewhrleisten. Im Folgenden wird die Konvertierung einer Flash 4-Datei mit numerischem Qualittsvergleich dargestellt.
Beispiel

Die folgenden Beispiele veranschaulichen die Ergebnisse true und false bei Zahlen- und Stringvergleichen:
5 <= 10; // true 2 <= 2;

<= (kleiner oder gleich)

279

// true 10 <= 3; // false "Anna" <= "Jakob"; // true "Jakob" <= "Anna"; // false "11" <= "3"; // true "11" <= 3; // numerischer Vergleich // false "C" <= "abc"; // false "A" <= "a"; // true

<> (Ungleichheit)
Verfgbarkeit

Flash 2.
Verwendung ausdruck1 <> ausdruck2 Parameter ausdruck1,ausdruck2

Zahlen, Strings, Boolesche Werte, Variablen, Objekte, Arrays oder

Funktionen.
Rckgaben

Ein Boolescher Wert.


Beschreibung

Operator (Ungleichheit); prft auf das genaue Gegenteil des Operators ==. Wenn ausdruck1 gleich ausdruck2 ist, ist das Ergebnis false. Wie beim Operator == hngt die Definition von gleich von den verglichenen Datentypen ab.

Zahlen, Strings und Boolesche Werte werden anhand ihres Werts verglichen. Variablen, Objekte, Arrays und Funktionen werden anhand ihrer Referenz verglichen.
Dieser Operator gilt seit Flash 5 als veraltet. Macromedia empfiehlt stattdessen die Verwendung des neuen Operators !=.
Siehe auch != (Ungleichheit)

280

Kapitel 12: ActionScript-Lexikon

= (Zuweisung)
Verfgbarkeit

Flash Player 4. Flash 4-Datei:


x = y

Konvertierte Datei aus Flash ab Version 5:


Number(x) == Number(y) Verwendung ausdruck1 = ausdruck2 Parameter ausdruck1 ausdruck2 Rckgaben

Eine Variable, ein Array-Element oder eine Objekteigenschaft. Ein Wert eines beliebigen Typs.

Keine.
Beschreibung

Operator; weist der Variablen, dem Array-Element oder der Eigenschaft in ausdruck1 den Typ von ausdruck2 (dem rechten Parameter) zu. In Flash 5 und hheren Versionen ist = ein Zuweisungsoperator, und der Operator == wird zur Auswertung von Gleichheit verwendet. In Flash 4 ist = ein numerischer Gleichheitsoperator. Flash 4-Dateien, die in der Flash-Authoring-Umgebung ab Version 5 geffnet werden, werden konvertiert, um die Datentypintegritt zu gewhrleisten.
Beispiel

Im folgenden Beispiel wird der Zuweisungsoperator fr die Zuweisung des Datentyps Number zur Variablen x verwendet:
x = 5

Im folgenden Beispiel wird der Zuweisungsoperator fr die Zuweisung des Datentyps String zur Variablen x verwendet:
x = "Hallo" Siehe auch == (Gleichheit)

-= (Subtraktionszuweisung)
Verfgbarkeit

Flash Player 4.
Verwendung ausdruck1 -= ausdruck2

-= (Subtraktionszuweisung)

281

Parameter ausdruck1,ausdruck2 Rckgaben

Eine Zahl oder ein Ausdruck, die bzw. der als Zahl ausgewertet wird.

Keine.
Beschreibung

Operator (zusammengesetzte arithmetische Zuweisung); weist ausdruck1 den Wert von expression1 - expression2 zu. Die folgenden Anweisungen sind beispielsweise gleichwertig:
x -= y; x = x - y;

Stringausdrcke mssen in Zahlen umgewandelt werden; andernfalls wird NaN (Not a Number, keine Zahl) zurckgegeben.
Beispiel

Verwendung 1: Im folgenden Beispiel wird der Operator -= verwendet, um 10 von 5 zu subtrahieren und das Ergebnis der Variablen x zuzuweisen.
x = 5; y = 10; x -= y trace(x); // Rckgabewert: -5

Verwendung 2: Das folgende Beispiel veranschaulicht die Umwandlung von Strings in Zahlen:
x = "5"; y = "10"; x -= y; trace(x); // Rckgabewert: -5

== (Gleichheit)
Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 == ausdruck2 Parameter ausdruck1,ausdruck2

Zahlen, Strings, Boolesche Werte, Variablen, Objekte, Arrays oder

Funktionen.
Rckgaben

Ein Boolescher Wert.


Beschreibung

Operator (Gleichheit); prft zwei Ausdrcke auf Gleichheit. Das Ergebnis ist true, wenn die Ausdrcke gleich sind. Die Definition von gleich hngt vom Datentyp des Parameters ab:

282

Kapitel 12: ActionScript-Lexikon

Zahlen und Boolesche Werte werden anhand ihres Werts verglichen und gelten als gleich,
wenn sie denselben Wert haben.

Stringsausdrcke sind gleich, wenn sie dieselbe Anzahl von Zeichen enthalten und die Zeichen
identisch sind. Variablen, Objekte, Arrays und Funktionen werden anhand ihrer Referenz verglichen. Zwei Variablen sind gleich, wenn sie auf dasselbe Objekt, denselben Array oder dieselbe Funktion verweisen. Zwei separate Arrays gelten nie als gleich, selbst wenn sie dieselbe Anzahl von Elementen aufweisen.

Beispiel

Verwendung 1: Im folgenden Beispiel wird der Operator == in einer if-Anweisung verwendet:


a = "David" , b = "David"; if (a == b){ trace("David ist David"); }

Verwendung 2: In den folgenden Beispielen sehen Sie die Ergebnisse von Operationen, die gemischte Datentypen vergleichen:
x = "5"; y = "5"; trace(x == y); // true x = "5"; y = "66"; trace(x == y); // false x = "chris"; y = "stefan"; trace(x == y); // false Siehe auch != (Ungleichheit), === (strikte Gleichheit), !== (strikte Ungleichheit)

=== (strikte Gleichheit)


Verfgbarkeit

Flash Player 6.
Verwendung ausdruck1 === ausdruck2 Rckgaben

Ein Boolescher Wert.


Beschreibung

Operator; berprft zwei Ausdrcke auf Gleichheit. Der strikte Gleichheitsoperator bewirkt das Gleiche wie der Gleichheitsoperator, es erfolgt jedoch keine Umwandlung der Datentypen. Das Ergebnis ist true, wenn die Ausdrcke, einschlielich Datentypen, gleich sind. Die Definition von gleich hngt vom Datentyp des Parameters ab:

=== (strikte Gleichheit)

283

Zahlen und Boolesche Werte werden anhand ihres Werts verglichen und gelten als gleich,
wenn sie denselben Wert haben.

Stringsausdrcke sind gleich, wenn sie dieselbe Anzahl von Zeichen enthalten und die Zeichen
identisch sind. Variablen, Objekte, Arrays und Funktionen werden anhand ihrer Referenz verglichen. Zwei Variablen sind gleich, wenn sie auf dasselbe Objekt, denselben Array oder dieselbe Funktion verweisen. Zwei separate Arrays gelten nie als gleich, selbst wenn sie dieselbe Anzahl von Elementen aufweisen.

Beispiel

Der folgende Code zeigt den Rckgabewert von Operationen mit dem Gleichheits-, strikten Gleichheits- und strikten Ungleichheitsoperator an:
s1 = new String("5"); s2 = new String("5"); s3 = new String("Hallo"); n = new Number(5); b = new Boolean(true); s1 s1 s1 s1 s1 s1 s1 s1 s1 s1 s1 s1 == == == == === === === === !== !== !== !== s2; // true s3; // false n; // true b; // false s2; // true s3; // false n; // false b; // false s2; // false s3; // true n; // true b; // true

Siehe auch == (Gleichheit), != (Ungleichheit), === (strikte Gleichheit)

> (grer als)


Verfgbarkeit

Flash Player 4. Flash 4-Datei:


x > y

Konvertierte Datei aus Flash ab Version 5:


Number(x) > Number(y) Verwendung ausdruck1 > ausdruck2 Parameter ausdruck1,ausdruck2

Beliebige Zahl oder beliebiger String.

284

Kapitel 12: ActionScript-Lexikon

Rckgaben

Ein Boolescher Wert.


Beschreibung

Operator (Vergleich); vergleicht zwei Ausdrcke und gibt true zurck, wenn ausdruck1 grer als ausdruck2 ist. Wenn ausdruck1 kleiner oder gleich ausdruck2 ist, gibt der Operator false zurck. Stringausdrcke werden in alphabetischer Reihenfolge ausgewertet; Grobuchstaben haben Vorrang vor Kleinbuchstaben. In Flash 5 und hheren Versionen ist <= (kleiner oder gleich) ein Vergleichsoperator, der unterschiedliche Datentypen verarbeiten kann. In Flash 4 ist <= ein numerischer Operator. Flash 4-Dateien, die in der Flash-Authoring-Umgebung ab Version 5 geffnet werden, werden konvertiert, um die Datentypintegritt zu gewhrleisten.

>= (grer oder gleich)


Verfgbarkeit

Flash Player 4. Flash 4-Datei:


x > y

Konvertierte Datei aus Flash ab Version 5:


Number(x) > Number(y) Verwendung ausdruck1 >= ausdruck2 Parameter ausdruck1, ausdruck2 Rckgaben

Strings, Ganzzahlen oder Gleitkommazahlen.

Ein Boolescher Wert.


Beschreibung

Operator (Vergleich); vergleicht zwei Ausdrcke und ermittelt, ob ausdruck1 grer oder gleich ausdruck2 ist (true) oder ob ausdruck1 kleiner als ausdruck2 ist (false). In Flash 5 und hheren Versionen ist > (grer oder gleich) ein Vergleichsoperator, der unterschiedliche Datentypen verarbeiten kann. In Flash 4 ist > ein numerischer Operator. Flash 4-Dateien, die in der Flash-Authoring-Umgebung ab Version 5 geffnet werden, werden konvertiert, um die Datentypintegritt zu gewhrleisten.

>> (bitweise Verschiebung nach rechts)


Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 >> ausdruck2

>> (bitweise Verschiebung nach rechts)

285

Parameter ausdruck1

Eine Zahl oder ein Ausdruck, die bzw. der bitweise nach rechts verschoben werden

soll.
ausdruck2 Eine Zahl oder ein Ausdruck, die bzw. der in eine Ganzzahl von 0 bis 31 umgewandelt werden kann. Rckgaben

Keine.
Beschreibung

Operator (bitweise); wandelt ausdruck1 und ausdruck2 in 32-Bit-Ganzzahlen um und verschiebt alle Bits in ausdruck1 um die Anzahl von Stellen nach rechts, die durch die Ganzzahl angegeben wird, die sich aus der Umwandlung von ausdruck2 ergibt. Nach rechts verschobene Bits werden verworfen. Um das Vorzeichen des ursprnglichen Ausdrucks ausdruck zu bewahren, werden die Bits auf der linken Seite mit 0 aufgefllt, wenn das wichtigste Bit (das Bit ganz links) von ausdruck1 0 ist. Wenn das wichtigste Bit 1 ist, werden sie mit 1 aufgefllt. Die Verschiebung eines Bits um eine Stelle nach rechts entspricht der Division durch 2 und Verwerfen des Rests.
Beispiel

Im folgenden Beispiel wird 65535 in eine 32-Bit-Ganzzahl umgewandelt und um acht Bit nach rechts verschoben.
x = 65535 >> 8

Das Ergebnis dieser Operation lautet wie folgt:


x = 255

Dies errechnet sich wie folgt: 65535 dezimal ist gleich 1111111111111111 binr (sechzehnmal 1), 1111111111111111 binr um acht Bit nach rechts verschoben ist 11111111 binr, und 11111111 binr ist 255 dezimal. Das wichtigste Bit ist 0, da die Ganzzahlen 32-Bit-Zahlen sind, somit ist das Fllbit 0. Im folgenden Beispiel wird -1 in eine 32-Bit-Ganzzahl umgewandelt und um ein Bit nach rechts verschoben.
x = -1 >> 1

Das Ergebnis dieser Operation lautet wie folgt:


x = -1

Dies errechnet sich wie folgt: -1 dezimal ist gleich 11111111111111111111111111111111 binr (zweiunddreiigmal 1); durch Verschieben um ein Bit nach rechts wird das unwichtigste Bit (das Bit ganz recht) entfernt und das wichtigste Bit mit 1 aufgefllt. Das Ergebnis ist 11111111111111111111111111111111 (zweiunddreiigmal 1) binr, was der 32-Bit-Ganzzahl -1 entspricht.
Siehe auch >>= (bitweise Verschiebung nach rechts und Zuweisung)

286

Kapitel 12: ActionScript-Lexikon

>>= (bitweise Verschiebung nach rechts und Zuweisung)


Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 >>= ausdruck2 Parameter ausdruck1

Eine Zahl oder ein Ausdruck, die bzw. der bitweise nach links verschoben werden

soll.
ausdruck2 Eine Zahl oder ein Ausdruck, die bzw. der in eine Ganzzahl von 0 bis 31 umgewandelt werden kann. Rckgaben

Keine.
Beschreibung

Operator (zusammengesetzte bitweise Zuweisung); dieser Operator fhrt eine bitweise Verschiebung nach rechts durch und speichert den Inhalt als Ergebnis in ausdruck1.
Beispiel

Die folgenden beiden Ausdrcke sind gleichwertig:


A >>= B A = (A >> B)

Der folgende kommentierte Code verwendet den bitweisen Operator (>>=). Das folgende Beispiel veranschaulicht auerdem alle anderen bitweisen Operatoren.
function convertToBinary(number){ var result = ""; for (var i=0; i<32; i++) { // Unwichtigstes Bit mit Hilfe von bitweisem AND extrahieren var lsb = number & 1; // Dieses Bit zum Ergebnisstring hinzufgen result = (lsb ? "1" : "0") + result; // Zahl um ein Bit nach rechts verschieben, um das nchste Bit anzuzeigen number >>= 1;} return result; } trace(convertToBinary(479)); // String 00000000000000000000000111011111 zurckgeben // Obiger String ist die binre Darstellung der // Dezimalzahl 479 Siehe auch << (bitweise Verschiebung nach links)

>>= (bitweise Verschiebung nach rechts und Zuweisung)

287

>>> (vorzeichenlose bitweise Verschiebung nach rechts)


Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 >>> ausdruck2 Parameter ausdruck1

Eine Zahl oder ein Ausdruck, die bzw. der bitweise nach rechts verschoben werden

soll.
ausdruck2 Eine Zahl oder ein Ausdruck, die bzw. der in eine Ganzzahl von 0 bis 31 umgewandelt werden kann. Rckgaben

Keine.
Beschreibung

Operator (bitweise); entspricht dem Operator fr bitweise Verschiebung nach rechts (>>), bewahrt jedoch nicht das Vorzeichen des ursprnglichen Ausdrucks, da die Bits auf der linken Seite stets mit 0 aufgefllt werden.
Beispiel

Im folgenden Beispiel wird -1 in eine 32-Bit-Ganzzahl umgewandelt und um ein Bit nach rechts verschoben.
x = -1 >>> 1

Das Ergebnis dieser Operation lautet wie folgt:


x = 2147483647

Dies errechnet sich wie folgt: -1 dezimal ist gleich 11111111111111111111111111111111 binr (zweiunddreiigmal 1), beim vorzeichenlosen Verschieben um ein Bit nach rechts wird das unwichtigste (uerste rechte) Bit entfernt und das wichtigste (uerste linke) Bit mit einer 0 aufgefllt. Das Ergebnis lautet 01111111111111111111111111111111 binr, was der 32-BitGanzzahl 2147483647 entspricht.
Siehe auch >>= (bitweise Verschiebung nach rechts und Zuweisung)

>>>= (vorzeichenlose bitweise Verschiebung nach rechts und Zuweisung)


Verfgbarkeit

Flash Player 5.
Verwendung ausdruck1 >>>= ausdruck2

288

Kapitel 12: ActionScript-Lexikon

Parameter ausdruck1

Eine Zahl oder ein Ausdruck, die bzw. der bitweise nach links verschoben werden

soll.
ausdruck2 Eine Zahl oder ein Ausdruck, die bzw. der in eine Ganzzahl von 0 bis 31 umgewandelt werden kann. Rckgaben

Keine.
Beschreibung

Operator (zusammengesetzte bitweise Zuweisung); fhrt eine vorzeichenlose bitweise Verschiebung nach rechts durch und speichert den Inhalt als Ergebnis in ausdruck1. Die folgenden beiden Ausdrcke sind gleichwertig:
A >>>= B A = (A >>> B) Siehe auch >>> (vorzeichenlose bitweise Verschiebung nach rechts), >>= (bitweise Verschiebung nach rechts und Zuweisung)

Accessibility-Klasse
Verfgbarkeit

Flash Player 6 Version 65.


Beschreibung

Die Accessibility-Klasse verwaltet die Kommunikation mit Bildschirmlesern. Die Methoden der Accessibility-Klasse sind statisch, d. h., Sie mssen keine Instanz der Klasse erzeugen, um ihre Methoden verwenden zu knnen. Um die Eingabehilfen-Eigenschaften fr ein bestimmtes Objekt abzurufen und festzulegen, wie z. B. fr eine Schaltflche, einen Movieclip oder ein Textfeld, verwenden Sie die Eigenschaft _accProps. Um zu bestimmen, ob der Player in einer Umgebung ausgefhrt wird, die Eingabehilfen untersttzt, verwenden Sie System.capabilities.hasAccessibility. Methodenbersicht fr die Accessibility-Klasse
Methode
Accessibility.isActive() Accessibility.updateProperties()

Beschreibung Gibt an, ob ein Bildschirmleseprogramm aktiv ist. Aktualisiert die Beschreibung von Objekten auf dem Bildschirm fr Bildschirmleser.

Accessibility.isActive()
Verfgbarkeit

Flash Player 6 Version 65.

Accessibility.isActive()

289

Verwendung Accessibility.isActive() Parameter

Keine.
Rckgaben

Gibt den Booleschen Wert true zurck, falls aktive Microsoft Active Accessibility-Clients (MSAA-Clients) vorhanden sind und der Player in einer Umgebung ausgefhrt wird, die Kommunikation zwischen Flash Player und Eingabehilfen untersttzt; andernfalls wird der Wert false zurckgegeben.
Beschreibung

Methode; gibt an, ob ein MSAA-Bildschirmleseprogramm aktiv ist und der Player in einer Umgebung ausgefhrt wird, die Kommunikation zwischen Flash Player und Eingabehilfen untersttzt. Verwenden Sie diese Methode, wenn sich die Anwendung bei Verwendung eines Bildschirmleseprogramms anders verhalten soll. Um zu bestimmen, ob der Player in einer Umgebung ausgefhrt wird, die Eingabehilfen untersttzt, verwenden Sie System.capabilities.hasAccessibility.
Hinweis: Wenn Sie diese Methode innerhalb der ersten ein bis zwei Sekunden nach dem ersten ffnen des Flash-Fensters aufrufen, in dem das Dokument wiedergegeben wird, wird mglicherweise der Wert false zurckgegeben, obwohl ein MSAA-Client aktiv ist. Der Grund dafr ist die asynchrone Kommunikation zwischen Flash und MSAA-Clients. Sie knnen dieses Problem umgehen, indem Sie diese Methode erst mit einer Verzgerung von ein bis zwei Sekunden nach dem Laden des Dokuments aufrufen. Siehe auch Accessibility.updateProperties(), _accProps, System.capabilities.hasAccessibility

Accessibility.updateProperties()
Verfgbarkeit

Flash Player 6 Version 65.


Verwendung Accessibility.updateProperties() Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Methode; startet eine erneute berprfung aller Eingabehilfen-Eigenschaften durch Flash Player. Auerdem werden die Beschreibungen von Objekten fr Bildschirmleser aktualisiert und bei Bedarf Ereignisse an Bildschirmleser gesendet, um nderungen anzuzeigen. Informationen zum Festlegen von Eingabehilfen-Eigenschaften finden Sie unter _accProps.

290

Kapitel 12: ActionScript-Lexikon

Um zu bestimmen, ob der Player in einer Umgebung ausgefhrt wird, die Eingabehilfen untersttzt, verwenden Sie System.capabilities.hasAccessibility. Wenn Sie die Eingabehilfen-Eigenschaften fr mehrere Objekte festlegen, ist nur ein einziger Aufruf von Accessibility.updateProperties() erforderlich. Mehrere Aufrufe knnen zu verminderter Leistung und unverstndlichen Ergebnissen des Bildschirmlesers fhren.
Beispiel

Im folgenden ActionScript-Code werden dynamische Eingabehilfen-Eigenschaften verwendet. Dieses Beispiel stammt von einer textlosen Schaltflche, auf der unterschiedliche Symbole angezeigt werden knnen.
function setIcon(iconNr, neuerText) { this.iconImage = this.iconImages[iconNr]; if ( neuerText != undefined ) { if ( this._accProps == undefined ) this._accProps = new Object(); this._accProps.name = neuerText; Accessibility.updateProperties() } } Siehe auch Accessibility.isActive(), _accProps, System.capabilities.hasAccessibility

_accProps
Verfgbarkeit

Flash Player 6 Version 65.


Verwendung _accProps.eigenschaftsname instanzname._accProps.eigenschaftsname Parameter eigenschaftsname

Der Name einer Eingabehilfen-Eigenschaft (gltige Namen: siehe folgende

Beschreibung).
instanzname

Der Instanzname, der einer Instanz eines Movieclips, dynamischen Textfelds, Eingabetextfelds oder einer Schaltflche zugewiesen ist.

Beschreibung

Eigenschaft; dient zum Steuern der Eingabehilfenoptionen fr SWF-Dateien, Movieclips, Schaltflchen, dynamische Textfelder und Eingabetextfelder zur Laufzeit. Diese Eigenschaften setzen die Eigenschaften auer Kraft, die beim Authoring im Bedienfeld Eingabehilfen verfgbar sind. Um nderungen an diesen Eigenschaften zu bernehmen, rufen Sie Accessibility.updateProperties() auf. Informationen zum Bedienfeld Eingabehilfen finden Sie unter Das Flash-Bedienfeld Eingabehilfen in der Hilfe Flash verwenden. Um zu bestimmen, ob der Player in einer Umgebung ausgefhrt wird, die Eingabehilfen untersttzt, verwenden Sie System.capabilities.hasAccessibility.

_accProps

291

Die folgende Tabelle enthlt die Namen und Typen aller _accProps-Eigenschaften, die entsprechenden Einstellungen im Bedienfeld Eingabehilfen sowie die Objekte, auf die eine Eigenschaft angewendet werden kann. Der Begriff inverse Logik bedeutet, dass die Einstellung der Eigenschaft gegenber der entsprechenden Einstellung im Bedienfeld Eingabehilfen invertiert ist. Wenn beispielsweise die Eigenschaft silent den Wert true erhlt ist dies dasselbe, wie wenn die Auswahl der Option Film mit Eingabehilfen versehen oder Objekt mit Eingabehilfen versehen aufgehoben wird.
Eigenschaft
silent

Datentyp Boolean

Entsprechung im Bedienfeld Eingabehilfen Film mit Eingabehilfen versehen / Objekt mit Eingabehilfen versehen (inverse Logik)

Anwendbar auf Ganze Filme Movieclips Schaltflchen dynamischer Text Eingabetext

forceSimple

Boolean String

Untergeordnete Objekte mit Ganze Filme Eingabehilfen versehen (inverse Logik) Movieclips Name Ganze Filme Movieclips Schaltflchen Eingabetext Ganze Filme Movieclips Schaltflchen dynamischer Text Eingabetext Movieclips Schaltflchen Eingabetext

Name

description

String

Beschreibung

shortcut

String

Tastenkombination*

Informationen zum Zuweisen einer Tastenkombination zu einem zugnglichen Objekt finden Sie unter Key.addListener().

Um Einstellungen anzugeben, die der Tabulatorindexeinstellung im Bedienfeld Eingabehilfen entsprechen, verwenden Sie die Eigenschaft Button.tabIndex, MovieClip.tabIndex oder TextField.tabIndex. Zur Laufzeit lsst sich die Einstellung Automatische Bezeichnung nicht festlegen. Wird der Parameter instanzname nicht verwendet, werden nderungen an Feldern der _accProps-Eigenschaft auf den gesamten Film angewendet Mit der folgenden Codezeile wird beispielsweise die Eingabehilfen-Eigenschaft name fr den gesamten Film mit dem String Tierhandlung belegt. Anschlieend wird Accessibility.updateProperties() aufgerufen, um die nderung zu bernehmen.
_accprops.name = "Tierhandlung"; Accessbility.updateProperties();

Dagegen wird im folgenden Code fr die Eigenschaft name eines Film mit dem Instanznamen preis_mc der String Preis festgelegt:

292

Kapitel 12: ActionScript-Lexikon

preis_mc._accProps.name = "Preis"; Accessbility.updateProperties();

Wenn Sie mehrere Eingabehilfen-Eigenschaften festlegen, rufen Sie Accessibility.updateProperties() nicht nach jeder Eigenschaftsanweisung auf, sondern nehmen Sie so viele nderungen wie mglich vor, und fhren Sie den Aufruf danach durch.
_accprops.name = "Tierhandlung"; tier_mc._accProps.name = "Tier"; tier_mc._accProps.description = "Katze, Hund, Fisch usw."; preis_mc._accProps.name = "Preis"; preis_mc._accProps.description = "Kosten eines Artikels"; Accessbility.updateProperties();

Wenn Sie fr einen Film oder ein Objekt keine Eingabehilfen-Eigenschaft angeben, werden die Werte aus dem Bedienfeld Eingabehilfen implementiert. Haben Sie eine Eingabehilfen-Eigenschaft einmal festgelegt, lsst sich deren Wert nicht mehr auf einen Wert aus dem Bedienfeld Eingabehilfen zurcksetzen. Sie knnen jedoch zum Standardwert der Eigenschaft zurckkehren (false fr Boolesche Werte, leere Strings fr Stringwerte), indem Sie das Objekt _accProps lschen:
mein_mc._accProps.silent = true; // Eigenschaft festlegen // Anderen Code hier einfgen delete mein_mc._accProps.silent; // Standardwert wiederherstellen

Um alle Eingabehilfen-Werte eines Objekts auf ihre Standardwerte zurckzusetzen, knnen Sie das Objekt instanzname._accProps lschen.
delete mein_btn._accProps;

Um alle Eingabehilfen-Werte aller Objekte auf ihre Standardwerte zurckzusetzen, knnen Sie das Objekt _accProps lschen.
delete _accProps;

Wenn Sie eine Eigenschaft fr einen Objekttyp angegeben, der diese Eigenschaft nicht untersttzt, wird die Zuweisung der Eigenschaft ignoriert und ein Fehler erzeugt. Beispielsweise wird die Eigenschaft forceSimple fr Schaltflchen nicht untersttzt. Deshalb wird eine Zeile wie die folgende ignoriert:
mein_btn._accProps.forceSimple = false; // ignoriert Beispiel

Im folgenden ActionScript-Code werden dynamische Eingabehilfen-Eigenschaften verwendet. Sie wrden diesen Code einer textlosen Schaltflchenkomponente zuweisen, auf der unterschiedliche Symbole angezeigt werden knnen.
function setIcon(iconNr, neuerText) { this.iconImage = this.iconImages[iconNr]; if ( neuerText != undefined ) { if ( this._accProps == undefined ) this._accProps = new Object(); this._accProps.name = neuerText; Accessibility.updateProperties() } }

_accProps

293

Siehe auch Accessibility.isActive(), Accessibility.updateProperties(), System.capabilities.hasAccessibility

add
Verfgbarkeit

Flash Player 4.
Verwendung string1 add string2 Parameter string1, string2 Rckgaben

Beliebiger String.

Keine.
Beschreibung

Operator; verkettet zwei oder mehr Strings. Der Operator add ersetzt den Operator & aus Flash 4; Flash Player 4-Dateien, in denen der Operator & verwendet wurde, werden beim ffnen in der Flash-Authoring-Umgebung ab Version 5 automatisch konvertiert, sodass der Operator add zum Verketten von Strings verwendet wird. Der Operator add gilt jedoch seit Flash Player 5 als veraltet. Fr die Erstellung von Inhalten fr Flash Player 5 oder hher empfiehlt Macromedia die Verwendung des Operators +. Wenn Sie Inhalte fr den Flash Player bis einschlielich Version 4 erstellen, verwenden Sie zur Verkettung von Strings den Operator add.
Siehe auch + (Addition)

and
Verfgbarkeit

Flash Player 4.
Verwendung bedingung1 and bedingung2 Parameter bedingung1, bedingung2

Bedingungen oder Ausdrcke, die den Wert true oder false

haben knnen.
Rckgaben

Keine.

294

Kapitel 12: ActionScript-Lexikon

Beschreibung

Operator; fhrt in Flash Player 4 eine logische AND-Operation aus. Wenn beide Ausdrcke true ergeben, ist der gesamte Ausdruck true. Dieser Operator gilt seit Flash 5 als veraltet. Macromedia empfiehlt stattdessen die Verwendung des neuen Operators &&.
Siehe auch && (logisches AND)

Arguments-Klasse
Verfgbarkeit

Flash Player 5; in Flash Player 6 hinzugefgte Eigenschaft.


Beschreibung

Die Arguments-Klasse ist ein Array mit den Werten, die als Parameter an eine beliebige Funktion bergeben wurden. Bei jedem Funktionsaufruf in ActionScript wird automatisch ein ArgumentsObjekt fr die jeweilige Funktion erstellt. Darber hinaus wird eine lokale Variable arguments erstellt, mit der Sie das Arguments-Objekt referenzieren knnen. Eigenschaftsbersicht fr die Arguments-Klasse
Eigenschaft arguments.callee arguments.caller arguments.length Beschreibung

Verweist auf die aufgerufene Funktion. Verweist auf die aufrufende Funktion. Anzahl der an eine Funktion bergebenen Parameter

arguments.callee
Verfgbarkeit

Flash Player 5.
Verwendung arguments.callee Beschreibung

Eigenschaft; verweist auf die Funktion, die gegenwrtig aufgerufen wird.


Beispiel

Mit der Eigenschaft arguments.callee knnen Sie wie folgt eine rekursive anonyme Funktion erstellen:
factorial = function (x) { if (x <= 1) { return 1; } else { return x * arguments.callee(x-1); } };

arguments.callee

295

Die folgende Funktion ist eine benannte rekursive Funktion:


function factorial (x) { if (x <= 1) { return 1; } else { return x * factorial(x-1); } }

arguments.caller
Verfgbarkeit

Flash Player 6.
Verwendung arguments.caller Beschreibung

Eigenschaft; bezieht sich auf die aufrufende Funktion.

arguments.length
Verfgbarkeit

Flash Player 5.
Verwendung arguments.length Beschreibung

Eigenschaft; die Anzahl der Parameter, die tatschlich an eine Funktion bergeben wurden.

Array-Klasse
Verfgbarkeit

Flash Player 5; seit Flash Player 6 ein natives Objekt, was zu einer deutlichen PerformanceSteigerung gefhrt hat.
Beschreibung

Die Array-Klasse ermglicht den Zugriff auf Arrays und die Bearbeitung von Arrays. Ein Array ist ein Objekt, dessen Eigenschaften durch eine Zahl angegeben werden, die fr die entsprechende Position im Array steht. Diese Zahl wird auch als index bezeichnet. Alle Arrays haben die Basis Null, d. h. das erste Element im Array ist [0], das zweite Element [1] usw. Im folgenden Beispiel enthlt mein_array die Monate des Jahres.
mein_array[0] mein_array[1] mein_array[2] mein_array[3] = = = = "Januar" "Februar" "Mrz" "April"

296

Kapitel 12: ActionScript-Lexikon

Verwenden Sie zum Erstellen eines neuen Array-Objekts den Konstruktor new Array() oder den Array-Zugriffsoperator ([]). Verwenden Sie zum Zugriff auf die Elemente eines Arrays den ArrayZugriffsoperator ([]). Methodenbersicht fr die Array-Klasse
Methode
Array.concat() Array.join() Array.pop() Array.push()

Beschreibung Verkettet die Parameter und gibt sie als neues Array zurck. Verbindet alle Elemente eines Arrays zu einem String. Entfernt das letzte Element eines Arrays und gibt seinen Wert zurck. Fgt am Ende eines Arrays ein oder mehrere Elemente hinzu und gibt die neue Lnge des Arrays zurck. Kehrt die Richtung eines Arrays um. Entfernt das erste Element eines Arrays und gibt seinen Wert zurck. Extrahiert einen Abschnitt eines Arrays und gibt ihn als neues Array zurck. Sortiert ein Array in sich selbst. Sortiert ein Array nach einem Feld im Array. Fgt einem Array Elemente hinzu bzw. entfernt diese. Gibt einen Stringwert mit den Elementen im Array-Objekt zurck. Fgt am Anfang eines Arrays ein oder mehrere Elemente hinzu und gibt die neue Lnge des Arrays zurck.

Array.reverse() Array.shift() Array.slice() Array.sort() Array.sortOn() Array.splice() Array.toString() Array.unshift()

Eigenschaftsbersicht fr die Array-Klasse


Eigenschaft
Array.length

Beschreibung Eine Ganzzahl, die die Anzahl von Elementen im Array angibt (nicht auf Null basierend).

Konstruktor fr die Array-Klasse


Verfgbarkeit

Flash Player 5.
Verwendung new Array() new Array(lnge) new Array(element0, element1, element2,...elementN) Parameter lnge

Eine Ganzzahl, die die Anzahl von Elementen im Array angibt. Bei nicht fortlaufenden Elementen gibt der Parameter lnge die Indexnummer des letzten Elements im Array plus 1 an.

Array-Klasse

297

element0...elementN

Eine Liste aus mindestens zwei beliebigen Werten. Die Werte knnen Zahlen, Strings, Objekte oder andere Arrays sein. Das erste Element in einem Array hat den Index oder die Position 0.

Rckgaben

Keine.
Beschreibung

Konstruktor; dient zur Erstellung eines Arrays. Mit diesem Konstruktor knnen Sie unterschiedliche Array-Typen erstellen: leere Arrays, Arrays mit einer bestimmten Lnge, deren Elemente keine Werte besitzen, und Arrays, deren Elemente spezifische Werte aufweisen. Verwendung 1: Wenn Sie keine Parameter angeben, wird ein Array mit der Lnge 0 erstellt. Verwendung 2: Wenn Sie nur eine Lnge angeben, wird ein Array mit der durch den Parameter lnge angegebenen Anzahl von Elementen erstellt, die jedoch keine Werte aufweisen. Verwendung 3: Wenn Sie mit den element-Parametern Werte angeben, wird ein Array mit spezifischen Werten erstellt.
Beispiel

Verwendung 1: Im folgenden Beispiel wird ein neues Array-Objekt mit der Ausgangslnge 0 erstellt.
mein_array = new Array(); trace(mein_array.length); // Rckgabewert: 0

Verwendung 2: Im folgenden Beispiel wird ein neues Array-Objekt mit der Ausgangslnge 4 erstellt.
mein_array = new Array(4); trace(mein_array.length); // Rckgabewert: 4

Verwendung 3: Im folgenden Beispiel wird das neue Array-Objekt go_gos_array mit der Ausgangslnge 5 erstellt.
go_gos_array = new Array("Belinda", "Gina", "Kathy", "Charlotte", "Jane"); trace(go_gos_array.length); // Rckgabewert: 5 trace(go_gos_array.join(", ")); // Zeigt Elemente an

Die Ausgangselemente des Arrays go_gos lauten wie folgt:


go_gos_array[0] go_gos_array[1] go_gos_array[2] go_gos_array[3] go_gos_array[4] = = = = = "Belinda"; "Gina"; "Kathy"; "Charlotte"; "Jane";

Mit dem folgenden Code wird ein sechstes Element zum Array go_gos_array hinzugefgt und das zweite Element gendert:
go_gos_array[5] = "Donna"; go_gos_array[1] = "Nina" trace(go_gos_array.join(" + ")); Siehe auch Array.length, [] (Arrayzugriff)

298

Kapitel 12: ActionScript-Lexikon

Array.concat()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.concat( [wert0,wert1,...wertN ]) Parameter wert0,...wertN Zahlen, Elemente oder Strings, die in einem neuen Array verkettet werden sollen. Wenn Sie keine Werte bergeben, wird eine Kopie von mein_array erstellt. Rckgaben

Keine.
Beschreibung

Methode; verkettet die in den Parametern angegebenen Elemente mit den Elementen in mein_array und erstellt ein neues Array. Wenn die wert-Parameter ein Array angeben, werden die Elemente dieses Arrays - und nicht das Array selbst - verkettet. Das Array mein_array bleibt unverndert.
Beispiel

Mit dem folgenden Code werden zwei Arrays verkettet:


alpha_array = new Array("a","b","c"); numeric_array = new Array(1,2,3); alphaNumeric_array=alpha_array.concat(numeric_array); trace(alphaNumeric_array); // Array ["a","b","c",1,2,3] erstellen

Mit dem folgenden Code werden drei Arrays verkettet:


nr1_array = [1,3,5]; nr2_array = [2,4,6]; nr3_array = [7,8,9]; nummern_array=nr1_array.concat(nr2_array,nr3_array) trace(nummern_array); // Array [1,3,5,2,4,6,7,8,9] erstellen

Verschachtelte Arrays werden nicht wie normale Arrays abgeflacht. Wie das folgende Beispiel zeigt, werden die Elemente in einem verschachtelten Array nicht in separate Elemente im Array x_array getrennt:
a_array = new Array ("a","b","c"); // 2 und 3 sind Elemente in einem verschachtelten Array n_array = new Array(1, [2, 3], 4); x_array = a_array.concat(n_array); trace(x_array[0]); // "a" trace(x_array[1]); // "b" trace(x_array[2]); // "c" trace(x_array[3]); // 1 trace(x_array[4]); // 2, 3 trace(x_array[5]); // 4

Array.concat()

299

Array.join()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.join([trennzeichen]) Parameter trennzeichen

Ein Zeichen oder String, mit dem die Array-Elemente im zurckgegebenen String voneinander getrennt werden. Wenn Sie diesen Parameter weglassen, wird als Standardtrennzeichen das Komma verwendet.

Rckgaben

String.
Beschreibung

Methode; wandelt die Elemente in einem Array in Strings um, fgt zwischen ihnen das angegebene Trennzeichen ein, verkettet die Elemente und gibt den resultierenden String zurck. Ein verschachteltes Array wird immer durch ein Komma getrennt und nicht durch das Trennzeichen, das an die Methode join() bergeben wurde.
Beispiel

Im folgenden Beispiel wird ein Array mit drei Elementen erstellt: Erde, Mond und Sonne. Anschlieend wird das Array dreimal verknpft: zunchst mit dem Standardtrennzeichen (ein Komma und ein Leerzeichen), dann mit einem Bindestrich und anschlieend mit einem Pluszeichen (+). Das Ergebnis wird im Ausgabefenster angezeigt:
a_array = new Array("Erde","Mond","Sonne") trace(a_array.join()); // Rckgabe: Erde, Mond, Sonne trace(a_array.join(" - ")); // Rckgabe: Erde - Mond - Sonne trace(a_array.join(" + ")); // Rckgabe: Erde + Mond + Sonne

Array.length
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.length Beschreibung

Eigenschaft; eine Ganzzahl, die die Anzahl von Elementen im Array angibt (nicht auf Null basierend). Diese Eigenschaft wird automatisch aktualisiert, wenn dem Array neue Elemente hinzugefgt werden. Wenn Sie einem Array-Element einen Wert zuweisen (z. B. mein_array[index] = wert), wobei index eine Zahl ist und index+1 grer ist als die Eigenschaft length, wird die Eigenschaft length auf index+1 gesetzt.

300

Kapitel 12: ActionScript-Lexikon

Beispiel

Aus dem folgenden Code geht hervor, wie die Eigenschaft length aktualisiert wird:
mein_array = new Array(); trace(mein_array.length); mein_array[0] = 'a'; trace(mein_array.length); mein_array[1] = 'b'; trace(mein_array.length); mein_array[9] = 'c'; trace(mein_array.length); // Ausgangslnge ist 0 // mein_array.length wird auf 1 gesetzt // mein_array.length wird auf 2 gesetzt // mein_array.length wird auf 10 gesetzt

Array.pop()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.pop() Parameter

Keine.
Rckgaben

Der Wert des letzten Elements im angegebenen Array.


Beschreibung

Methode; entfernt das letzte Element aus einem Array und gibt den Wert dieses Elements zurck.
Beispiel

Mit dem folgenden Code wird das Array meineTiere mit vier Elementen erstellt und anschlieend das letzte Element entfernt.
meineTiere = ["Katze", "Hund", "Vogel", "Fisch"]; popped = meineTiere.pop(); trace(popped); // Rckgabe: Fisch

Array.push()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.push(wert,...) Parameter wert

Ein oder mehrere Werte, die an das Array angehngt werden.

Rckgaben

Die Lnge des neuen Arrays.

Array.push()

301

Beschreibung

Methode; fgt am Ende eines Arrays ein oder mehrere Elemente hinzu und gibt die neue Lnge des Arrays zurck.
Beispiel

Mit dem folgenden Code wird das Array meineTiere mit zwei Elementen erstellt: Katze und Hund. In der zweiten Zeile werden zwei Elemente zum Array hinzugefgt. Nach Aufruf der Methode push() enthlt die Variable pushed vier Elemente. Da die Methode push() die neue Lnge des Arrays zurckgibt, schreibt die Aktion trace() in der letzten Zeile die neue Lnge von meineTiere (4) in das Ausgabefenster.
meineTiere = ["Katze", "Hund"]; pushed = meineTiere.push("Vogel", "Fisch"); trace(pushed);

Array.reverse()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.reverse() Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Methode; kehrt die Reihenfolge der Array-Elemente im Array selbst um.


Beispiel

Das folgende Beispiel veranschaulicht die Verwendung dieser Methode.


var nummern_array = [1, 2, 3, 4, 5, 6]; trace(nummern_array.join()); //1,2,3,4,5,6 nummern_array.reverse(); trace(nummern_array.join()); // 6,5,4,3,2,1

Array.shift()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.shift() Parameter

Keine.

302

Kapitel 12: ActionScript-Lexikon

Rckgaben

Das erste Element in einem Array.


Beschreibung

Methode; entfernt das erste Element aus einem Array und gibt dieses Element zurck.
Beispiel

Mit dem folgenden Code wird das Array meineTiere erstellt. Anschlieend wird das erste Element entfernt und der Variablen shifted zugewiesen.
var meineTiere_array = ["Katze", "Hund", "Vogel", "Fisch"]; shifted = meineTiere_array.shift(); trace(shifted); // Rckgabe: "Katze" Siehe auch Array.pop()

Array.slice()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.slice( [ anfang [ , ende ] ] ) Parameter anfang ende

Eine Zahl, die die Indexposition des Segmentanfangs angibt. Wenn anfang eine negative Zahl ist, liegt der Ausgangspunkt am Ende des Arrays, wobei -1 das letzte Element ist. Eine Zahl, die die Indexposition des Segmentendes angibt. Wenn Sie diesen Parameter weglassen, umfasst das Segment alle Elemente vom Anfang bis zum Ende des Arrays. Wenn ende eine negative Zahl ist, wird der Endpunkt vom Ende des Arrays aus berechnet, wobei -1 das letzte Element ist.

Rckgaben

Ein Array.
Beschreibung

Methode; extrahiert ein Segment oder einen Teilstring des Arrays und gibt diese(s) als neues Array zurck, ohne das ursprngliche Array zu verndern. Das zurckgegebene Array umfasst das Element anfang und alle Elemente bis zum Element ende (ausschlielich). Wenn Sie keine Parameter bergeben, wird eine Kopie von mein_array erstellt.

Array.sort()
Verfgbarkeit

Flash Player 5; zustzliche Mglichkeiten in Flash Player 7.

Array.sort()

303

Verwendung mein_array.sort() mein_array.sort(vergleichsfunktion) mein_array.sort(option | option |... ) mein_array.sort(vergleichsfunktion, option | option |... ) Parameter vergleichsfunktion

Eine optionale Vergleichsfunktion, mit der die Sortierreihenfolge der Elemente im Array festgelegt wird. Bei Verwendung der Elemente A und B kann das Ergebnis von vergleichsfunktion einen der folgenden drei Werte aufweisen:

-1, falls A in der sortierten Folge vor B aufgefhrt werden soll 0, wenn A = B 1, falls A in der sortierten Folge hinter B aufgefhrt werden soll
option

Ein oder mehrere durch den Operator | (bitweises OR) voneinander getrennte Strings, die das Verhalten der Sortierung gegenber dem Standardverhalten ndern. Folgende Werte werden fr option akzeptiert: 1 oder Array.CASEINSENSITIVE 2 oder Array.DESCENDING 4 oder Array.UNIQUE 8 oder Array.RETURNINDEXEDARRAY 16 oder Array.NUMERIC

Informationen zu diesem Parameter finden Sie unter Array.sortOn().


Rckgaben

Der Rckgabewert hngt davon ab, ob Sie Parameter bergeben:

Wenn Sie den Wert 4 oder Array.UNIQUE fr option angeben und zwei oder mehr zu
sortierende Elemente identische Sortierungsfelder aufweisen, gibt Flash den Wert 0 zurck und ndert das Array nicht. Wenn Sie den Wert 8 oder Array.RETURNINDEXEDARRAY fr option angeben, gibt Flash ein Array zurck, das die Ergebnisse der Sortierung wiedergibt, und ndert das Array nicht. Andernfalls gibt Flash nichts zurck und ndert das Array entsprechend der Sortierreihenfolge.

Beschreibung

Methode; sortiert die Elemente in einem Array. Flash sortiert nach ASCII- (Unicode-)Werten Wenn eines der zu vergleichenden Elemente das im Parameter feldname angegebene Feld nicht enthlt, gilt das Feld als undefined, und die Elemente werden im sortierten Array ohne bestimmte Reihenfolge nacheinander platziert. Standardmig funktioniert Array.sort() wie folgt:

Bei der Sortierung wird Gro-/Kleinschreibung beachtet (Z kommt vor a). Die Sortierung erfolgt aufsteigend (a kommt vor b). Das Array wird entsprechend der Sortierreihenfolge gendert. Elemente mit identischen
Sortierfeldern werden im sortierten Array ohne bestimmte Reihenfolge nacheinander platziert.

304

Kapitel 12: ActionScript-Lexikon

Numerische Felder werden so sortiert, als seien sie Strings. 100 kommt demnach vor 99, weil
1 ein kleinerer Stringwert ist als 9.

Es wird nichts zurckgegeben.


Wenn Sie die Sortierung anders durchfhren mchten, erstellen Sie eine Funktion fr die Sortierreihenfolge und bergeben deren Namen als Parameter vergleichsfunktion. Dies ist beispielsweise hilfreich, wenn Sie alphabetisch nach Nachname und danach absteigend nach Postleitzahl sortieren mchten. Wenn Sie ein oder mehrere Felder angeben mchten, nach denen mit der Standardsortierung oder dem Parameter options sortiert werden soll, verwenden Sie Array.sortOn().
Beispiel

Verwendung 1: Das folgende Beispiel veranschaulicht die Verwendung von Array.sort() mit und ohne bergabe eines Wertes fr option:
var obst_array = ["Orangen", "pfel", "Erdbeeren", "Ananas", "Kirschen"]; trace(obst_array.join()); obst_array.sort(); trace(obst_array.join()); fruechte_array.sort(Array.DESCENDING); trace(obst_array.join());

Im Bedienfeld Ausgabe werden die folgenden Ergebnisse angezeigt:


Orangen, pfel, Erdbeeren, Ananas, Kirschen// ursprngliches Array pfel, Ananas, Erdbeeren, Kirschen, Orangen// Standardsortierung Orangen, Kirschen, Erdbeeren, Ananas, pfel// absteigende Sortierung

Verwendung 2: Im folgenden Beispiel wird Array.sort() mit einer Vergleichsfunktion verwendet


var passwords = ["mom:glam","ana:ring","jay:mag","anne:home","regina:silly"]; function order (a,b){ // Zu sortierende Eintrge im Format name:password // Als Sortierschlssel dient nur der Namensteil des Eintrags var name1 =a.split(":")[0 ]; var name2 =b.split(":")[0 ]; if (name1 < name2){ return -1; } else if (name1 >name2){ return 1; } else { return 0; } } trace ("Unsortiert:"); trace (passwords.join()); passwords.sort(order); trace ("Sortiert:"); trace (passwords.join());

Im Bedienfeld Ausgabe werden die folgenden Ergebnisse angezeigt:


Unsortiert mom:glam,ana:ring,jay:mag,anne:home,regina:silly

Array.sort()

305

Sortiert: ana:ring,anne:home,jay:mag,mom:glam,regina:silly Siehe auch | (bitweises OR), Array.sortOn()

Array.sortOn()
Verfgbarkeit

Flash Player 6; zustzliche Mglichkeiten in Flash Player 7.


Verwendung mein_array.sortOn("feldname" ) mein_array.sortOn("feldname", option | option |... ) mein_array.sortOn( [ "feldname" , "feldname" , ... ] ) mein_array.sortOn( [ "feldname" , "feldname" , ... ] , option | option |... ) Hinweis: Die eckigen Klammern ([]) mssen Sie in den Code einfgen, d. h., sie stehen nicht fr optionale Parameter. Parameter feldname option

Ein String, der ein Feld (in einem Array-Element) angibt, das als Sortierwert verwendet werden soll. Ein oder mehrere durch den Operator | (bitweises OR) voneinander getrennte Strings, die das Verhalten der Sortierung gegenber dem Standardverhalten ndern. Folgende Werte werden fr option akzeptiert: 1 oder Array.CASEINSENSITIVE 2 oder Array.DESCENDING 4 oder Array.UNIQUE 8 oder Array.RETURNINDEXEDARRAY 16 oder Array.NUMERIC

Die einzelnen Optionen werden unten unter Beschreibung genauer behandelt.


Rckgaben

Der Rckgabewert hngt davon ab, ob Sie Parameter bergeben:

Wenn Sie den Wert 4 oder Array.UNIQUE fr option angeben und zwei oder mehr zu
sortierende Elemente identische Sortierungsfelder aufweisen, gibt Flash den Wert 0 zurck und ndert das Array nicht. Wenn Sie den Wert 8 oder Array.RETURNINDEXEDARRAY fr option angeben, gibt Flash ein Array zurck, das die Ergebnisse der Sortierung wiedergibt, und ndert das Array nicht. Andernfalls gibt Flash nichts zurck und ndert das Array entsprechend der Sortierreihenfolge.

306

Kapitel 12: ActionScript-Lexikon

Beschreibung

Methode; sortiert die Elemente in einem Array nach einem oder mehreren Feldern im Array. Wenn Sie mehrere feldname-Parameter bergeben, stellt das erste Feld das primre Sortierfeld, das zweite Feld das nchste Sortierfeld usw. dar. Flash sortiert nach ASCII- (Unicode-)Werten Wenn eines der zu vergleichenden Elemente das im Parameter feldname angegebene Feld nicht enthlt, gilt das Feld als undefined, und die Elemente werden im sortierten Array ohne bestimmte Reihenfolge nacheinander platziert. Standardmig funktioniert Array.sortOn() wie folgt:

Bei der Sortierung wird Gro-/Kleinschreibung beachtet (Z kommt vor a). Die Sortierung erfolgt aufsteigend (a kommt vor b). Das Array wird entsprechend der Sortierreihenfolge gendert. Elemente mit identischen
Sortierfeldern werden im sortierten Array ohne bestimmte Reihenfolge nacheinander platziert. Numerische Felder werden so sortiert, als seien sie Strings. 100 kommt demnach vor 99, weil 1 ein kleinerer Stringwert ist als 9. Es wird nichts zurckgegeben.

Mit den option-Parametern knnen Sie die Standardwerte auer Kraft setzen. Zu Veranschaulichung werden in den folgenden Beispielen unterschiedliche Formen des optionParameters verwendet. Wenn Sie ein einfaches Array (z. B. ein Array mit nur einem Feld) sortieren oder eine Sortierreihenfolge festlegen mchten, die der Parameter options nicht untersttzt, verwenden Sie Array.sort(). Wenn Sie mehrere Parameter in numerischem Format bergeben, trennen Sie sie mit dem Operator | (bitweises OR) oder addieren die Werte der Parameter. Im folgenden Code werden drei verschiedene Mglichkeiten aufgefhrt, wie eine numerische Sortierung in absteigender Reihenfolge festgelegt werden kann:
mein_Array.sortOn(einFeldname, 2 | 16); mein_Array.sortOn(einFeldname, 18); mein_Array.sortOn(einFeldname, Array.DESCENDING | Array.NUMERIC);

Codehinweise (siehe Codehinweise verwenden auf Seite 70) sind aktiviert, wenn Sie die Stringform des Parameters (z. B. DESCENDING) anstelle der numerischen Form (2) verwenden. Betrachten Sie folgendes Array:
var mein_array:Array = new mein_array.push({password: mein_array.push({password: mein_array.push({password: mein_array.push({password: Array(); "Bernd", age:29}); "abcd", age:3}); "blau", age:35}); "creme", age:4});

Eine Standardsortierung nach dem password-Feld fhrt zu folgenden Ergebnissen:


mein_array.sortOn("password") // Bernd // abcd // blau // creme

Eine Sortierung nach dem Kennwort-Feld ohne Beachtung von Gro-/Kleinschreibung fhrt zu folgenden Ergebnissen:
mein_array.sortOn("Kennwort", Array.CASEINSENSITIVE) // abcd // Bernd

Array.sortOn()

307

// blau // creme

Eine Sortierung nach dem Kennwort-Feld in absteigender Reihenfolge ohne Beachtung von Gro-/Kleinschreibung fhrt zu folgenden Ergebnissen:
mein_array.sortOn("Kennwort", 1|2) // creme // blau // Bernd // abcd

Eine Standardsortierung nach dem age-Feld fhrt zu folgenden Ergebnissen:


mein_array.sortOn("age") // 29 // 3 // 35 // 4

Eine numerische Sortierung nach dem age-Feld fhrt zu folgenden Ergebnissen:


mein_array.sortOn("age", 16) // 3 // 4 // 29 // 35

Eine numerische Sortierung nach dem age-Feld in absteigender Reihenfolge fhrt zu folgenden Ergebnissen:
mein_array.sortOn("age", 18) // 35 // 29 // 4 // 3

Durch eine Sortierung werden die Elemente im Array wie folgt gendert:
// // // // // Vor Sortierung mein_array[0].age mein_array[1].age mein_array[2].age mein_array[3].age = = = = 29; 3; 35; 4;

// Nach einer Sortierung ohne bergabe des Wertes 8 fr option mein_array.sortOn("age", Array.NUMERIC); // mein_array[0].age = 3; // mein_array[1].age = 4; // mein_array[2].age = 29; // mein_array[3].age = 35;

Durch eine Sortierung, die ein Index-Array zurckgibt, werden die Elemente im Array nicht verndert.
// // // // // Vor Sortierung mein_array[0].age mein_array[1].age mein_array[2].age mein_array[3].age = = = = 29; 3; 35; 4;

// Nach einer Sortierung, die ein Array mit Indexwerten zurckgibt // Beachten Sie, dass das ursprngliche Array unverndert bleibt.

308

Kapitel 12: ActionScript-Lexikon

// Danach knnen Sie das zurckgegebene Array zum Anzeigen der sortierten Informationen verwenden, // ohne das ursprngliche Array zu ndern. var indexArray:Array = mein_array.sortOn("age", Array.RETURNINDEXEDARRAY); // mein_array[0].age = 29; // mein_array[1].age = 3; // mein_array[2].age = 35; // mein_array[3].age = 4; Beispiel

In diesem Beispiel wird ein neues Array erstellt und nach den Feldern name und stadt sortiert. In der ersten Sortierung wird name als erster und stadt als zweiter Sortierwert verwendet. In der ersten Sortierung wird name als erster und stadt als zweiter Sortierwert verwendet.
var rec_array = new Array(); rec_array.push( { name: "johann", stadt: "aachen", plz: 68144 } ); rec_array.push( { name: "johann", stadt: "stuttgart", plz: 72345 } ); rec_array.push( { name: "bernd", ort: "aachen", plz: 94010 } ); for(i=0; i<rec_array.length; i++) { trace(rec_array[i].name + ", " + rec_array[i].ort); } // Ergebnis // johann, offenbach // johann, karlsruhe // bernd, aachen rec_array.sortOn( [ "name", "stadt" ]); for(i=0; i<rec_array.length; i++) { trace(rec_array[i].name + ", " + rec_array[i].ort); } // Ergebnis // bernd, aachen // johann, karlsruhe // johann, offenbach rec_array.sortOn( ["stadt", "name" ]); for(i=0; i<rec_array.length; i++) { trace(rec_array[i].name + ", " + rec_array[i].ort); } // Ergebnis // johann, karlsruhe // bernd, aachen // johann, offenbach Siehe auch | (bitweises OR), Array.sort()

Array.splice()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.splice(anfang, lschanzahl [, wert0, wert1...wertN])

Array.splice()

309

Parameter anfang

Der Index des Array-Elements, an dem der Einfge- bzw. Lschvorgang beginnt.

lschanzahl Die Anzahl der zu lschenden Elemente. Diese Zahl umfasst das im Parameter anfangangegebene Element. Wenn fr lschanzahl kein Wert angegeben wird, lscht die Methode alle Werte vom Element anfang bis zum letzten Array-Element. Wenn der Wert 0

lautet, werden keine Elemente gelscht.


wert

Ein optionaler Parameter der die Werte angibt, die an der Position in das Array eingefgt werden sollen, die im Parameter anfang festgelegt ist.

Rckgaben

Keine.
Beschreibung

Methode; fgt einem Array Elemente hinzu und/oder entfernt diese. Diese Methode nimmt nderungen am Array selbst vor, ohne eine Kopie anzulegen.

Array.toString()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.toString() Parameter

Keine.
Rckgaben

Ein String.
Beschreibung

Methode; gibt einen Stringwert mit den Elementen im angegebenen Array-Objekt zurck. Jedes Array-Element von Index 0 bis Index mein_array.length-1 wird in einen verketteten, durch Kommas getrennten String umgewandelt.
Beispiel

Das folgende Beispiel erstellt mein_array, wandelt es in einen String um und zeigt 1,2,3,4,5 im Ausgabefenster an.
mein_array = new Array(); mein_array[0] = 1; mein_array[1] = 2; mein_array[2] = 3; mein_array[3] = 4; mein_array[4] = 5; trace(mein_array.toString());

310

Kapitel 12: ActionScript-Lexikon

Array.unshift()
Verfgbarkeit

Flash Player 5.
Verwendung mein_array.unshift(wert1,wert2,...wertN) Parameter wert1,...wertN Eine oder mehrere Zahlen, Elemente oder Variablen, die am Anfang des Arrays eingefgt werden sollen. Rckgaben

Die neue Lnge des Arrays.


Beschreibung

Methode; fgt am Anfang eines Arrays ein oder mehrere Elemente hinzu und gibt die neue Lnge des Arrays zurck.

Array()
Verfgbarkeit

Flash Player 6.
Verwendung Array() Array( [element0 [, element1 , element2,...elementN ] ]) Parameter element Rckgaben

Ein oder mehrere Elemente, die im Array platziert werden sollen.

Ein Array.
Beschreibung

Umwandlungsfunktion; erstellt ein neues, leeres Array oder konvertiert bestimmte Elemente in ein Array. Die Verwendung dieser Funktion hnelt dem Erstellen eines Arrays mit dem ArrayKonstruktor (siehe Konstruktor fr die Array-Klasse auf Seite 297).

asfunction
Verfgbarkeit

Flash Player 5.
Verwendung asfunction:funktion,"parameter"

asfunction

311

Parameter funktion parameter

Ein Bezeichner fr eine Funktion. Ein String, der an die im Parameter funktion angegebene Funktion bergeben

wird.
Rckgaben

Keine.
Beschreibung

Protokoll; ein Sonderprotokoll fr URLs in HTML-Textfeldern. In HTML-Textfeldern kann Text ber das HTML-Tag A in einen Hyperlink umgewandelt werden. Das Attribut HREF des Tags A enthlt eine URL, die in der Regel fr ein Standardprotokoll wie HTTP, HTTPS oder FTP gilt. Das Protokoll asfunction ist ein zustzliches, Flash-spezifisches Protokoll, das bewirkt, dass der Link eine ActionScript-Funktion aufruft.
Beispiel

Im folgenden Beispiel wird in den ersten drei Codezeilen die Funktion MeineFunktion() definiert. Das TextField-Objekt meinTextFeld ist mit einem HTML-Textfeld verknpft. Der Text "Hier klicken!" ist ein Hyperlink im Textfeld. Die Funktion MeineFunktion() wird aufgerufen, wenn der Benutzer auf den Hyperlink klickt.
function MeineFunktion(arg){ trace ("Sie haben hier geklickt! Der Parameter war "+arg); } meinTextfeld.htmlText ="<A HREF=\"asfunction:MeineFunktion,Foo \">Hier klicken!</A>";

Wenn auf den Hyperlink geklickt wird, erscheint das folgende Ergebnis im Ausgabefenster:
Sie haben hier geklickt! Der Parameter war Foo

Boolean-Klasse
Verfgbarkeit

Flash Player 5; seit Flash Player 6 ein natives Objekt, was zu einer deutlichen PerformanceSteigerung gefhrt hat.
Beschreibung

Die Boolean-Klasse ist ein Wrapper-Objekt mit derselben Funktionalitt wie das BooleanStandardobjekt in JavaScript. Mit der Boolean-Klasse knnen Sie den Grunddatentyp oder die Stringdarstellung eines Boolean-Objekts abrufen. Vor Aufruf der Methoden des Boolean-Objekts muss der Konstruktor new Boolean() zum Erstellen eines Boolean-Objekts verwendet werden.

312

Kapitel 12: ActionScript-Lexikon

Methodenbersicht fr die Boolean-Klasse


Methode
Boolean.toString()

Beschreibung Gibt die Stringdarstellung ("true" oder "false") des Boolean-Objekts zurck. Gibt den Grundwerttyp des angegebenen Boolean-Objekts zurck.

Boolean.valueOf()

Konstruktor fr die Boolean-Klasse


Verfgbarkeit

Flash Player 5.
Verwendung new Boolean([x]) Parameter x

Beliebiger Ausdruck. Dieser Parameter ist optional.

Rckgaben

Keine.
Beschreibung

Konstruktor; erstellt ein Boolean-Objekt. Wenn Sie den Parameter x weglassen, wird das Boolean-Objekt mit dem Wert false initialisiert. Wenn Sie einen Wert fr den Parameter x angeben, wertet die Methode ihn aus und gibt das Ergebnis als Booleschen Wert zurck. Dabei finden die Regeln der Methode Boolean() Anwendung.
Beispiel

Durch den folgenden Code wird ein neues leeres Boolean-Objekt namens meinBoolean erstellt:
meinBoolean = new Boolean();

Boolean.toString()
Verfgbarkeit

Flash Player 5.
Verwendung meinBoolean.toString() Parameter

Keine.
Rckgaben

Ein Boolescher Wert.


Beschreibung

Methode; gibt die Stringdarstellung ("true" oder "false")des Boolean-Objekts zurck.

Boolean.toString()

313

Boolean.valueOf()
Verfgbarkeit

Flash Player 5.
Verwendung meinBoolean.valueOf() Parameter

Keine.
Rckgaben

Ein Boolescher Wert.


Beschreibung

Methode; gibt true zurck, wenn der Grundwerttyp des angegebenen Boolean-Objekts wahr ist, und false, wenn er falsch ist
Beispiel var x:Boolean = new Boolean(); trace(x.valueOf()); // falsch x = (6==3+3); trace(x.valueOf()); // wahr

Boolean()
Verfgbarkeit

Flash Player 6; Verhalten gendert in Flash Player 7.


Verwendung Boolean(ausdruck) Parameter ausdruck Rckgaben

Ein Ausdruck, der in einen Booleschen Wert umgewandelt werden soll.

Ein Boolescher Wert oder der Wert ausdruck wie nachfolgend beschrieben.
Beschreibung

Funktion; wandelt den Parameter ausdruck in einen Booleschen Wert um und gibt entsprechend den folgenden Regeln einen Wert zurck: Wenn ausdruck ein Boolescher Wert ist, lautet der Rckgabewert ausdruck. Wenn ausdruck eine Zahl ist, lautet der Rckgabewert true, falls die Zahl ungleich Null ist. Andernfalls lautet der Rckgabewert false. Wenn ausdruck ein String ist, lautet der Rckgabewert wie folgt:

In Dateien, die fr Flash Player 6 oder niedriger verffentlicht wurden, wird der String zuerst
in eine Zahl konvertiert. Wenn diese Zahl ungleich Null ist, ist das Ergebnis true. Wenn die Zahl gleich Null ist, ist das Ergebnis false.

314

Kapitel 12: ActionScript-Lexikon

In Dateien, die fr Flash Player 7 verffentlicht wurden, ist das Ergebnis true, wenn der String
einen Wert grer als Null besitzt; fr einen leeren String ist der Wert false. Wenn ausdruck undefiniert ist, lautet der Rckgabewert false. Wenn ausdruck ein Movieclip oder Objekt ist, lautet der Rckgabewert true.
Siehe auch

Boolean-Klasse

break
Verfgbarkeit

Flash Player 4.
Verwendung break Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Anweisung; erscheint in Schleifen (for, for..in, do while oder while) oder in einem Anweisungsblock, der mit einer bestimmten case-Bedingung in einer switch-Aktion verknpft ist. Die Aktion break weist Flash an, den restlichen Teil der Schleife zu berspringen, die Schleifenaktion abzubrechen und die Anweisung auszufhren, die auf die Schleifenanweisung folgt. Bei Verwendung der Aktion break bergeht der Flash-Interpreter die restlichen Anweisungen in diesem case-Block und springt zur ersten Anweisung, die auf die umschlieende switch-Aktion folgt. Mit der Aktion break knnen Sie eine Reihe von verschachtelten Schleifen verlassen.
Beispiel

Im folgenden Beispiel wird die Aktion break verwendet, um eine Endlosschleife zu verlassen.
i = 0; while (true) { if (i >= 100) { break; } i++; } Siehe auch break, for, for..in, do while, while, switch, case

break

315

Button-Klasse
Verfgbarkeit

Flash Player 6.
Beschreibung

Alle Schaltflchensymbole in einer SWF-Datei sind Instanzen des Button-Objekts. Sie knnen einer Schaltflche im Eigenschafteninspektor einen Instanznamen zuweisen und Schaltflchen mit den Methoden und Eigenschaften der Button-Klasse per ActionScript bearbeiten. Schaltflcheninstanznamen erscheinen im Film-Explorer und im Dialogfeld Zielpfad einfgen des Bedienfelds Aktionen. Die Button-Klasse erbt die Methoden und Eigenschaften der OObject-Klasse. Methodenbersicht fr die Button-Klasse
Methode
Button.getDepth()

Beschreibung Gibt die Tiefe einer Schaltflcheninstanz zurck.

Eigenschaftsbersicht fr die Button-Klasse


Eigenschaft
Button._alpha Button.enabled Button._focusrect

Beschreibung Der Transparenzwert einer Schaltflcheninstanz. Gibt an, ob eine Schaltflche aktiv ist. Gibt an, ob eine Schaltflche mit Fokus von einem gelben Rechteck umgeben ist. Die Hhe einer Schaltflcheninstanz in Pixel. Der Grad des in der aktuellen SWF-Datei verwendeten Anti-Aliasing. Verknpft ein ContextMenu-Objekt mit dem Button-Objekt. Der Instanzname einer Schaltflcheninstanz. Ein Verweis auf den Movieclip bzw. das Objekt, in dem der aktuelle Movieclip bzw. das aktuelle Objekt enthalten ist. Die Wiedergabequalitt der SWF-Datei. Grad der Drehung einer Schaltflcheninstanz. Soundabschnitt, der im Voraus geladen werden soll, in Sekunden. Gibt an, ob eine Schaltflche bei der automatischen Tabulatorreihenfolge bercksichtigt werden soll. Gibt die Tabulatorreihenfolge eines Objekts an. Der Zielpfad einer Schaltflcheninstanz. Gibt an, ob andere Schaltflchen durch das Loslassen der Maus ausgelste Ereignisse empfangen knnen.

Button._height Button._highquality Button.menu Button._name Button._parent

Button._quality Button._rotation Button._soundbuftime Button.tabEnabled

Button.tabIndex Button._target Button.trackAsMenu

316

Kapitel 12: ActionScript-Lexikon

Eigenschaft
Button._url

Beschreibung Die URL der SWF-Datei, durch die die Schaltflcheninstanz erstellt wurde. Gibt an, ob der Handcursor angezeigt werden soll, wenn mit der Maus ber eine Schaltflche gefahren wird. Ein Boolescher Wert, der angibt, ob eine Schaltflcheninstanz unsichtbar oder sichtbar ist. Die Breite einer Schaltflcheninstanz in Pixel. Die x-Koordinate einer Schaltflcheninstanz. Die x-Koordinate des Mauszeigers relativ zu einer Schaltflcheninstanz. Die horizontale Skalierung einer Schaltflcheninstanz in Prozent. Die y-Koordinate einer Schaltflcheninstanz. Die y-Koordinate des Mauszeigers relativ zu einer Schaltflcheninstanz. Die vertikale Skalierung einer Schaltflcheninstanz in Prozent.

Button.useHandCursor

Button._visible

Button._width Button._x Button._xmouse Button._xscale Button._y Button._ymouse Button._yscale

Ereignisprozedurbersicht fr die Button-Klasse


Ereignisprozedur
Button.onDragOut

Beschreibung Wird aufgerufen, wenn die Maustaste ber der Schaltflche gedrckt und der Mauszeiger dann aus der Schaltflche heraus gezogen wird. Wird aufgerufen, wenn die Maustaste auerhalb der Schaltflche gedrckt und der Mauszeiger dann ber die Schaltflche gezogen wird. Wird aufgerufen, wenn eine Taste losgelassen wird. Wird aufgerufen, wenn eine Schaltflche den Fokus verliert. Wird aufgerufen, wenn die Maustaste gedrckt wird, whrend sich der Mauszeiger ber einer Schaltflche befindet. Wird aufgerufen, wenn die Maustaste losgelassen wird, whrend sich der Mauszeiger ber einer Schaltflche befindet. Wird ausgelst, wenn die Maustaste losgelassen wird, whrend sich der Mauszeiger auerhalb der Schaltflche befindet, nachdem die Maustaste gedrckt wurde, whrend sich der Mauszeiger innerhalb der Schaltflche befand. Wird aufgerufen, wenn der Mauszeiger aus dem Schaltflchenbereich hinaus gezogen wird. Wird aufgerufen, wenn der Mauszeiger ber eine Schaltflche gezogen wird. Wird aufgerufen, wenn eine Schaltflche den Eingabefokus besitzt und eine Taste losgelassen wird.

Button.onDragOver

Button.onKeyUp Button.onKillFocus Button.onPress

Button.onRelease

Button.onReleaseOutside

Button.onRollOut

Button.onRollOver

Button.onSetFocus

Button-Klasse

317

Button._alpha
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._alpha Beschreibung

Eigenschaft; der Wert der Alpha-Transparenz der Schaltflche, die durch meine_schaltflaeche bezeichnet ist. Gltige Werte: 0 (vllig durchsichtig) bis 100 (vllig undurchsichtig). Der Standardwert ist 100. Objekte in einer Schaltflche mit _alpha = 0 sind aktiv, auch wenn sie nicht sichtbar sind.
Beispiel

Im folgenden Beispielcode wird die Eigenschaft _alpha einer Schaltflche namens stern_btn auf 30 % gesetzt, wenn der Benutzer auf die Schaltflche klickt.
on(release) { stern_btn._alpha = 30; } Siehe auch MovieClip._alpha, TextField._alpha

Button.enabled
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.enabled Beschreibung

Eigenschaft; ein Boolescher Wert, der angibt, ob eine Schaltflche aktiviert ist. Der Standardwert lautet true.

Button._focusrect
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._focusrect Beschreibung

Eigenschaft; ein Boolescher Wert, der angibt, ob um eine Schaltflche mit Tastaturfokus ein gelbes Rechteck angezeigt wird. Diese Eigenschaft hat Vorrang vor der globalen Eigenschaft _focusrect.

318

Kapitel 12: ActionScript-Lexikon

Button.getDepth()
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.getDepth() Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Tiefe einer Schaltflcheninstanz zurck.

Button._height
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._height Beschreibung

Eigenschaft; die Hhe der Schaltflche in Pixel.


Beispiel

Im folgenden Codebeispiel werden die Hhe und Breite einer Schaltflche eingestellt, wenn der Benutzer mit der Maus klickt:
meine_schaltflaeche._width = 200; meine_schaltflaeche._height = 200;

Button._highquality
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._highquality Beschreibung

Eigenschaft (global); gibt den Grad des in der aktuellen SWF-Datei verwendeten Anti-Aliasing an. Geben Sie 2 (beste Qualitt) an, um hohe Qualitt mit stndig aktivierter Bitmapglttung zu verwenden. Geben Sie 1 (hohe Qualitt) an, um das Anti-Aliasing zu aktivieren; hiermit werden Bitmaps geglttet, wenn die SWF-Datei keine Animationen enthlt. Geben Sie 0 (niedrige Qualitt) an, um das Anti-Aliasing zu deaktivieren.
Siehe auch

Q_quality

Button._highquality

319

Button.menu
Verfgbarkeit

Flash Player 7.
Verwendung meine_schaltflaeche.menu = kontextmenue Parameter kontextmenue Beschreibung

Ein ContextMenu-Objekt.

Eigenschaft; verknpft das ContextMenu-Objekt kontextmenue mit dem Button-Objekt meine_schaltflaeche. Mit der ContextMenu-Klasse knnen Sie das Kontextmen bearbeiten, das angezeigt wird, wenn ein Benutzer im Flash Player mit der rechten Maustaste klickt (Windows) bzw. beim Klicken die Taste <Ctrl> gedrckt hlt (Macintosh).
Beispiel

Im folgenden Beispiel wird ein ContextMenu-Objekt einem Button-Objekt namens speichern_btn zugeordnet. Das ContextMenu-Objekt enthlt nur eine Menoption (mit der Bezeichnung Speichern...), die mit einer Rckruf-nderungsprozedur namens doSave (hier nicht dargestellt) verknpft ist.
var menu_cm = new ContextMenu(); menu_cm.customItems.push(new ContextMenuItem("Speichern...", doSave)); function doSave(menu, obj) { // Code "Speichern" hier einfgen } speichern_btn.menu = menu_cm; Siehe auch

ContextMenu-Klasse, ContextMenuItem-Klasse, MovieClip.menu, TextField.menu

Button._name
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._name Beschreibung

Eigenschaft; Instanzname der in meine_schaltflaeche angegebenen Schaltflche.

Button.onDragOut
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onDragOut = function() {

320

Kapitel 12: ActionScript-Lexikon

// Anweisungen hier einfgen } Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn die Maustaste ber der Schaltflche gedrckt und der Mauszeiger dann aus der Schaltflche heraus gezogen wird. Sie mssen eine Funktion definieren, die beim Aufruf der Ereignisprozedur ausgefhrt wird.

Button.onDragOver
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onDragOver = function() { // Anweisungen hier einfgen } Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn die Maustaste auerhalb der Schaltflche gedrckt und der Mauszeiger dann ber die Schaltflche gezogen wird. Sie mssen eine Funktion definieren, die beim Aufruf der Ereignisprozedur ausgefhrt wird.
Beispiel

Im folgenden Beispiel wird eine Funktion fr die Prozedur onDragOver definiert, die eine trace()-Aktion an das Ausgabefenster sendet:
meine_schaltflaeche.onDragOver = function () { trace ("onDragOver aufgerufen"); }; Siehe auch Button.onKeyUp

Button.onDragOver

321

Button.onKeyDown
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onKeyDown = function() { // Anweisungen hier einfgen } Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn eine Schaltflche den Tastaturfokus besitzt und eine Taste gedrckt wird. Die Ereignisprozedur onKeyDown wird ohne Parameter aufgerufen. Mit Hilfe von Key.getAscii() und Key.getCode() knnen Sie ermitteln, welche Taste gedrckt wurde. Sie mssen eine Funktion definieren, die beim Aufruf der Ereignisprozedur ausgefhrt wird.
Beispiel

Im folgenden Beispiel wird fr die Prozedur onKeyDown eine Funktion definiert, die eine trace()-Aktion an das Ausgabefenster sendet:
meine_schaltflaeche.onKeyDown = function () { trace ("onKeyDown aufgerufen"); }; Siehe auch Button.onKeyUp

Button.onKeyUp
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onKeyUp = function() { // Anweisungen hier einfgen } Parameter

Keine.
Rckgaben

Keine.

322

Kapitel 12: ActionScript-Lexikon

Beschreibung

Ereignisprozedur; wird aufgerufen, wenn eine Schaltflche den Eingabefokus besitzt und eine Taste losgelassen wird. Die Ereignisprozedur onKeyUp wird ohne Parameter aufgerufen. Mit Hilfe von Key.getAscii() und Key.getCode() knnen Sie ermitteln, welche Taste gedrckt wurde. Sie mssen eine Funktion definieren, die beim Aufruf der Ereignisprozedur ausgefhrt wird.
Beispiel

Im folgenden Beispiel wird fr die Prozedur onKeyUp eine Funktion definiert, die eine trace()Aktion an das Ausgabefenster sendet:
meine_schaltflaeche.onKeyUp = function () { trace ("onKeyUp aufgerufen"); };

Button.onKillFocus
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onKillFocus = function (neuerFokus) { // Anweisungen hier einfgen } Parameter neuerFokus Rckgaben

Das Objekt, das den Fokus erhlt.

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn eine Schaltflche den Tastaturfokus verliert. Die Methode onKillFocus empfngt einen Parameter, neuerFokus, der das neue Objekt angibt, das den Fokus erhlt. Wenn kein Objekt den Fokus erhlt, enthlt neuerFokus den Wert null.

Button.onPress
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onPress = function() { // Anweisungen hier einfgen } Parameter

Keine.
Rckgaben

Keine.

Button.onPress

323

Beschreibung

Ereignisprozedur; wird aufgerufen, wenn eine Taste gedrckt wird. Sie mssen eine Funktion definieren, die beim Aufruf der Ereignisprozedur ausgefhrt wird.
Beispiel

Im folgenden Beispiel wird fr die Prozedur onPress eine Funktion definiert, die eine trace()Aktion an das Ausgabefenster sendet:
meine_schaltflaeche.onPress = function () { trace ("onPress aufgerufen"); };

Button.onRelease
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onRelease = function() { // Anweisungen hier einfgen } Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn eine Taste losgelassen wird. Sie mssen eine Funktion definieren, die beim Aufruf der Ereignisprozedur ausgefhrt wird.
Beispiel

Im folgenden Beispiel wird fr die Prozedur onRelease eine Funktion definiert, die eine trace()-Aktion an das Ausgabefenster sendet:
meine_schaltflaeche.onRelease = function () { trace ("onRelease aufgerufen"); };

Button.onReleaseOutside
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onRealeaseOutside = function() { // Anweisungen hier einfgen }

324

Kapitel 12: ActionScript-Lexikon

Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn die Maustaste losgelassen wird, whrend sich der Mauszeiger auerhalb der Schaltflche befindet, nachdem die Maustaste gedrckt wurde, whrend sich der Mauszeiger innerhalb der Schaltflche befand. Sie mssen eine Funktion definieren, die beim Aufruf der Ereignisprozedur ausgefhrt wird.
Beispiel

Im folgenden Beispiel wird fr die Prozedur onReleaseOutside eine Funktion definiert, die eine trace()-Aktion an das Ausgabefenster sendet:
meine_schaltflaeche.onReleaseOutside = function () { trace ("onReleaseOutside aufgerufen"); };

Button.onRollOut
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onRollOut = function() { // Anweisungen hier einfgen } Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn sich der Mauszeiger auerhalb eines Schaltflchenbereichs befindet. Sie mssen eine Funktion definieren, die beim Aufruf der Ereignisprozedur ausgefhrt wird.
Beispiel

Im folgenden Beispiel wird fr die Prozedur onRollOut eine Funktion definiert, die eine trace()-Aktion an das Ausgabefenster sendet:
meine_schaltflaeche.onRollOut = function () { trace ("onRollOut aufgerufen"); };

Button.onRollOut

325

Button.onRollOver
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onRollOver = function() { // Anweisungen hier einfgen } Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn der Mauszeiger ber einen Schaltflchenbereich gezogen wird. Sie mssen eine Funktion definieren, die beim Aufruf der Ereignisprozedur ausgefhrt wird.
Beispiel

Im folgenden Beispiel wird fr die Prozedur onRollOver eine Funktion definiert, die eine trace()-Aktion an das Ausgabefenster sendet:
meine_schaltflaeche.onRollOver = function () { trace ("onRollOver aufgerufen"); };

Button.onSetFocus
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.onSetFocus = function(alterFokus){ // Anweisungen hier einfgen } Parameter alterFokus Rckgaben

Das Objekt, das den Tastaturfokus verliert.

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn eine Schaltflche den Tastaturfokus erhlt. Der Parameter alterFokus bezeichnet das Objekt, das den Fokus verliert. Wenn der Benutzer beispielsweise die Tabulatortaste drckt, um den Eingabefokus von einem Textfeld auf eine Schaltflche zu verschieben, enthlt alterFokus den Namen der Textfeldinstanz.

326

Kapitel 12: ActionScript-Lexikon

Wenn kein Objekt zuvor den Fokus hatte, enthlt alterFokus den Wert null.

Button._parent
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._parent.eigenschaft _parent.eigenschaft Beschreibung

Eigenschaft; referenziert den Movieclip bzw. das Objekt, in dem der aktuelle Movieclip bzw. das aktuelle Objekt enthalten ist. Als aktuelles Objekt gilt das Objekt mit dem ActionScript-Code, der auf _parent Bezug nimmt. Mit _parent knnen Sie einen relativen Pfad zu Movieclips oder Objekten angeben, die ber dem aktuellen Movieclip oder Objekt liegen. Anhand von _parent knnen Sie wie im folgenden Beispiel um mehrere Stufen in der Anzeigeliste nach oben klettern:
_parent._parent._alpha = 20; Siehe auch MovieClip._parent, _root, targetPath

Button._quality
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._quality Beschreibung

Eigenschaft (global); stellt die fr eine SWF-Datei verwendete Wiedergabequalitt ein oder ruft diese ab. Da fr Gerteschriftarten immer ein Aliasing erfolgt, hat die Eigenschaft _quality keine Auswirkung auf sie.
Hinweis: Obwohl Sie diese Eigenschaft fr ein Button-Objekt festlegen knnen, handelt es sich dabei eigentlich um eine globale Eigenschaft, und Sie knnen den Wert einfach als _quality festlegen. Weitere Informationen finden Sie unter Q_quality.

Button._rotation
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._rotation

Button._rotation

327

Beschreibung

Eigenschaft; die Drehung der Schaltflche in Grad nach der ursprnglichen Ausrichtung. Werte zwischen 0 und 180 geben eine Drehung im Uhrzeigersinn, Werte zwischen 0 und -180 eine Drehung gegen den Uhrzeigersinn an. Werte auerhalb dieses Bereichs werden zu 360 addiert bzw. von 360 subtrahiert, damit sich ein Wert innerhalb des Bereichs ergibt. Beispielsweise bedeutet die Anweisung meine_schaltflaeche._rotation = 450 dasselbe wie meine_schaltflaeche._rotation = 90.
Siehe auch MovieClip._rotation, TextField._rotation

Button._soundbuftime
Verfgbarkeit

Flash Player 6.
Verwendung meineSchaltflaeche._soundbuftime Beschreibung

Eigenschaft (global); eine Ganzzahl, die angibt, wie viele Sekunden eines Sounds vor dem Streaming gepuffert werden sollen.
Hinweis: Obwohl Sie diese Eigenschaft fr ein Button-Objekt festlegen knnen, handelt es sich dabei eigentlich um eine globale Eigenschaft, und Sie knnen den Wert einfach als _soundbuftime festlegen. Weitere Informationen finden Sie unter _soundbuftime.

Button.tabEnabled
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.tabEnabled Beschreibung

Eigenschaft; gibt an, ob meine_schaltflaeche bei der automatischen Tabulatorreihenfolge bercksichtigt werden soll. Diese Eigenschaft ist standardmig nicht definiert (undefined). Wenn die Eigenschaft tabEnabled den Wert undefined oder true aufweist, wird das Objekt bei der automatischen Tabulatorreihenfolge bercksichtigt. Das Objekt wird bei der benutzerdefinierten Tabulatorreihenfolge bercksichtigt, wenn die Eigenschaft tabIndex ebenfalls auf einen Wert gesetzt ist. Wenn tabEnabled auf false gesetzt ist, wird das Objekt bei der automatischen bzw. benutzerdefinierten Tabulatorreihenfolge nicht bercksichtigt, selbst wenn die Eigenschaft tabIndex gesetzt ist.
Siehe auch Button.tabIndex, MovieClip.tabEnabled, TextField.tabEnabled

328

Kapitel 12: ActionScript-Lexikon

Button.tabIndex
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.tabIndex Beschreibung

Eigenschaft; hiermit knnen Sie die Tabulatorreihenfolge von Objekten in einer SWF-Datei anpassen. Sie knnen die Eigenschaft tabIndex bei einer Schaltflchen-, Movieclip- oder Textfeldinstanz einstellen. Standardmig weist sie den Wert undefined auf. Wenn eines der gegenwrtig in der SWF-Datei angezeigten Objekte die Eigenschaft tabIndex aufweist, wird die automatische Tabulatorreihenfolge deaktiviert und die Tabulatorreihenfolge anhand der tabIndex-Eigenschaften der Objekte in der SWF-Datei ermittelt. Bei der benutzerdefinierten Tabulatorreihenfolge werden nur Objekte bercksichtigt, die die Eigenschaft tabIndex besitzen. Die Eigenschaft tabIndex kann eine nicht-negative Ganzzahl sein. Die Objekte werden entsprechend der Eigenschaft tabIndex in aufsteigender Reihenfolge angeordnet. Ein Objekt, bei dem die Eigenschaft tabIndex den Wert 1 hat, hat Vorrang vor einem Objekt, bei dem tabIndex den Wert 2 hat. Wenn zwei Objekte den gleichen tabIndex-Wert aufweisen, gilt das Objekt, das in der Tabulatorreihenfolge vor dem anderen kommt, als undefined. Die durch die Eigenschaft tabIndex festgelegte benutzerdefinierte Tabulatorreihenfolge ist eindimensional, d. h. die hierarchischen Beziehungen zwischen Objekten in der SWF-Datei bleiben unbercksichtigt. Alle Objekte in der SWF-Datei, die die Eigenschaft tabIndex aufweisen, werden in der Tabulatorreihenfolge angeordnet; diese wird wiederum durch die Reihenfolge der tabIndex-Werte bestimmt. Wenn zwei Objekte den gleichen tabIndex-Wert aufweisen, gilt das Objekt, das zuerst kommt, als undefined. Jedes Objekt muss einen eindeutigen tabIndex-Wert aufweisen.
Siehe auch Button.tabEnabled, MovieClip.tabChildren, MovieClip.tabEnabled, MovieClip.tabIndex, TextField.tabIndex

Button._target
Verfgbarkeit

Flash Player 6.
Verwendung meineSchaltflaeche._target Beschreibung

Eigenschaft (schreibgeschtzt); gibt den Zielpfad der Schaltflcheninstanz zurck, die in meine_schaltflaeche angegeben ist.
Siehe auch targetPath

Button._target

329

Button.trackAsMenu
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.trackAsMenu Beschreibung

Eigenschaft; ein Boolescher Wert, der angibt, ob andere Schaltflchen oder Movieclips durch das Loslassen der Maustaste erzeugte Ereignisse empfangen knnen. Sie knnen diese Eigenschaft bei der Erstellung von Mens verwenden. Die Eigenschaft trackAsMenu kann fr jedes beliebige Button- oder MovieClip-Objekt eingestellt werden. Wenn die Eigenschaft trackAsMenu nicht definiert wurde, lautet das Standardverhalten false. Die Eigenschaft trackAsMenu kann jederzeit gendert werden; die modifizierte Schaltflche bernimmt sofort das neue Verhalten.
Siehe auch MovieClip.trackAsMenu

Button._url
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._url Beschreibung

Eigenschaft (schreibgeschtzt); ermittelt den URL der SWF-Datei, durch die die Schaltflche erstellt wurde.

Button.useHandCursor
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche.useHandCursor Beschreibung

Eigenschaft; ein Boolescher Wert, der bei true (Standard) angibt, ob ein Handcursor angezeigt wird, wenn der Benutzer mit der Maus auf eine Schaltflche zeigt. Wenn diese Eigenschaft auf false gesetzt ist, wird stattdessen der Pfeilcursor verwendet. Die Eigenschaft useHandCursor kann jederzeit gendert werden; die modifizierte Schaltflche bernimmt sofort das neue Cursorverhalten. Die Eigenschaft useHandCursor kann aus einem Prototypobjekt ausgelesen werden.

330

Kapitel 12: ActionScript-Lexikon

Button._visible
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._visible Beschreibung

Eigenschaft; ein Boolescher Wert, der angibt, ob die durch meine_schaltflaeche bezeichnete Schaltflche sichtbar ist. Nicht sichtbare Schaltflchen (die Eigenschaft _visible ist auf false) sind deaktiviert.
Siehe auch MovieClip._visible, TextField._visible

Button._width
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._width Beschreibung

Eigenschaft; die Breite der Schaltflche in Pixel.


Beispiel

Im folgenden Beispiel werden die Hhe und Breite einer Schaltflche eingestellt:
meine_schaltflaeche._width=200; meine_schaltflaeche._height=200; Siehe auch MovieClip._width

Button._x
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._x

Button._x

331

Beschreibung

Eigenschaft; eine Ganzzahl, die die x-Koordinate einer Schaltflche relativ zu den lokalen Koordinaten des bergeordneten Movieclips festlegt. Wenn sich eine Schaltflche in der Hauptzeitleiste befindet, bezieht sich das Koordinatensystem auf die linke obere Ecke der Bhne (0,0). Befindet sich die Schaltflche dagegen in einem Movieclip, der transformiert wurde, dann liegt die Schaltflche im lokalen Koordinatensystem des sie umgebenden Movieclips. Bei einem um 90 Grad nach links gedrehten Movieclip erbt die eingeschlossene Schaltflche ein Koordinatensystem, das um 90 Grad nach links gedreht ist. Die Koordinaten einer Schaltflche beziehen sich auf die Position des Registrierungspunktes.
Siehe auch Button._xscale, Button._y, Button._yscale

Button._xmouse
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._xmouse Beschreibung

Eigenschaft (schreibgeschtzt); gibt die x-Koordinate der Mausposition relativ zur Schaltflche zurck.
Siehe auch Button._ymouse

Button._xscale
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._xscale Beschreibung

Eigenschaft; die horizontale Skalierung der Schaltflche in Prozent, die ausgehend vom Registrierungspunkt der Schaltflche angelegt wird. Der Standardregistrierungspunkt ist (0,0). Die Skalierung des lokalen Koordinatensystems wirkt sich auf die Einstellungen der Eigenschaften _x und _y aus die in Pixel angegeben werden. Wird der bergeordnete Movieclip beispielsweise auf 50 % skaliert und die Eigenschaft _x eingestellt, verschiebt sich ein Objekt in der Schaltflche um die halbe Anzahl von Pixel, die bei einer Skalierung von 100 % Anwendung fnde.
Siehe auch Button._x, Button._y, Button._yscale

332

Kapitel 12: ActionScript-Lexikon

Button._y
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._y Beschreibung

Eigenschaft; die y-Koordinate der Schaltflche relativ zu den lokalen Koordinaten des bergeordneten Movieclips. Wenn sich eine Schaltflche in der Hauptzeitleiste befindet, bezieht sich das Koordinatensystem auf die linke obere Ecke der Bhne (0,0). Befindet sich die Schaltflche dagegen in einem anderen Movieclip, der transformiert wurde, dann liegt die Schaltflche im lokalen Koordinatensystem des sie umgebenden Movieclips. Bei einem um 90 Grad nach links gedrehten Movieclip erbt die eingeschlossene Schaltflche ein Koordinatensystem, das um 90 Grad nach links gedreht ist. Die Koordinaten einer Schaltflche beziehen sich auf die Position des Registrierungspunktes.
Siehe auch Button._x, Button._xscale, Button._yscale

Button._ymouse
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._ymouse Beschreibung

Eigenschaft (schreibgeschtzt); gibt die y-Koordinate der Mausposition relativ zur Schaltflche zurck.
Siehe auch Button._xmouse

Button._yscale
Verfgbarkeit

Flash Player 6.
Verwendung meine_schaltflaeche._yscale Beschreibung

Eigenschaft; die vertikale Skalierung der Schaltflche in Prozent, die ausgehend vom Registrierungspunkt der Schaltflche angelegt wird. Der Standardregistrierungspunkt ist (0,0).

Button._yscale

333

Siehe auch Button._y, Button._x, Button._xscale

call()
Verfgbarkeit

Flash Player 4. Diese Aktion gilt seit Flash 5 als berholt. Macromedia empfiehlt stattdessen die Verwendung der Aktion function.
Verwendung call(bild) Parameter bild

Die Bezeichnung oder Nummer eines Bilds in der Zeitleiste.

Rckgaben

Keine.
Beschreibung

Veraltete Aktion; fhrt das Skript im aufgerufenen Bild aus, ohne den Abspielkopf auf dieses Bild zu verschieben. Lokale Variablen bleiben nach Ausfhrung des Skripts nicht erhalten.
Siehe auch function, Function.call()

Camera-Klasse
Verfgbarkeit

Flash Player 6.
Beschreibung

Die Camera-Klasse dient hauptschlich zur Verwendung mit dem Macromedia Flash Communication Server, kann aber in begrenztem Umfang auch ohne den Server verwendet werden. Mit der Camera-Klasse knnen Sie Videos von einer Videokamera aufzeichnen, die an einen Computer angeschlossen ist, auf dem Macromedia Flash Player ausgefhrt wird. So knnen Sie beispielsweise den Videofeed einer an das lokale System angeschlossenen Webcam berwachen. (Flash bietet auch eine vergleichbare Audiofunktionalitt. Weitere Informationen finden Sie unter Microphone-Klasse.) Um ein Camera-Objekt zu erstellen oder zu referenzieren, verwenden Sie Camera.get().

334

Kapitel 12: ActionScript-Lexikon

Methodenbersicht fr die Camera-Klasse


Methode
Camera.get()

Beschreibung Gibt ein Camera-Objekt (Standard oder benutzerdefiniert) zurck bzw. den Wert null, wenn die Kamera nicht verfgbar ist. Legt einzelne Parameter des Kameraaufnahmemodus fest, einschlielich Hhe, Breite und Videobilder pro Sekunde. Legt fest, wie viel Bewegung erfasst werden muss, bis Camera.onActivity(true) aufgerufen wird, und wie viel Zeit ohne Bewegung vergehen muss, bis Camera.onActivity(false) aufgerufen wird. Eine Ganzzahl, die angibt, welche Bandbreite (in Byte pro Sekunde) fr den momentan ausgehenden Videofeed maximal zur Verfgung steht.

Camera.setMode()

Camera.setMotionLevel()

Camera.setQuality()

Eigenschaftsbersicht fr die Camera-Klasse


Eigenschaft (schreibgeschtzt)
Camera.activityLevel Camera.bandwidth

Beschreibung Die Strke der Bewegung, die die Kamera erfasst. Die maximale Bandbreite (in Byte), die fr den momentan ausgehenden Videofeed zur Verfgung steht. Die Rate, mit der die Kamera momentan Daten erfasst (in Bildern pro Sekunde). Die Rate, mit der die Kamera Daten erfassen soll (in Bildern pro Sekunde). Die aktuelle Aufnahmebildhhe in Pixel. Die Indexposition der Kamera, wie in dem von Camera.names zurckgegebenen Array enthalten. Die Strke der Bewegung, die zum Aufruf von Camera.onActivity(true) erforderlich ist. Zeit in Millisekunden zwischen dem Zeitpunkt, ab dem die Kamera keine Bewegung mehr erfasst, und dem Zeitpunkt, wenn Camera.onActivity(false) aufgerufen wird. Ein Boolescher Wert, der angibt, ob der Benutzer den Zugriff auf die Kamera erlaubt oder verweigert hat. Der Name der Kamera, wie in der Kamerahardware angegeben. Klasseneigenschaft; Array mit den Namen aller verfgbaren Videoaufnahmegerte, einschlielich Grafikkarten und Kameras. Eine Ganzzahl, die die erforderliche Bildqualitt angibt, die sich aus dem Grad der Komprimierung jedes Videobilds ergibt. Die aktuelle Aufnahmebildbreite in Pixel.

Camera.currentFps

Camera.fps

Camera.height Camera.index

Camera.motionLevel

Camera.motionTimeOut

Camera.muted

Camera.name Camera.names

Camera.quality

Camera.width

Camera-Klasse

335

Ereignisprozedurbersicht fr die Camera-Klasse


Ereignisprozedur
Camera.onActivity

Beschreibung Wird aufgerufen, wenn die Bewegungserkennung durch die Kamera beginnt oder endet. Wird aufgerufen, wenn der Benutzer den Zugriff auf die Kamera erlaubt oder verweigert.

Camera.onStatus

Konstruktor fr die Camera-Klasse Weitere Informationen hierzu finden Sie unter Camera.get().

Camera.activityLevel
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.activityLevel Beschreibung

Schreibgeschtzte Eigenschaft; ein numerischer Wert, der die Strke der Bewegung angibt, die von der Kamera erfasst wird. Gltige Werte: 0 (keine erfasste Bewegung) bis 100 (sehr starke Bewegung). Anhand dieser Eigenschaft knnen Sie ermitteln, ob eine Einstellung an Camera.setMotionLevel() bergeben werden muss. Wenn die Kamera verfgbar aber noch nicht im Einsatz ist, da Video.attachVideo() noch nicht aufgerufen wurde, wird diese Eigenschaft auf -1 gesetzt. Beim Streaming von unkomprimierten lokalen Videos wird diese Eigenschaft nur dann gesetzt, wenn der Ereignisprozedur Camera.onActivity eine Funktion zugewiesen wurde. Andernfalls bleibt diese Eigenschaft undefiniert (undefined).
Siehe auch Camera.motionLevel, Camera.setMotionLevel()

Camera.bandwidth
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.bandwidth Beschreibung

Schreibgeschtzte Eigenschaft; eine Ganzzahl, die angibt, welche Bandbreite (in Byte) fr den momentan ausgehenden Videofeed maximal zur Verfgung steht. Der Wert 0 bedeutet, dass fr Flash-Videos so viel Bandbreite verwendet werden kann, wie fr die gewnschte Bildqualitt erforderlich ist.

336

Kapitel 12: ActionScript-Lexikon

Um diese Eigenschaft einzustellen, verwenden Sie Camera.setQuality().


Beispiel

Im folgenden Beispiel wird eine andere SWF-Datei geladen, falls die Bandbreite der Kamera 32 KB oder mehr betrgt.
if(meine_kamera.bandwidth >= 32768){ loadMovie("splat.swf",_root.hiddenvar); } Siehe auch Camera.setQuality()

Camera.currentFps
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.currentFps Beschreibung

Schreibgeschtzte Eigenschaft; die Rate, mit der die Kamera momentan Daten erfasst (in Bildern pro Sekunde). Diese Eigenschaft kann nicht eingestellt werden. Sie knnen aber mit der Methode Camera.setMode() die verwandte Eigenschaft Camera.fps setzen, die die maximale Bildrate angibt, mit der die Kamera Daten erfassen soll.
Siehe auch Camera.fps, Camera.setMode()

Camera.fps
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.fps Beschreibung

Schreibgeschtzte Eigenschaft; die maximale Rate, mit der die Kamera Daten erfassen soll (in Bildern pro Sekunde). Die maximal zulssige Rate richtet sich nach der Kamera. Wenn die Kamera den eingestellten Wert nicht untersttzt, kann die gewnschte Bildrate auch nicht erzielt werden.

Um diese Eigenschaft mit einem Wert zu belegen, verwenden Sie Camera.setMode(). Um festzustellen, mit welcher Rate die Kamera momentan Daten erfasst, verwenden Sie die
Eigenschaft Camera.currentFps.

Camera.fps

337

Beispiel

Im folgenden Beispiel wird die Bildrate pro Sekunde der aktiven Kamera meine_kamera.fps auf den Wert festgelegt, der im Benutzertextfeld this.config.txt_fps angegeben ist.
if (this.config.txt_fps != undefined) { meine_kamera.setMode(meine_kamera.width, meine_kamera.height, this.config.txt_fps, false); } Hinweis: Die Funktion setMode ist keine Garantie dafr, dass die eingestellte Bildrate tatschlich erzielt wird. Vielmehr wird die eingegebene Bildrate oder die schnellste verfgbare Bildrate eingestellt. Siehe auch Camera.currentFps, Camera.setMode()

Camera.get()
Verfgbarkeit

Flash Player 6.
Verwendung Camera.get([index]) Hinweis: Korrekte Syntax: Camera.get(). Um das Camera-Objekt einer Variablen zuzuweisen, verwenden Sie folgende Syntax: aktive_kamera = Camera.get(). Parameter index Eine optionale Ganzzahl mit der Basis Null, die angibt, welche Kamera verwendet werden soll; die Position in dem Array, das durch die Eigenschaft Camera.names zurckgegeben wird. Um die Standardkamera zu verwenden (fr die meisten Anwendungen empfohlen), lassen Sie diesen Parameter aus. Rckgaben

Falls index nicht angegeben ist, gibt diese Methode einen Bezug auf die Standardkamera
zurck, oder, falls diese von einer anderen Anwendung verwendet wird, auf die erste verfgbare Kamera. (Falls mehrere Kameras installiert sind, kann der Benutzer im Bedienfeld Kameraeinstellungen in Flash Player auswhlen, welche Kamera als Standardkamera verwendet werden soll.) Wenn keine Kameras verfgbar bzw. installiert sind, gibt diese Methode den Wert null zurck. Wenn index angegeben ist, gibt diese Methode einen Bezug auf die angeforderte Kamera zurck. Wenn diese Kamera nicht verfgbar ist, wird null zurckgegeben.

Beschreibung

Methode; gibt einen Bezug auf ein Camera-Objekt zum Aufnehmen von Videos zurck. Um mit der Videoaufnahme zu beginnen, muss das Camera-Objekt mit einem Video-Objekt verknpft werden (siehe Video.attachVideo()). Anders als bei Objekten, die mit dem Konstruktor new erstellt werden, referenzieren Mehrfachaufrufe von Camera.get() dieselbe Kamera. Falls ein Skript also die Zeilen erste_kamera = Camera.get() und zweite_kamera = Camera.get() enthlt, verweist sowohl erste_kamera als auch zweite_kamera auf dieselbe (standardmige) Kamera.

338

Kapitel 12: ActionScript-Lexikon

Im Allgemeinen ist es nicht erforderlich, einen Wert fr index zu bergeben; verwenden Sie einfach Camera.get(), um die Standardkamera zu referenzieren. Mit dem Bedienfeld Kameraeinstellungen kann der Benutzer eine Standardkamera fr Flash auswhlen (mehr hierzu weiter unten). Sie knnen einen Wert fr index bergeben, um z. B. eine andere Kamera als die Standardkamera zu referenzieren. In seltenen Fllen kann die Verwendung von index auch sinnvoll sein, wenn Ihre Anwendung gleichzeitig Videos von zwei Kameras aufzeichnet. Wenn eine SWF-Datei versucht, auf die Kamera zuzugreifen, die von Camera.get() zurckgegeben wird, wird im Flash Player das Dialogfeld Sicherheit angezeigt, mit dem der Nutzer den Zugriff auf die Kamera erlauben oder verweigern kann. (Achten Sie darauf, dass die Bhnengre mindestens 215 x 138 Pixel betrgt. Dies ist die Mindestgre, die Flash fr die Anzeige des Dialogfelds bentigt.)

Camera.onStatus

Wenn der Benutzer im Dialogfeld eine Option ausgewhlt hat, gibt die Ereignisprozedur ein Informationsobjekt zurck, das die Auswahl des Benutzers anzeigt. Um ohne Verarbeitung der Ereignisprozedur festzustellen, ob der Benutzer den Zugriff auf die Kamera erlaubt oder verweigert hat, verwenden Sie die Eigenschaft Camera.muted.

Der Benutzer kann auerdem dauerhafte Sicherheitseinstellungen fr eine bestimmte Domne vornehmen. Dazu muss er whrend der Wiedergabe einer SWF-Datei mit der rechten Maustaste klicken (Windows) bzw. beim Klicken die Taste <Ctrl> gedrckt halten (Macintosh), anschlieend Einstellungen whlen und im Bedienfeld Sicherheit die Option Speichern whlen.

Mit ActionScript knnen Sie den Erlauben- bzw. Verweigern-Wert fr einen Benutzer nicht ndern, aber Sie knnen mit System.showSettings(0) das Bedienfeld Sicherheit fr den Benutzer anzeigen. Wenn der Benutzer Speichern auswhlt, zeigt Flash Player das Dialogfeld Sicherheit fr Filme von dieser Domne nicht mehr an.

Camera.get()

339

Wenn Camera.get den Wert null zurckgibt, wird die Kamera entweder gerade von einer anderen Anwendung verwendet oder es sind keine Kameras im System installiert. Um festzustellen, ob Kameras installiert sind, verwenden Sie Camera.names.length. Um in Flash Player das Bedienfeld Kameraeinstellungen zu ffnen, in dem der Benutzer auswhlen kann, welche Kamera von Camera.get() referenziert werden soll, verwenden Sie System.showSettings(3).

Der Suchlauf zum berprfen der Hardware auf installierte Kameras kann einige Zeit in Anspruch nehmen. Wenn Flash mindestens eine Kamera gefunden hat, wird der Suchlauf fr diese Player-Instanz nicht noch einmal durchgefhrt. Falls Flash jedoch keine Kameras findet, wird der Suchlauf nach jedem Aufruf von Camera.get ausgefhrt. Diese Funktion ist besonders hilfreich, wenn der Benutzer vergessen hat, die Kamera anzuschlieen. Sofern Ihre SWF-Datei eine Schaltflche Wiederholen besitzt, mit der Camera.get aufgerufen wird, kann Flash nach der Kamera suchen, ohne dass die SWF-Datei erneut gestartet werden muss.
Beispiel

Im folgenden Beispiel wird ein Video lokal innerhalb eines Video-Objekts namens mein_video auf der Bhne aufgezeichnet und wiedergegeben.
var meine_kamera = Camera.get(); mein_video.attachVideo(meine_kamera); Siehe auch Camera.index, Camera.muted, Camera.names, Camera.onStatus, Camera.setMode(), System.showSettings(), Video.attachVideo()

Camera.height
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.height Beschreibung

Schreibgeschtzte Eigenschaft; die aktuelle Aufnahmebildhhe in Pixel. Um diese Eigenschaft mit einem Wert zu belegen, verwenden Sie Camera.setMode().
Beispiel

Mit der folgenden Codezeile wird ein Textfeld der Benutzeroberflche mit der aktuellen Hhe aktualisiert.
mein_txt._height = meineKamera.height;

Siehe auch das Beispiel zu Camera.setMode().

340

Kapitel 12: ActionScript-Lexikon

Siehe auch Camera.setMode(), Camera.width

Camera.index
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.index Beschreibung

Schreibgeschtzte Eigenschaft; eine Ganzzahl mit der Basis Null. Gibt die Indexposition der Kamera an, wie in dem von Camera.names zurckgegebenen Array enthalten.
Beispiel

Im folgenden Beispiel wird die Kamera mit dem Wert von index aufgerufen.
meine_kamera = Camera.get(index); Siehe auch Camera.get(), Camera.names

Camera.motionLevel
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.motionLevel Beschreibung

Schreibgeschtzte Eigenschaft; ein numerischer Wert, der die Strke der Bewegung angibt, die zum Aufruf von Camera.onActivity(true) erforderlich ist. Gltige Werte: 0 bis 100. Der Standardwert ist 50. Videos knnen unabhngig vom Wert der Eigenschaft motionLevel wiedergegeben werden. Weitere Informationen finden Sie unter Camera.setMotionLevel().
Siehe auch Camera.activityLevel, Camera.onActivity, Camera.onStatus, Camera.setMotionLevel()

Camera.motionTimeOut
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.motionTimeOut

Camera.motionTimeOut

341

Beschreibung

Schreibgeschtzte Eigenschaft; Zeit in Millisekunden zwischen dem Zeitpunkt, ab dem die Kamera keine Bewegung mehr erfasst, und dem Zeitpunkt, wenn Camera.onActivity(false) aufgerufen wird. Der Standardwert ist 2000 (2 Sekunden). Um diesen Wert einzustellen, verwenden Sie Camera.setMotionLevel().
Beispiel

Im folgenden Beispiel wird die Zeit zwischen dem Zeitpunkt, ab dem die Kamera keine Bewegung mehr erfasst, und dem Zeitpunkt, wenn Camera.onActivity(false) aufgerufen wird, auf 1000 Millisekunden (d. h. 1 Sekunde) gesetzt.
if(meine_kamera.motionTimeOut >= 1000){ meine_kamera.setMotionLevel(meine_kamera.motionLevel, 1000); } Siehe auch Camera.onActivity, Camera.setMotionLevel()

Camera.muted
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.muted Beschreibung

Schreibgeschtzte Eigenschaft; ein Boolescher Wert, der angibt, ob der Benutzer im Bedienfeld Sicherheitseinstellungen im Flash Player den Zugriff auf die Kamera verweigert (true) oder erlaubt hat (false). Wenn dieser Wert gendert wird, wird Camera.onStatus aufgerufen. Weitere Informationen finden Sie unter Camera.get().
Siehe auch Camera.get(), Camera.onStatus

Camera.name
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.name Beschreibung

Schreibgeschtzte Eigenschaft; ein String mit dem Namen der aktuellen Kamera, wie in der Kamerahardware angegeben.

342

Kapitel 12: ActionScript-Lexikon

Beispiel

Im folgenden Beispiel wird der Name der Standardkamera im Ausgabefenster angezeigt. In Windows ist dieser Name identisch mit den Gertenamen, wie er auf der Eigenschaftenseite Scanner und Kameras angezeigt wird.
meine_cam = Camera.get(); trace("Name der Kamera: " + meine_kamera.name); Siehe auch Camera.get(), Camera.names

Camera.names
Verfgbarkeit

Flash Player 6.
Verwendung Camera.names Hinweis: Korrekte Syntax: Camera.names. Um einer Variablen den Rckgabewert zuzuweisen, verwenden Sie folgende Syntax: kamera_array = Camera.names. Um den Namen der aktuellen Kamera festzustellen, verwenden Sie aktive_kamera.name. Beschreibung

Schreibgeschtzte Klasseneigenschaft; ruft ein Array mit Strings ab, in dem die Namen aller verfgbaren Kameras enthalten sind, ohne das Bedienfeld Sicherheitseinstellungen in Flash Player anzuzeigen. Dieses Array verhlt sich ebenso wie alle anderen ActionScript-Arrays, gibt also implizit die auf Null basierende Indexposition jeder Kamera und die Anzahl von Kameras im System zurck (mittels Camera.names.length). (Weitere Informationen hierzu finden Sie unter Array-Klasse.) Zum Aufrufen der Eigenschaft Camera.names ist eine genaue berprfung der Hardware erforderlich, daher kann der Aufbau des Arrays einige Sekunden dauern. In den meisten Fllen knnen Sie einfach die Standardkamera verwenden.
Beispiel

Im folgenden Beispiel wird die Standardkamera verwendet, sofern nur eine Kamera verfgbar ist; sind mehrere Kameras verfgbar, kann der Benutzer auswhlen, welche Kamera als Standardkamera verwendet werden soll.
kamera_array = Camera.names; if (kamera_array.length == 1){ meine_cam = Camera.get(); } else { System.showSettings(3); meine_cam = Camera.get(); } Siehe auch Camera.get(), Camera.index, Camera.name

Camera.names

343

Camera.onActivity
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.onActivity = function(aktivitaet) { // Anweisungen hier einfgen } Parameter aktivitaet

Ein Boolescher Wert, der auf true gesetzt wird, wenn die Kamera beginnt, Bewegung zu erfassen; false, wenn die Kamera keine Bewegung mehr erfasst.

Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn die Bewegungserkennung durch die Kamera beginnt oder endet. Um auf diese Ereignisprozedur reagieren zu knnen, mssen Sie eine Funktion erstellen, die den Wert aktivitaet verarbeitet. Um anzugeben, wie viel Bewegung erforderlich ist, um Camera.onActivity(true) aufzurufen, und wie viel Zeit ohne Aktivitt vergehen muss, bevor Camera.onActivity(false) aufgerufen wird, verwenden Sie Camera.setMotionLevel().
Beispiel

Im folgenden Beispiel wird im Ausgabefenster true oder false angezeigt, wenn die Bewegungserkennung durch die Kamera beginnt bzw. endet
// Annahme, dass sich ein Videoobjekt namens "mein_videoobjekt" auf der Bhne befindet meine_cam = Camera.get(); mein_videoobjekt.attachVideo(meine_cam); meine_kamera.setMotionLevel(10, 500); meine_kamera.onActivity = function(mode) { trace(mode); } Siehe auch Camera.onActivity, Camera.setMotionLevel()

Camera.onStatus
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.onStatus = function(infoobjekt) { // Anweisungen hier einfgen }

344

Kapitel 12: ActionScript-Lexikon

Parameter infoObjekt Rckgaben

Ein Parameter, der anhand der Statusmeldung definiert wird.

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn der Benutzer den Zugriff auf die Kamera erlaubt oder verweigert. Um auf diese Ereignisprozedur reagieren zu knnen, mssen Sie eine Funktion erstellen, die das von der Kamera erzeugte Informationsobjekt verarbeitet. Wenn eine SWF-Datei versucht, auf die Kamera zuzugreifen, wird im Flash Player das Dialogfeld Sicherheit angezeigt, mit dem der Benutzer den Zugriff erlauben oder verweigern kann.

Wenn der Benutzer den Zugriff erlaubt, wird die Eigenschaft Camera.muted auf false gesetzt,
und diese Prozedur wird mit einem Informationsobjekt aufgerufen, dessen Eigenschaft code mit Camera.Unmuted und dessen Eigenschaft level mit Status belegt ist. Wenn der Benutzer den Zugriff verweigert, wird die Eigenschaft Camera.muted auf true gesetzt, und diese Prozedur wird mit einem Informationsobjekt aufgerufen, dessen Eigenschaft code mit Camera.Muted und dessen Eigenschaft level mit Status belegt ist.

Um ohne Verarbeitung der Ereignisprozedur festzustellen, ob der Benutzer den Zugriff auf die Kamera erlaubt oder verweigert hat, verwenden Sie die Eigenschaft Camera.muted.
Hinweis: Falls der Benutzer den Zugriff fr alle SWF-Dateien von einer bestimmten Domne dauerhaft erlaubt bzw. verweigert, wird diese Prozedur fr SWF-Dateien von dieser Domne nicht aufgerufen, es sei denn, der Benutzer ndert die Sicherheitseinstellungen spter wieder. Weitere Informationen finden Sie unter Camera.get(). Beispiel

Folgende Ereignisprozedur zeigt eine Meldung an, wenn der Benutzer den Zugriff auf die Kamera erlaubt oder verweigert.
meine_kamera = Camera.get(); mein_videoobjekt.attachVideo(meine_kamera); meine_kamera.onStatus = function(info_meldung) { if(info_meldung.code == "Camera.Muted"){ trace("Benutzer hat den Zugriff auf die Kamera verweigert"); } else trace("Benutzer hat den Zugriff auf die Kamera erlaubt"); } // Erlauben- bzw. Verweigern-Wert ndern, um die Funktion aufzurufen System.showSettings(0); Siehe auch Camera.get(), Camera.muted

Camera.quality
Verfgbarkeit

Flash Player 6.

Camera.quality

345

Verwendung aktive_kamera.quality Beschreibung

Schreibgeschtzte Eigenschaft; eine Ganzzahl, die die erforderliche Bildqualitt angibt, die sich aus dem Grad der Komprimierung jedes Videobilds ergibt. Gltige Qualittswerte: 1 (niedrigste Qualitt, maximale Komprimierung) bis 100 (hchste Qualitt, keine Komprimierung). Der Standardwert ist 0, d. h., die Bildqualitt darf ggf. verndert werden, um eine berschreitung der vorhandenen Bandbreite zu verhindern.
Siehe auch Camera.setQuality()

Camera.setMode()
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.setMode(breite, hoehe, fps [,wunschgroesse]) Parameter breite hoehe fps

Die aktuelle Aufnahmebildbreite in Pixel. Der Standardwert ist 160. Die aktuelle Aufnahmebildhhe in Pixel. Der Standardwert ist 120.

Die Rate, mit der die Kamera Daten erfassen soll (in Bildern pro Sekunde). Der Standardwert ist 15.

wunschgroesse Optional: Ein Boolescher Wert, der angibt, wie Breite, Hhe und Bildrate verndert werden sollen, wenn die Kamera keinen Modus besitzt, in dem die eingegebenen Kriterien erfllt werden. Der Standardwert ist true, dabei hat die gewnschte Bildgre Vorrang. Bei diesem Parameter wird der Modus ausgewhlt, der den Werten breite und hoehe am nchsten kommt, auch wenn dadurch die Bildrate reduziert und die Leistung verschlechtert wird. Soll die Bildrate Vorrang vor den Werten fr Hhe und Breite haben, bergeben Sie an den Parameter wunschgroesse den Wert false. Rckgaben

Keine.
Beschreibung

Methode; whlt den systemeigenen Kameraaufnahmemodus, in dem die ausgewhlten Kriterien am besten erfllt werden. Wenn die Kamera keinen systemeigenen Modus besitzt, in dem alle bergebenen Parameter erfllt werden, whlt Flash einen Aufnahmemodus, der den gewnschten Kriterien am nchsten kommt. Bei Bedarf wird dazu das Bild auch zugeschnitten, und es werden Bilder bersprungen. Standardmig berspringt Flash Bilder, sofern dies zum Beibehalten der gewnschten Bildgre erforderlich ist. Um die Anzahl der bersprungenen Bilder zu minimieren, auch wenn dazu ggf. die Bildgre reduziert werden muss, belegen Sie den Parameter wunschgroesse mit dem Wert false.

346

Kapitel 12: ActionScript-Lexikon

Bei der Auswahl eines systemeigenen Modus versucht Flash soweit mglich, das gewnschte Bildseitenverhltnis beizubehalten. Wenn Sie beispielsweise den Befehl aktive_kamera.setMode(400, 400, 30) eingeben und die maximalen Werte der Kamera fr Breite und Hhe 320 und 288 betragen, setzt Flash sowohl Breite als auch Hhe auf den Wert 288. So behlt Flash das gewnschte Bildseitenverhltnis von 1:1 bei. Um festzustellen, welche Werte den Eigenschaften tatschlich zugewiesen wurden, nachdem Flash den Modus ausgewhlt hat, der den gewnschten Werten am nchsten kommt, verwenden Sie Camera.width, Camera.height und Camera.fps.
Beispiel

Im folgenden Beispiel werden Breite, Hhe und Bildrate anhand der Benutzerwerte eingestellt, wenn der Benutzer auf die Schaltflche klickt. Der optionale Parameter wunschgroesse ist darin nicht enthalten, da bei der Standardeinstellung true die Einstellung gewhlt wird, die den gewnschten Einstellungen am nchsten kommt, ohne die Bildqualitt zu vermindern (auch wenn dazu ggf. die Bildrate vermindert werden muss). Die Benutzeroberflche wird dann mit den neuen Einstellungen aktualisiert.
on (press) { // Setzt Breite, Hhe und Bildrate auf die Benutzereinstellungen. _root.meine_kamera.setMode(txt_breite, txt_hoehe, txt_fps); // Aktualisiert die Benutzertextfelder mit den neuen Einstellungen. _root.txt_breite = meine_kamera.width; _root.txt_hoehe = meine_kamera.height; _root.txt_fps = meine_kamera.fps; } Siehe auch Camera.currentFps, Camera.fps, Camera.height, Camera.width

Camera.setMotionLevel()
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.setMotionLevel(toleranz [, timeout]) Parameter toleranz Ein numerischer Wert, der die Strke der Bewegung angibt, die zum Aufruf von Camera.onActivity(true) erforderlich ist. Gltige Werte: 0 bis 100. Der Standardwert ist 50.

Ein optionaler numerischer Parameter, der angibt, wie viele Millisekunden ohne Aktivitt vergehen mssen, bevor Flash keine Aktivitt mehr annimmt und die Ereignisprozedur Camera.onActivity(false) aufruft. Der Standardwert ist 2000 (2 Sekunden).
timeout Rckgaben

Keine.

Camera.setMotionLevel()

347

Beschreibung

Methode; legt fest, wie viel Bewegung erforderlich ist, um Camera.onActivity(true) aufzurufen. Legt optional fest, wie viel Zeit (in Millisekunden) ohne Aktivitt vergehen muss, bevor Flash annimmt, dass die Bewegung geendet hat, und Camera.onActivity(false) aufruft.
Hinweis: Videos knnen unabhngig vom Wert des Parameters toleranz wiedergegeben werden. Dieser Parameter legt nur fest, wann und unter welchen Umstnden Camera.onActivity aufgerufen wird, nicht jedoch, ob tatschlich Videodaten aufgezeichnet oder wiedergegeben werden.

Soll die Kamera keine Bewegung erfassen, setzen Sie den Wert von toleranz auf 100;
Camera.onActivity wird dann nie aufgerufen. (Normalerweise wird dieser Wert zur zu Testzwecken verwendet, z. B. um vorbergehend alle Aktionen zu deaktivieren, die ausgelst werden, wenn Camera.onActivity aufgerufen wird.) Um festzustellen, wie viel Bewegung die Kamera momentan erfasst, verwenden Sie die Eigenschaft Camera.activityLevel.

Die Bewegungstoleranz entspricht direkt den Aktivittswerten. Vlliges Fehlen von Bewegung entspricht dem Aktivittswert 0. Stndige Bewegung entspricht dem Aktivittswert 100. Bei fehlender Bewegung ist der Aktivittswert niedriger als die Bewegungstoleranz; bei Bewegung bersteigen die Aktivittswerte hufig die Bewegungstoleranz. Diese Methode hnelt Microphone.setSilenceLevel(). Mit beiden Methoden wird angegeben, wann die Ereignisprozedur onActivity aufgerufen werden soll. Beide Methoden haben jedoch unterschiedliche Auswirkungen auf die Verffentlichung von Streams:

Microphone.setSilenceLevel() ist dazu bestimmt, die Bandbreite zu optimieren. Wenn ein Audio-Stream lautlos ist, werden keine Audiodaten gesendet. Stattdessen wird eine Meldung gesendet, um den Beginn der Inaktivitt (Stille) anzuzeigen. Camera.setMotionLevel() ist dazu bestimmt, Bewegung festzustellen und hat keinen Einfluss auf die Nutzung der Bandbreite. Auch wenn ein Video-Stream keine Bewegung feststellt, werden weiterhin Videodaten gesendet.

Beispiel

Im folgenden Beispiel wird eine Meldung an das Ausgabefenster gesendet, wenn die Videoaktivitt beginnt oder endet. Setzen Sie die Bewegungstoleranz vom voreingestellten Wert 30 auf einen hheren oder niedrigeren Wert, um zu sehen, wie verschiedene Werte die Bewegungserkennung beeinflussen.
// Annahme, dass sich ein Videoobjekt namens "mein_videoobjekt" auf der Bhne befindet c = Camera.get(); x = 0; function motion(mode) { trace(x + ": " + mode); x++; } c.onActivity = function(mode) {motion(mode);}; c.setMotionLevel(30, 500); mein_videoobjekt.attachVideo(c); Siehe auch Camera.activityLevel, Camera.motionLevel, Camera.motionTimeOut, Camera.onActivity

348

Kapitel 12: ActionScript-Lexikon

Camera.setQuality()
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.setQuality(bandbreite, bildqualitaet) Parameter bandbreite

Eine Ganzzahl, die angibt, wie viel Bandbreite (in Byte pro Sekunde) fr den momentan ausgehenden Videofeed maximal zur Verfgung steht. Wenn fr Flash-Videos so viel Bandbreite verwendet werden soll, wie fr die gewnschte bildqualitaet erforderlich ist, belegen Sie bandbreite mit dem Wert 0. Der Standardwert ist 16384.

bildqualitaet Eine Ganzzahl, die die erforderliche Bildqualitt angibt, die sich aus dem Grad der Komprimierung jedes Videobilds ergibt. Gltige Werte: 1 (niedrigste Qualitt, maximale Komprimierung) bis 100 (hchste Qualitt, keine Komprimierung). Soll die Bildqualitt bei Bedarf gendert werden, um eine berschreitung der Bandbreite zu verhindern, belegen Sie bildqualitaet mit 0. Der Standardwert ist 0. Rckgaben

Keine.
Beschreibung

Methode; legt die maximale Bandbreite pro Sekunde bzw. die erforderliche Bildqualitt des momentan ausgehenden Videofeeds fest. Diese Methode ist nur fr die bertragung von Video ber den Flash Communication Server anwendbar. Mit dieser Methode knnen Sie festlegen, ob die Ausnutzung der Bandbreite oder die Bildqualitt des ausgehenden Videofeeds fr die Anwendung Vorrang haben soll.

Soll die Ausnutzung der Bandbreite Vorrang haben, geben Sie einen Wert fr bandbreite an,
und belegen Sie bildqualitaet mit dem Wert 0. Flash bertrgt Video dann innerhalb der angegebenen Bandbreite mit der bestmglichen Qualitt. Bei Bedarf reduziert Flash die Bildqualitt, um eine berschreitung der angegebenen Bandbreite zu verhindern. Allgemein gilt, dass bei strkerer Bewegung die Qualitt sinkt. Soll die Qualitt Vorrang haben, belegen Sie bandbreite mit dem Wert 0, und geben Sie fr bildqualitaet einen numerischen Wert an. Flash verwendet dann so viel Bandbreite, wie zum Beibehalten der angegebenen Qualitt erforderlich ist. Bei Bedarf reduziert Flash die Bildrate, um die gewnschte Bildqualitt zu erreichen. Allgemein gilt, dass bei strkerer Bewegung mehr Bandbreite verwendet wird. Sind Bandbreite und Qualitt gleichermaen wichtig, belegen Sie beide Parameter mit einem numerischen Wert. Flash bertrgt Video mit der angegebenen Qualitt, ohne die angegebene Bandbreite zu berschreiten. Bei Bedarf reduziert Flash die Bildrate, um die gewnschte Bildqualitt ohne berschreiten der angegebenen Bandbreite zu erreichen.

Beispiel

Die folgenden Beispiele zeigen, wie mit dieser Methode die Nutzung der Bandbreite und die Bildqualitt geregelt werden knnen:
// Maximal 8192 (8K/Sekunde) drfen zum Senden des Videos verwendet werden,

Camera.setQuality()

349

aktive_kamera.setQuality(8192,0); // Maximal 8192 (8K/Sekunde) drfen zum Senden des Videos verwendet werden, // Mindestqualitt ist 50 aktive_kamera.setQuality(8192,50); // Mindestqualitt 50, ohne Bercksichtigung der erforderlichen Bandbreite aktive_kamera.setQuality(0,50); Siehe auch Camera.bandwidth, Camera.quality

Camera.width
Verfgbarkeit

Flash Player 6.
Verwendung aktive_kamera.width Beschreibung

Schreibgeschtzte Eigenschaft; die aktuelle Aufnahmebildbreite in Pixel. Um diese Eigenschaft mit einem Wert zu belegen, verwenden Sie Camera.setMode().
Beispiel

Mit der folgenden Codezeile wird ein Textfeld der Benutzeroberflche mit der aktuellen Breite aktualisiert.
meinTextfeld.text=meine_kamera.width;

Siehe auch das Beispiel zu Camera.setMode().


Siehe auch Camera.height

case
Verfgbarkeit

Flash Player 4.
Verwendung case ausdruck: anweisungen Parameter ausdruck

Ein beliebiger Ausdruck. Beliebige Anweisungen.

anweisungen Rckgaben

Keine.

350

Kapitel 12: ActionScript-Lexikon

Beschreibung

Anweisung; definiert eine Bedingung fr die Aktion switch. Die Anweisungen im Parameter anweisungen werden ausgefhrt, wenn der Parameter ausdruck, der auf das Schlsselwort case folgt, mit dem Parameter ausdruck der Aktion switch identisch ist (strenge Gleichheit, ===). Wenn Sie das Schlsselwort case auerhalb einer switch-Anweisung verwenden, wird ein Fehler ausgegeben und das Skript nicht kompiliert.
Siehe auch break, default, === (strikte Gleichheit), switch

chr
Verfgbarkeit

Flash Player 4. Diese Funktion gilt seit Flash 5 als berholt und wurde durch String.fromCharCode() ersetzt.
Verwendung chr(nummer) Parameter nummer Rckgaben

Eine ASCII-Codenummer.

Keine.
Beschreibung

Stringfunktion; wandelt ASCII-Codenummern in Zeichen um.


Beispiel

Im folgenden Beispiel wird die Zahl 65 in den Buchstaben A umgewandelt und der Variablen meineVar zugewiesen.
meineVar = chr(65); Siehe auch String.fromCharCode()

class
Verfgbarkeit

Flash Player 6.
Verwendung [dynamic] class klassenname [ extends superClass ] [ implements Schnittstellenname [, Schnittstellenname... ] ] { // Hier Klassendefinition einfgen }

class

351

Hinweis: Um dieses Schlsselwort zu verwenden, mssen Sie auf der Registerkarte Flash im Dialogfeld Einstellungen fr Verffentlichungen der FLA-Datei die Einstellung ActionScript 2.0 aktivieren und Flash Player 6 bzw. Flash Player 7 whlen. Dieses Schlsselwort wird nur in externen Skriptdateien untersttzt, nicht jedoch in Skripts, die im Bedienfeld Aktionen erstellt wurden. Parameter klassenname superClass

Der vollstndig qualifizierte Name der Klasse. Optional; der Name der Klasse, die className erweitert (von der es erbt). Optional; der Name der Schnittstelle, deren Methoden className

Schnittstellenname

implementieren muss.
Beschreibung

Anweisung; definiert eine benutzerdefinierte Klasse, mit der Objekte instanziiert werden knnen, die benutzerdefinierte Methoden und Eigenschaften gemeinsam nutzen. Wenn Sie beispielweise ein Rechnungserfassungssystem entwickeln, knnen Sie eine Rechnungsklasse erstellen, die alle Methoden und Eigenschaften definiert, die eine Rechnung haben soll. Anschlieend erstellen Sie mit dem Befehl new invoice() Rechnungsobjekte. Der Name der Klasse muss mit dem Namen der externen Datei bereinstimmen, die diese Klasse enthlt. Wenn Sie beispielsweise einer Klasse den Namen Student geben, muss die Datei, die die Klasse definiert, den Namen Student.as erhalten. Der Klassenname muss innerhalb der Datei, in der er deklariert wird, vollstndig qualifiziert sein; er muss das Verzeichnis wiedergeben, in dem er gespeichert ist. Um beispielsweise die Klasse RequiredClass zu erstellen, die im Verzeichnis meineKlassen/Bildung/Lehrplan gespeichert ist, mssen Sie die Klasse in der Datei RequiredClass.as wie folgt deklarieren:
class meineKlassen.bildung.lehrplan.RequiredClass { }

Deshalb ist es empfehlenswert, vor dem Erstellen von Klassen die Verzeichnisstruktur zu planen. Wenn Sie die Klassendateien nach dem Erstellen verschieben mchten, mssen Sie andernfalls die Deklarationsanweisungen fr die Klasse entsprechend dem neuen Pfad ndern. Klassendefinitionen knnen nicht verschachtelt werden, d. h., Sie knnen innerhalb einer Klassendefinition keine zustzlichen Klassen definieren. Um anzugeben, dass Objekte zur Laufzeit dynamische Eigenschaften hinzufgen und auf diese zugreifen knnen, stellen Sie der Klassenanweisung das Schlsselwort dynamic voran. Um auf Schnittstellen basierende Klassen zu erstellen, verwenden Sie das Schlsselwort implements. Um Unterklassen einer Klasse zu erstellen, verwenden Sie das Schlsselwort extends. (Eine Klasse kann nur eine Klasse erweitern, kann aber mehrere Schnittstellen implementieren.) Die Schlsselwrter implements und extends knnen zusammen in einer Anweisung verwendet werden.
class c implements schnittstelle_i, schnittstelle_j // Richtig class c extends klasse_d implements schnittstelle_i, schnittstelle_j // Richtig class c extends klasse_d, klasse_e // Nicht richtig

Weitere Informationen finden Sie unter Klassen erstellen und verwenden auf Seite 180.

352

Kapitel 12: ActionScript-Lexikon

Beispiel

Im folgenden Beispiel wird eine Klasse namens Pflanzen erstellt. Der entsprechende Konstruktor besitzt zwei Parameter.
// Dateiname Pflanzen.as class Pflanzen { // Definition der Eigenschaftsnamen und -typen var blaetter:String; var bluetezeit:String; // Folgende Zeile: Konstruktor, // da der Name identisch ist mit dem Klassennamen function Pflanzen (param_blaetter:String, param_bluetezeit:String) { // bergebene Werte den Eigenschaften zuweisen, wenn ein neues PflanzenObjekt erstellt wird blaetter = param_blaetter; bluetezeit = param_bluetezeit; } // Methoden zum Zurckgeben der Eigenschaftswerte erstellen; sinnvollste Vorgehensweise, da // Eigenschaften einer Klasse nicht direkt referenziert werden sollten function getBlaetter():String {return blaetter}; function getBluetezeit():String {return bluetezeit}; }

In einer externen Skriptdatei oder im Bedienfeld Aktionen knnen Sie mit dem Operator new ein neues Pflanzen-Objekt erstellen.
var kiefer:Pflanzen = new Pflanzen("Nadelbaum","n. z."); // Besttigen, dass Parameter korrekt bergeben wurden trace(kiefer.getBlaetter()); trace(kiefer.getBluetezeit()); Siehe auch dynamic, extends, implements, interface, new

clearInterval()
Verfgbarkeit

Flash Player 6.
Verwendung clearInterval( intervallID ) Parameter intervallID Rckgaben

Ein Objekt, das von einem Aufruf an setInterval() zurckgegeben wurde.

Keine.
Beschreibung

Funktion; entfernt einen Aufruf von setInterval().


Beispiel

Im folgenden Beispiel wird zuerst ein Intervallaufruf eingestellt und dann gelscht:

clearInterval()

353

function callback() { trace("Intervallfunktion aufgerufen"); } var intervallID; intervallID = setInterval( callback, 1000 ); // spter clearInterval( intervallID ); Siehe auch

setInterval()

Color-Klasse
Verfgbarkeit

Flash Player 5.
Beschreibung

Mit der Color-Klasse knnen Sie den RGB-Farbwert und die Farbtransformation von Movieclips einstellen und abrufen. Vor Aufruf der Methoden des Color-Objekts muss der Konstruktor new Color() zum Erstellen eines Color-Objekts verwendet werden. Methodenbersicht fr die Color-Klasse
Methode
Color.getRGB()

Beschreibung Gibt den numerischen RGB-Wert zurck, der durch den letzten Aufruf von setRGB() gesetzt wurde. Gibt die Transformationsinformationen zurck, die durch den letzten Aufruf von setTransform() gesetzt wurden. Legt die hexadezimale Darstellung des RGB-Werts fr ein Color-Objekt fest. Legt die Farbtransformation fr ein Color-Objekt fest.

Color.getTransform()

Color.setRGB()

Color.setTransform()

Konstruktor fr die Color-Klasse


Verfgbarkeit

Flash Player 5.
Verwendung new Color(ziel) Parameter ziel

Der Instanzname eines Movieclips.

Rckgaben

Keine.

354

Kapitel 12: ActionScript-Lexikon

Beschreibung

Konstruktor; erstellt ein Color-Objekt fr den im Parameter ziel angegebenen Movieclip. Sie knnen dann die Methoden des Color-Objekts einsetzen, um die Farben des gesamten Movieclips zu ndern.
Beispiel

Im folgenden Beispiel wird ein Color-Objekt namens meine_farbe fr den Movieclip mein_mc erstellt und dessen RGB-Wert festgelegt:
meine_farbe = new Color(mein_mc); meine_farbe.setRGB(0xff9933);

Color.getRGB()
Verfgbarkeit

Flash Player 5.
Verwendung meine_farbe.getRGB() Parameter

Keine.
Rckgaben

Eine Zahl, die den numerischen RGB-Wert der ausgewhlten Farbe angibt.
Beschreibung

Methode; gibt die numerischen Werte zurck, die durch den letzten Aufruf von setRGB() gesetzt wurden.
Beispiel

Im folgenden Beispiel wird der RGB-Wert des Color-Objekts meine_farbe abgerufen, in einen Hexadezimalstring umgewandelt und der Variablen wert zugewiesen:
value = meine_farbe.getRGB().toString(16); Siehe auch Color.setRGB()

Color.getTransform()
Verfgbarkeit

Flash Player 5.
Verwendung meine_farbe.getTransform() Parameter

Keine.

Color.getTransform()

355

Rckgaben

Ein Objekt, dessen Eigenschaften die aktuellen Offset- und Prozentwerte der angegebenen Farbe enthalten.
Beschreibung

Methode; gibt den Transformationswert zurck, der durch den letzten Aufruf von Color.setTransform() gesetzt wurde.
Siehe auch Color.setTransform()

Color.setRGB()
Verfgbarkeit

Flash Player 5.
Verwendung meine_farbe.setRGB(0xRRGGBB) Parameter 0xRRGGBB

Der Hexadezimal- oder RGB-Wert der gewnschten Farbe. RR, GG und BB setzen sich aus jeweils zwei Hexadezimalziffern zusammen, die den Offset fr jede Farbkomponente festlegen. 0x teilt dem ActionScript-Compiler mit, dass die Zahl ein Hexadezimalwert ist. Methode; gibt eine RGB-Farbe fr ein Color-Objekt an. Durch Aufrufen dieser Methode werden alle vorhergehenden Einstellungen fr Color.setTransform() auer Kraft gesetzt.

Beschreibung

Rckgaben

Keine.
Beispiel

Im folgenden Beispiel wird der RGB-Farbwert fr den Movieclip mein_mc gesetzt. Um zu sehen, wie dieser Code funktioniert, platzieren Sie einen Movieclip mit dem Instanznamen mein_mc auf der Bhne. Kopieren Sie dann den folgenden Code in Bild 1 in der Hauptzeitleiste, und whlen Sie Steuerung > Film testen.
meine_farbe = new Color(mein_mc); meine_Farbe.setRGB(0x993366); Siehe auch Color.setTransform()

Color.setTransform()
Verfgbarkeit

Flash Player 5.

356

Kapitel 12: ActionScript-Lexikon

Verwendung meine_Farbe.setTransform(meineFarbtransformation) Parameter meineFarbtransformation Ein mit dem Konstruktor new Object erstelltes Objekt. Diese Instanz der OObject-Klasse muss ber die folgenden Eigenschaften fr die Angabe von Farbtransformationswerten verfgen: ra, rb, ga, gb, ba, bb, aa, ab. Diese Eigenschaften werden unten erlutert. Rckgaben

Keine.
Beschreibung

Methode; legt die Farbtransformationsinformationen fr ein Color-Objekt fest. Der Parameter meineFarbtransformation ist ein generisches Objekt, das Sie mit dem Konstruktor new Object erstellen. Es weist Parameter auf, die die Prozent- und Offset-Werte fr die Rot-, Grn-, Blau- und Alpha-(Transparenz-) Komponenten einer Farbe angeben. Diese werden im Format 0xRRGGBBAA eingegeben. Die Parameter fr ein Farbtransformationsobjekt entsprechen den Einstellungen im Dialogfeld Effekt/Erweitert und werden nachfolgend erlutert:

ist der Prozentsatz fr die Rotkomponente (-100 bis 100). rb ist der Offset fr die Rotkomponente (-255 bis 255). ga ist der Prozentsatz fr die Grnkomponente (-100 bis 100). gb ist der Offset fr die Grnkomponente (-255 bis 255). ba ist der Prozentsatz fr die Blaukomponente (-100 bis 100). bb ist der Offset fr die Blaukomponente (-255 bis 255). aa ist der Prozentsatz fr Alpha (-100 bis 100). ab ist der Offset fr Alpha (-255 bis 255).
ra

Ein meineFarbtransformation-Parameter wird wie folgt erstellt:


meineFarbtransformation = new Object(); meineFarbtransformation.ra = 50; meineFarbtransformation.rb = 244; meineFarbtransformation.ga = 40; meineFarbtransformation.gb = 112; meineFarbtransformation.ba = 12; meineFarbtransformation.bb = 90; meineFarbtransformation.aa = 40; meineFarbtransformation.ab = 70;

Zur Erstellung eines meineFarbtransformation-Parameters knnen Sie auch die folgende Syntax verwenden:
meineFarbtransformation = { ra: 50, rb: 244, ga: 40, gb: 112, ba: 12, bb: 90, aa: 40, ab: 70}

Color.setTransform()

357

Beispiel

Im folgenden Beispiel wird ein neues Color-Objekt fr eine Ziel-SWF-Datei erstellt, ein generisches Objekt namens meineFarbtransformation mit den oben definierten Eigenschaften angelegt und das Farbtransformationsobjekt mit der Methode setTransform() an ein Color-Objekt bergeben. Um diesen Code in einem Flash-Dokument (FLA) zu verwenden, kopieren Sie ihn in Bild 1 in der Hauptzeitleiste, und platzieren Sie einen Movieclip mit dem Instanznamen mein_mc auf der Bhne.
// Farbobjekt erstellen namens meine_Farbe fr das Ziel mein_mc meine_farbe = new Color(mein_mc); // Farbtransformationsobjekt meineFarbtransformation anhand // des generischen Object-Objekts meineFarbtransformation = new Object(); // Werte einstellen fr meineFarbtransformation meineFarbtransformation = { ra: '50', rb: '244', ga: '40', gb: '112', ba: '12', bb: '90', aa: '40', ab: '70'}; // Farbtransformationsobjekt zu dem Color-Objekt zuordnen, // das Sie fr mein_mc erstellt haben meineFarbe.setTransform(meineFarbtransformation);

ContextMenu-Klasse
Verfgbarkeit

Flash Player 7.
Beschreibung

Mit der ContextMenu-Klasse werden die Elemente im Kontextmen von Flash Player zur Laufzeit gesteuert. Das Kontextmen wird durch Klicken mit der rechten Maustaste (Windows) oder durch Klicken bei gedrckter Taste <Ctrl> (Macintosh) auf den Flash Player eingeblendet. Mit den Methoden und Eigenschaften der ContextMenu-Klasse knnen Sie benutzerdefinierte Menelemente hinzufgen, die Anzeige der integrierten Kontextmenelemente (beispielsweise Vergrern und Drucken) steuern und Kopien von Mens erstellen. Sie knnen ein ContextMenu-Objekt an eine bestimmte Schaltflche, an einen Movieclip, an ein Textfeldobjekt oder an eine ganze Filmstufe anhngen. Sie verwenden hierfr die Eigenschaft menu der Button-, MovieClip- oder TextField-Klasse. Weitere Informationen zur Eigenschaft menu finden Sie unter Button.menu, MovieClip.menu und TextField.menu. Wenn Sie einem ContextMenu-Objekt neue Elemente hinzufgen mchten, erstellen Sie ein ContextMenuItem-Objekt und fgen es dann dem Array ContextMenu.customItems hinzu. Weitere Informationen zum Erstellen von Kontextmenelementen finden Sie unter dem Eintrag ContextMenuItem-Klasse. Flash Player verfgt ber drei Arten von Kontextmens: Das Standardmen (wird eingeblendet, wenn Sie mit der rechten Maustaste in Flash Player klicken), das Bearbeitungsmen (wird eingeblendet, wenn Sie mit der rechten Maustaste ber einem auswhlbaren oder bearbeitbaren Textfeld klicken) und ein Fehlermen (wird eingeblendet, wenn eine SWF-Datei nicht in Flash Player geladen werden konnte.) Mit der ContextMenu-Klasse knnen nur das Standard- und das Bearbeitungsmen verndert werden.

358

Kapitel 12: ActionScript-Lexikon

Benutzerdefinierte Menelemente werden immer oben im Kontextmen von Flash Player, oberhalb der integrierten Menelemente angezeigt. Integrierte und benutzerdefinierte Menelemente werden durch einen Balken getrennt. Ein Kontextmen kann maximal 15 benutzerdefinierte Menelemente enthalten. Sie mssen zunchst mit dem Konstruktor new ContextMenu() ein ContextMenu-Objekt erstellen, damit Sie die Methoden abrufen knnen. bersicht ber die Methoden fr die ContextMenu-Klasse
Methode
ContextMenu.copy()

Beschreibung Gibt eine Kopie des angegebenen ContextMenu-Objekts zurck. Flash Player aus.

ContextMenu.hideBuiltInItems() Blendet die meisten integrierten Elemente im Kontextmen von

bersicht ber die Eigenschaften der ContextMenu-Klasse


Eigenschaft
ContextMenu.builtInItems

Beschreibung Ein Objekt, dessen Elemente integrierten Elementen des Kontextmens entsprechen. Ein Array, standardmig nicht definiert, das ContextMenuItemObjekte enthlt.

ContextMenu.customItems

bersicht ber die Ereignisprozedur fr die ContextMenu-Klasse


Eigenschaft
ContextMenu.onSelect

Beschreibung Aufgerufen, bevor das Men angezeigt wird.

Konstruktor fr die ContextMenu-Klasse


Verfgbarkeit

Flash Player 7.
Verwendung new ContextMenu ([rckruffunktion]) Parameter rckruffunktion

Ein Verweis auf eine Funktion, die aufgerufen wird, wenn der Benutzer mit der rechten Maustaste bzw. bei gedrckter Taste <Ctrl> klickt, bevor das Men angezeigt wird. Dieser Parameter ist optional.

Rckgaben

Keine.

ContextMenu-Klasse

359

Beschreibung

Konstruktor; erstellt ein neues ContextMenu-Objekt. Sie knnen beim Erstellen des Objekts wahlweise einen Identifikator fr eine Ereignisprozedur angeben. Die angegebene Funktion wird aufgerufen, wenn das Kontextmen durch den Benutzer aktiviert wird, jedoch noch bevor das Men tatschlich angezeigt wird. Dies ist vorteilhaft, wenn Meninhalte auf der Basis des Anwendungsstatus oder des Objekttyps (Movieclip, Textfeld oder Schaltflche) angepasst werden, auf die der Benutzer mit der rechten Maustaste oder bei gedrckter Taste <Ctrl> klickt. (Ein Beispiel zum Erstellen einer Ereignisprozedur finden Sie unter ContextMenu.onSelect.)
Beispiel

Beim folgenden Beispiel werden alle integrierten Objekte im Kontextmen ausgeblendet. (Die Elemente Einstellungen und Info werden nach wie vor angezeigt, da sie nicht deaktiviert werden knnen.)
var newMenu = new ContextMenu(); newMenu.hideBuiltInItems(); _root.menu = newMenu;

Im vorliegenden Beispiel wird durch die angegebene Ereignisprozedur menuHandler auf der Grundlage der Booleschen Variablen showItem ein angepasstes Menelement aktiviert oder deaktiviert (mit dem Array ContextMenu.customItems). Wenn der Wert false lautet, wird das benutzerdefinierte Menelement deaktiviert, andernfalls wird es aktiviert.
var showItem = false; // ndern Sie diesen Wert auf true, um den Effekt zu sehen mein_cm = new ContextMenu(menuHandler); mein_cm.customItems.push(new ContextMenuItem("Hallo", itemHandler)); function menuHandler(obj, menuObj) { if (showItem == false) { menuObj.customItems[0].enabled = false; } else { menuObj.customItems[0].enabled = true; } } function itemHandler(obj, item) { } _root.menu = mein_cm; Siehe auch Button.menu, ContextMenu.onSelect, ContextMenu.customItems, ContextMenu.hideBuiltInItems(), MovieClip.menu, TextField.menu

ContextMenu.builtInItems
Verfgbarkeit

Flash Player 7.
Verwendung mein_cm.builtInItems

360

Kapitel 12: ActionScript-Lexikon

Beschreibung

Eigenschaft; ein Objekt mit den folgenden Booleschen Eigenschaften: save, zoom, quality, play, loop, rewind, forward_back und print. Wenn diese Variablen auf false gesetzt werden, werden die entsprechenden Menelemente aus dem angegebenen ContextMenu-Objekt entfernt. Diese Eigenschaften sind aufzhlbar und standardmig auf true gesetzt.
Beispiel

Im vorliegenden Beispiel sind die integrierten Menelemente Qualitt und Drucken fr das ContextMenu-Objekt mein_cm deaktiviert, das der Hauptzeitleiste der SWF-Datei zugeordnet ist.
var mein_cm = new ContextMenu (); mein_cm.builtInItems.quality=false; mein_cm.builtInItems.print=false; _root.menu = mein_cm;

Im nchsten Beispiel durchluft eine for..in-Schleife alle Namen und Werte der integrierten Menelemente des ContextMenu-Objekts mein_cm.
mein_cm = new ContextMenu(); for(eachProp in mein_cm.builtInItems) { var propName = eachProp; var propValue = mein_cm.builtInItems[propName]; trace(propName + ": " + propValue; }

ContextMenu.copy()
Verfgbarkeit

Flash Player 7.
Verwendung mein_cm.copy() Parameter

Keine.
Rckgaben

Ein ContextMenu-Objekt.
Beschreibung

Methode; erstellt eine Kopie des angegebenen ContextMenu-Objekts. Die Kopie bernimmt alle Eigenschaften des ursprnglichen Menobjekts.
Beispiel

In diesem Beispiel wird eine Kopie des ContextMenu-Objekts mein_cm erstellt, dessen integrierte Menelemente ausgeblendet sind. Auerdem wird ein Menelement mit dem Text Speichern... erstellt. Anschlieend wird eine Kopie von mein_cm erstellt und der Variablen clone_cm zugewiesen, die alle Eigenschaften des ursprnglichen Mens bernimmt.
mein_cm = new ContextMenu(); mein_cm.hideBuiltInItems(); mein_cm.customItems.push(new ContextMenuItem("Speichern...", saveHandler);

ContextMenu.copy()

361

function saveHandler (obj, menuItem) { saveDocument(); // angepasste Funktion (nicht angezeigt) } clone_cm = mein_cm.copy();

ContextMenu.customItems
Verfgbarkeit

Flash Player 7.
Verwendung mein_cm.customItems Beschreibung

Eigenschaft; ein Array von ContextMenuItem-Objekten. Jedes Objekt im Array steht fr ein von Ihnen definiertes Kontextmenelement. Mit dieser Eigenschaft knnen Sie diese angepassten Menelemente hinzufgen, entfernen und verndern. Wenn Sie neue Menelemente hinzufgen mchten, erstellen Sie zunchst ein neues ContextMenuItem-Objekt, und fgen dieses dann dem Array menu_mc.customItems hinzu (beispielsweise mit Array.push()). Weitere Informationen zum Erstellen neuer Menelemente finden Sie unter dem Eintrag ContextMenuItem-Klasse.
Beispiel

Im folgenden Beispiel wird das neue angepasste Menelement menuItem_cm mit dem Titel EMail senden sowie die Rckrufprozedur emailHandler (nicht angezeigt) erstellt. Das neue Menelement wird dann mit dem Array customItems dem ContextMenu-Objekt mein_cm hinzugefgt. Abschlieend wird das neue Men an den Movieclip email_mc angehngt.
var mein_cm = new ContextMenu(); var menuItem_cm = new ContextMenuItem("E-Mail senden", emailHandler); mein_cm.customItems.push(menuItem_cm); email_mc.menu = mein_cm; Siehe auch Button.menu,

ContextMenu-Klasse, MovieClip.menu, TextField.menu

ContextMenu.hideBuiltInItems()
Verfgbarkeit

Flash Player 7.
Verwendung mein_cm.hideBuiltInItems() Parameter

Keine.
Rckgaben

Keine.

362

Kapitel 12: ActionScript-Lexikon

Beschreibung

Methode; blendet alle integrierten Menelemente im angegebenen ContextMenu-Objekt aus (auer Einstellungen). Wenn der Flash Debug Player ausgefhrt wird, wird das Menelement Debugging angezeigt; fr SWF-Dateien, fr die Remote-Debugging nicht aktiviert ist, ist es abgeblendet. Mit dieser Methode werden nur Menelemente aus dem Standardkontextmen ausgeblendet. Sie hat keinen Einfluss auf Elemente des Bearbeitungs- oder Fehlermens. Weitere Informationen zu den unterschiedlichen Menarten finden Sie unter dem Eintrag ContextMenu-Klasse. Bei dieser Methode werden alle Booleschen Elemente von mein_cm.builtInItems auf false gesetzt. Sie knnen bestimmte integrierte Elemente sichtbar machen, indem Sie den entsprechenden Eintrag in mein_cm.builtInItems auf true setzen (wie im folgenden Beispiel dargestellt).
Beispiel

Im folgenden Beispiel wird das neue ContextMenu-Objekt mein_cm erstellt, wobei die integrierten Menelemente bis auf Drucken ausgeblendet sind. Das Menobjekt wird an die Hauptzeitleiste angehngt.
mein_cm = new ContextMenu(); mein_cm.hideBuiltInItems(); mein_cm.builtInItems.print = true; _root.menu = mein_cm;

ContextMenu.onSelect
Verfgbarkeit

Flash Player 7.
Verwendung mein_cm.onSelect = function (item:Object, item_menu:ContextMenu) { // Eigenen Code hier einfgen } Parameter item

Ein Verweis auf das Objekt (Movieclip, Schaltflche oder auswhlbares Textfeld), auf dem sich der Mauszeiger beim Aufrufen des Flash Player-Kontextmens befand und dessen menuEigenschaft auf ein gltiges ContextMenu-Objekt eingestellt ist.

item_menu Ein Verweis auf das ContextMenu-Objekt, das der menu-Eigenschaft von object zugewiesen wurde. Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn ein Benutzer das Flash Player-Kontextmen aktiviert, jedoch bevor das Men tatschlich eingeblendet wird. Hier knnen Sie den Inhalt des Kontextmens entsprechend dem aktuellen Anwendungsstatus anpassen.

ContextMenu.onSelect

363

Sie knnen auerdem die Rckrufprozedur fr ein ContextMenu-Objekt angeben, wenn Sie ein neues ContextMenu-Objekt erzeugen. (Weitere Informationen hierzu finden Sie unter ContextMenu-Klasse.)
Beispiel

Im folgenden Beispiel wird bestimmt, ber welche Art von Objekt das Kontextmen aufgerufen wird.
mein_cm = new ContextMenu(); menuHandler = function (obj:Object, menu:ContextMenu) { if(obj instanceof MovieClip) { trace("Movieclip: " + obj); } if(obj instanceof TextField) { trace("Textfeld: " + obj); } if(obj instanceof Button) { trace("Schaltflche: " + obj); } } mein_cm.onSelect = menuHandler;

ContextMenuItem-Klasse
Verfgbarkeit

Flash Player 7.
Beschreibung

Mit der ContextMenuItem-Klasse erstellen Sie benutzerdefinierte Menelemente, die im Flash Player-Kontextmen angezeigt werden. Jedes ContextMenuItem-Objekt verfgt ber einen Titel (Text), der im Kontextmen angezeigt wird, sowie eine Rckrufprozedur (eine Funktion), die bei Auswahl des Menelements aktiviert wird. Wenn Sie einem Kontextmen ein neues Kontextmenelement hinzufgen mchten, fgen Sie es dem Array customItems eines ContextMenu-Objekts hinzu. Sie knnen bestimmte Menelemente aktivieren bzw. deaktivieren, sichtbar bzw. unsichtbar machen und den Titel oder die mit einem Menelement verbundene Rckrufprozedur ndern. Benutzerdefinierte Menelemente werden im jeweiligen Kontextmen oben ber den integrierten Elementen angezeigt und stets durch eine Trennlinie von integrierten Menelementen getrennt. Dem Flash Player-Kontextmen knnen maximal 15 benutzerdefinierte Menelemente hinzugefgt werden. Jedes Element muss mindestens ein sichtbares Zeichen haben. Steuerzeichen, neue Zeilen und andere Leerzeichen werden ignoriert. Elemente knnen maximal 100 Zeichen umfassen. Elemente, die einem integrierten Element oder einem anderen benutzerdefinierten Element gleichen, werden ignoriert, unabhngig davon, ob das andere Element sichtbar ist oder nicht. Beim Vergleich von Menelementen werden Gro-/ Kleinschreibung, Satzzeichen und Leerzeichen nicht bercksichtigt. Benutzerdefinierte Elemente drfen keines der folgenden Wrter enthalten: Macromedia, Flash Player oder Einstellungen.

364

Kapitel 12: ActionScript-Lexikon

bersicht ber die Methoden fr die ContextMenuItem-Klasse


Methode
ContextMenuItem.copy()

Beschreibung Gibt eine Kopie des angegebenen ContextMenuItem-Objekts zurck.

bersicht ber die Eigenschaften der ContextMenuItem-Klasse


Eigenschaft
ContextMenuItem.caption ContextMenuItem.enabled

Beschreibung Gibt den im Menelement angezeigten Text an. Gibt an, ob das Menelement aktiviert oder deaktiviert ist. eingeblendet werden soll.

ContextMenuItem.separatorBefore Gibt an, ob oberhalb des Menelements eine Trennlinie

ContextMenuItem.visible

Gibt an, ob das Menelement sichtbar oder unsichtbar ist.

bersicht ber die Ereignisprozedur fr die ContextMenuItem-Klasse


Ereignisprozedur Beschreibung

ContextMenuItem.onSelect Aktiviert, wenn das Menelement ausgewhlt wird.

Konstruktor fr die ContextMenuItem-Klasse


Verfgbarkeit

Flash Player 7.
Verwendung new ContextMenuItem(titel, rckruffunktion, [trennzeichenVor, [aktiviert, [sichtbar] ] ] ) Parameter titel

Ein String, der den mit dem Menelement verbundenen Text angibt. Eine von Ihnen definierte Funktion, die bei Auswahl des Menelements

rckruffunktion

aufgerufen wird.
trennzeichenVor

Ein Boolescher Wert, der angibt, ob ber dem Menelement im Kontextmen eine Trennlinie angezeigt werden soll. Dieser Parameter ist optional, der Standardwert ist false.

aktiviert Ein Boolescher Wert, der angibt, ob das Menelement im Kontextmen aktiviert oder deaktiviert ist. Dieser Parameter ist optional, sein Standardwert ist true. sichtbar

Ein Boolescher Wert, der angibt, ob das Menelement sichtbar oder unsichtbar ist. Dieser Parameter ist optional, sein Standardwert ist true.

Rckgaben

Keine.

ContextMenuItem-Klasse

365

Beschreibung

Konstruktor; erstellt ein neues ContextMenuItem-Objekt, das dem Array ContextMenu.customItems hinzugefgt werden kann.
Beispiel

In diesem Beispiel werden dem ContextMenu-Objekt mein_cm die durch eine Trennlinie abgetrennten Menelemente Start und Stop hinzugefgt. Die startHandler()-Funktion wird aufgerufen, wenn im Kontextmen die Option Start ausgewhlt wird. stopHandler() wird aufgerufen, wenn Stop ausgewhlt wird. Das ContextMenu-Objekt wird auf die Hauptzeitleiste angewendet.
mein_cm = new ContextMenu(); mein_cm.customItems.push(new ContextMenuItem("Start", startHandler)); mein_cm.customItems.push(new ContextMenuItem("Stop", stopHandler, true)); function stopHandler(obj, item) { trace("Anhalten..."); } function startHandler(obj, item) { trace("Starten..."); } _root.menu = mein_cm;

ContextMenuItem.caption
Verfgbarkeit

Flash Player 7.
Verwendung menuItem_cmi.caption Beschreibung

Eigenschaft; ein String, der den Titel des Menelements (Text) angibt, der im Kontextmen angezeigt wird.
Beispiel

Im folgenden Beispiel wird der Titel fr das ausgewhlte Menelement (Spielpause) in der Ausgabeleiste angezeigt.
mein_cm = new ContextMenu(); menuItem_cmi = new ContextMenuItem("Spielpause", onPause); mein_cm.customItems. function onPause(obj, menuItem) { trace("Sie whlten: " + menuItem.caption); }

ContextMenuItem.copy()
Verfgbarkeit

Flash Player 7.
Verwendung menuItem_cmi.copy();

366

Kapitel 12: ActionScript-Lexikon

Rckgaben

Ein ContextMenuItem-Objekt.
Beschreibung

Methode; erstellt eine Kopie des angegebenen ContextMenuItem-Objekts und gibt diese zurck. Die Kopie umfasst alle Eigenschaften des ursprnglichen Objekts.
Beispiel

In diesem Beispiel wird das neue ContextMenuItem-Objekt original_cmi mit dem Titel Pause und der auf die Funktion onPause eingestellten Rckruffunktion erstellt. Im Beispiel wird dann eine Kopie des ContextMenuItem-Objekts erstellt und der Variablen copy_cmi zugewiesen.
original_cmi = new ContextMenuItem("Pause", onPause); function onPause(obj, menu) { _root.stop(); } original_cmi.visible = false; copy_cmi = orig_cmi.copy();

ContextMenuItem.enabled
Verfgbarkeit

Flash Player 7.
Verwendung menuItem_cmi.enabled Beschreibung

Eigenschaft; ein Boolescher Wert, der angibt, ob das angegebene Menelement aktiviert oder deaktiviert ist. Standardmig ist diese Eigenschaft true.
Beispiel

Im folgenden Beispiel wird ein neues Kontextmenelement erstellt und anschlieend deaktiviert.
var saveMenuItem = new ContextMenuItem("Speichern...", doSave); saveMenuItem.enabled = false;

ContextMenuItem.onSelect
Verfgbarkeit

Flash Player 7.
Verwendung menuItem_cmi.onSelect = function (obj, menuItem) { // Anweisungen hier einfgen } Parameter obj

Ein Verweis auf den Movieclip (oder die Zeitleiste), die Schaltflche oder das auswhlbare (bearbeitbare) Textfeld, auf das der Benutzer mit der rechten Maustaste oder bei gedrckter Taste <Ctrl> geklickt hat.

ContextMenuItem.onSelect

367

menuItem Rckgaben

Ein Verweis auf das ausgewhlte ContextMenuItem-Objekt.

Keine.
Beschreibung

Ereignisprozedur; wird aktiviert, wenn das angegebene Menelement im Flash PlayerKontextmen ausgewhlt wird. Die angegebene Rckrufprozedur erhlt zwei Parameter: obj, einen Verweis auf das Objekt, auf das beim Aktivieren des Flash Player-Kontextmens mit dem Mauszeiger gezeigt wurde, und menuItem, einen Verweis auf das ContextMenuItem-Objekt, das fr das ausgewhlte Menelement steht.
Beispiel

Im folgenden Beispiel wird der onSelect-Prozedur fr das ContextMenuItem-Objekt start_cmi eine Funktion zugewiesen. Mit der Funktion wird der Titel des ausgewhlten Menelements angezeigt.
start_cmi.onSelect = function (obj, item) { trace("Sie whlen: " + item.caption); } Siehe auch ContextMenu.onSelect

ContextMenuItem.separatorBefore
Verfgbarkeit

Flash Player 7.
Verwendung menuItem_cmi.separatorBefore Beschreibung

Eigenschaft; ein Boolescher Wert, der angibt, ob oberhalb des angegebenen Menelements eine Trennlinie angezeigt werden soll. Standardmig ist diese Eigenschaft auf false eingestellt.
Hinweis: Zwischen benutzerdefinierten und integrierten Menelementen wird immer eine Trennlinie eingeblendet. Beispiel

In diesem Beispiel werden die folgenden drei Menelemente erstellt: ffnen, Speichern und Drucken. Die Elemente Speichern und Drucken werden durch eine Linie getrennt. Die Menelemente werden dann dem Array customItems des ContextMenu-Objekts hinzugefgt. Abschlieend wird das Men an die Hauptzeitleiste der SWF-Datei angehngt.
mein_cm = new ContextMenu(); open_cmi = new ContextMenuItem("ffnen", itemHandler); save_cmi = new ContextMenuItem("Speichern", itemHandler); print_cmi = new ContextMenuItem("Drucken", itemHandler); print_cmi.separatorBefore = true; mein_cm.customItems.push(open_cmi, save_cmi, print_cmi); function itemHandler(obj, menuItem) { trace("Sie whlten: " + menuItem.caption);

368

Kapitel 12: ActionScript-Lexikon

}; _root.menu = mein_cm; Siehe auch ContextMenu.onSelect

ContextMenuItem.visible
Verfgbarkeit

Flash Player 7.
Verwendung menuItem_cmi.visible Beschreibung

Eigenschaft; ein Boolescher Wert, der angibt, ob das angegebene Menelement sichtbar ist, wenn das Flash Player-Kontextmen eingeblendet wird. Standardmig ist diese Eigenschaft true.

continue
Verfgbarkeit

Flash Player 4.
Verwendung continue Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Anweisung; wird in verschiedenen Arten von Schleifenanweisungen verwendet und verhlt sich bei jeder Schleifenart anders. In einer while-Schleife weist continue den Flash-Interpreter an, den restlichen Teil der Schleife zu bergehen und an den Anfang der Schleife zu springen, wo die Bedingung geprft wird. In einer do while-Schleife weist continue den Flash-Interpreter an, den restlichen Teil der Schleife zu bergehen und an das Ende der Schleife zu springen, wo die Bedingung geprft wird. In einer for-Schleife weist continue den Flash-Interpreter an, den restlichen Teil der Schleife zu bergehen und zur Auswertung des auf die for-Schleife folgenden Ausdrucks zu springen. In einer for...in-Schleife weist continue den Flash-Interpreter an, den restlichen Teil der Schleife zu bergehen und zurck an den Anfang der Schleife zu springen, wo der nchste Wert in der Aufzhlung verarbeitet wird.
Siehe auch do while, for, for..in, while

continue

369

CustomActions-Klasse
Verfgbarkeit

Flash Player 6.
Beschreibung

Die Methoden der CustomActions-Klasse ermglichen einer im Flash-Authoring-Tool ablaufenden SWF-Datei die Verwaltung von benutzerdefinierten Aktionen, die beim AuthoringTool registriert sind. Eine SWF-Datei kann benutzerdefinierte Aktionen installieren und deinstallieren sowie die XML-Definition einer benutzerdefinierten Aktion und die Liste aller registrierten benutzerdefinierten Aktionen abrufen. Anhand dieser Methoden knnen Sie SWF-Dateien erstellen, die Erweiterungen des FlashAuthoring-Tools sind. Eine solche Erweiterung knnte beispielsweise das Flash Application Protocol zum Navigieren in einem UDDI-Repository und zum Herunterladen von Webdiensten in die Aktionswerkzeugleiste nutzen. bersicht ber die Methoden fr die CustomActions-Klasse
Methode
CustomActions.get()

Beschreibung Liest den Inhalt einer XML-Definitionsdatei fr benutzerdefinierte Aktionen. Installiert eine neue XML-Definitionsdatei fr benutzerdefinierte Aktionen. Gibt eine Liste aller registrierten benutzerdefinierten Aktionen zurck. Entfernt eine XML-Definitionsdatei fr benutzerdefinierte Aktionen.

CustomActions.install()

CustomActions.list()

CustomActions.uninstall()

CustomActions.get()
Verfgbarkeit

Flash Player 6.
Verwendung CustomActions.get(benutzerdefinierteAktionenName) Parameter benutzerdefinierteAktionenName

Der Name der Definition fr benutzerdefinierte

Aktionen, die abgerufen werden soll.


Rckgaben

Wenn die XML-Definition der benutzerdefinierten Aktion ermittelt wird, wird ein String zurckgegeben; andernfalls wird undefined zurckgegeben.
Beschreibung

Methode; liest den Inhalt einer XML-Definitionsdatei fr benutzerdefinierte Aktionen namens benutzerdefinierteAktionenName.

370

Kapitel 12: ActionScript-Lexikon

Hierbei muss es sich um einen einfachen Dateinamen ohne die Erweiterung .xml und ohne Verzeichnistrennzeichen (:, / oder \) handeln. Wenn die durch benutzerdefinierteAktionenName angegebene Definitionsdatei nicht gefunden werden kann, wird der Wert undefined zurckgegeben. Wenn die durch den Parameter benutzerdefinierteAktionenName angegebene XML-Definition fr benutzerdefinierte Aktionen gefunden wird, wird ihr gesamter Inhalt gelesen und als String zurckgegeben.

CustomActions.install()
Verfgbarkeit

Flash Player 6.
Verwendung CustomActions.install(benutzerdefinierteAktionenName, benutzerdefinierteXMLDefinition) Parameter benutzerdefinierteAktionenName

Der Name der zu installierenden Definition fr Der Name der zu installierenden XML-Definition.

benutzerdefinierte Aktionen.
benutzerdefinierteXMLDefinition Rckgaben

Der Boolesche Wert false, wenn ein Fehler bei der Installation auftritt; andernfalls wird durch den Wert true angegeben, dass die benutzerdefinierte Aktion erfolgreich installiert wurde.
Beschreibung

Methode; installiert eine neue XML-Definitionsdatei fr benutzerdefinierte Aktionen, die durch den Parameter benutzerdefinierteAktionenName angegeben ist. Der Inhalt der Datei wird durch den String benutzerdefinierteXMLDefinition angegeben. Hierbei muss es sich um einen einfachen Dateinamen ohne die Erweiterung .xml und ohne Verzeichnistrennzeichen (:, / oder \) handeln. Wenn es bereits eine Datei namens benutzerdefinierteAktionenName gibt, wird sie berschrieben. Wenn das Verzeichnis Configuration/ActionsPanel/CustomActions beim Aufruf dieser Methode noch nicht vorhanden ist, wird es erstellt.

CustomActions.list()
Verfgbarkeit

Flash Player 6.
Verwendung CustomActions.list() Parameter

Keine.

CustomActions.list()

371

Rckgaben

Ein Array.
Beschreibung

Methode; gibt ein Array-Objekt mit den Namen aller benutzerdefinierten Aktionen zurck, die beim Flash-Authoring-Tool registriert sind. Die Array-Elemente sind einfache Dateinamen ohne die Erweiterung .xml und ohne Verzeichnistrennzeichen (:, / oder \). Wenn keine benutzerdefinierten Aktionen registriert sind, gibt list() einen Array mit der Lnge Null zurck. Wenn ein Fehler auftritt, gibt list() den Wert undefined zurck.

CustomActions.uninstall()
Verfgbarkeit

Flash Player 6.
Verwendung CustomActions.uninstall(benutzerdefinierteAktionenName) Parameter benutzerdefinierteAktionenName

Der Name der zu deinstallierenden Definition fr

benutzerdefinierte Aktionen.
Rckgaben

Der Boolesche Wert false, wenn keine benutzerdefinierten Aktionen mit dem Namen benutzerdefinierteAktionenName gefunden wird. Wenn die benutzerdefinierten Aktionen erfolgreich entfernt wurden, wird der Wert true zurckgegeben.
Beschreibung

Methode; entfernt die XML-Definitionsdatei fr benutzerdefinierte Aktionen namens benutzerdefinierteAktionenName. Hierbei muss es sich um einen einfachen Dateinamen ohne die Erweiterung .xml und ohne Verzeichnistrennzeichen (:, / oder \) handeln.

Date-Klasse
Verfgbarkeit

Flash Player 5.
Beschreibung

Mit der Date-Klasse knnen Sie Datums- und Zeitwerte relativ zur Weltzeit (GMT, heute als Koordinierte Weltzeit, UTC bezeichnet) oder relativ zum Betriebssystem abrufen, unter dem Flash Player ausgefhrt wird. Die Methoden der Date-Klasse sind nicht statisch, sondern gelten nur fr das jeweilige Date-Objekt, das beim Aufruf der Methode angegeben wird. Die Date.UTC()-Methode stellt eine Ausnahme dar. Sie ist eine statische Methode. Wie die Sommerzeit von der Date-Klasse behandelt wird, hngt vom Betriebssystem und der Flash Player-Version ab. Flash Player behandelt ab Version 6 die Sommerzeit auf den folgenden Betriebssystemen auf folgende Art:

372

Kapitel 12: ActionScript-Lexikon

Windows: Das Date-Objekt passt seine Ausgabe automatisch an die Sommerzeit an. Das DateObjekt ermittelt, ob fr das aktuelle Gebietsschema Sommerzeit Gltigkeit hat, und wenn ja, wann die Umstellung auf Sommer- bzw. Winterzeit erfolgt. Die gegenwrtig verwendeten Umstellungstermine werden jedoch auch auf Datumswerte in der Vergangenheit und Zukunft angewendet, sodass bei in der Vergangenheit liegenden Datumswerten, zu denen fr das Gebietsschema andere Umstellungstermine galten, der Sommerzeitausgleich u. U. falsch berechnet wird. Mac OS X: Das Date-Objekt passt seine Ausgabe automatisch an die Sommerzeit an. Anhand der Zeitzonendatenbank in Mac OS X wird ermittelt, ob fr in der Gegenwart oder Vergangenheit liegende Datums- oder Uhrzeitwerte ein Sommerzeitausgleich erfolgen soll.

Der Flash Player 5 behandelt die Sommerzeit wie folgt:

Windows: Die US-Sommerzeitregeln finden immer Anwendung, was u. U. zu falschen


Umstellungsterminen in Europa und anderen Regionen mit Sommerzeit fhrt. Ob im aktuellen Gebietsschema Sommerzeit verwendet wird, wird von Flash korrekt erkannt. Um die Methoden der Date-Klasse aufzurufen, mssen Sie zunchst mit dem Konstruktor fr die Date-Klasse (spter in diesem Abschnitt erlutert) ein Date-Objekt erstellen. bersicht: Methoden der Date-Klasse
Methode
Date.getDate() Date.getDay() Date.getFullYear() Date.getHours() Date.getMilliseconds() Date.getMinutes() Date.getMonth() Date.getSeconds() Date.getTime()

Beschreibung Gibt den Tag des Monats gem Ortszeit zurck. Gibt den Wochentag gem Ortszeit zurck. Gibt die vierstellige Jahreszahl gem Ortszeit zurck. Gibt die Stunde gem Ortszeit zurck. Gibt die Millisekunde gem Ortszeit zurck. Gibt die Minute gem Ortszeit zurck. Gibt den Monat gem Ortszeit zurck. Gibt die Sekunde gem Ortszeit zurck. Gibt die Anzahl der Millisekunden zurck, die seit dem 1. Januar 1970, 0.00 Uhr Weltzeit, vergangen sind. Gibt die Differenz zwischen der Ortszeit des Computers und der Weltzeit in Minuten zurck. Gibt den Tag des Monats gem Weltzeit zurck. Gibt den Wochentag gem Weltzeit zurck. Gibt die vierstellige Jahreszahl gem Weltzeit zurck. Gibt die Stunde gem Weltzeit zurck. Gibt die Millisekunde gem Weltzeit zurck. Gibt die Minute gem Weltzeit zurck. Gibt den Monat gem Weltzeit zurck. Gibt die Sekunde gem Weltzeit zurck.

Date.getTimezoneOffset()

Date.getUTCDate() Date.getUTCDay() Date.getUTCFullYear() Date.getUTCHours() Date.getUTCMilliseconds() Date.getUTCMinutes() Date.getUTCMonth() Date.getUTCSeconds()

Date-Klasse

373

Methode
Date.getYear() Date.setDate()

Beschreibung Gibt das Jahr gem Ortszeit zurck. Stellt den Tag des Monats gem Ortszeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt das volle Jahr gem Ortszeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt die Stunde gem Ortszeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt die Millisekunde gem Ortszeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt die Minute gem Ortszeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt den Monat gem Ortszeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt die Sekunde gem Ortszeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt das Datum in Millisekunden ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt das Datum gem Weltzeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt das Jahr gem Weltzeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt die Stunde gem Weltzeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt die Millisekunde gem Weltzeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt die Minute gem Weltzeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt den Monat gem Weltzeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt die Sekunde gem Weltzeit ein. Gibt die neue Uhrzeit in Millisekunden zurck. Stellt das Jahr gem Ortszeit ein. Gibt einen Stringwert mit Datum und Zeit zurck, wie sie im angegebenen Date-Objekt gespeichert sind. Gibt die Anzahl der Millisekunden zurck, die zwischen dem 1. Januar 1970, 0.00 Uhr Weltzeit, und der angegebenen Zeit vergangen sind.

Date.setFullYear()

Date.setHours()

Date.setMilliseconds()

Date.setMinutes()

Date.setMonth()

Date.setSeconds()

Date.setTime()

Date.setUTCDate()

Date.setUTCFullYear()

Date.setUTCHours()

Date.setUTCMilliseconds()

Date.setUTCMinutes()

Date.setUTCMonth()

Date.setUTCSeconds()

Date.setYear() Date.toString()

Date.UTC()

Konstruktor fr die Date-Klasse


Verfgbarkeit

Flash Player 5.

374

Kapitel 12: ActionScript-Lexikon

Verwendung new Date() new Date(jahr, monat [, tag [, stunde [, minute [, sekunde [, millisekunde ]]]]]) Parameter jahr

Ein Wert von 0 bis 99 steht fr eine Jahreszahl zwischen 1900 und 1999, andernfalls mssen alle vier Ziffern der Jahreszahl angegeben werden. Eine Ganzzahl von 0 (Januar) bis 11 (Dezember). Eine Ganzzahl von 1 bis 31. Dieser Parameter ist optional. Eine Ganzzahl von 0 (Mitternacht) bis 23 (23.00 Uhr). Eine Ganzzahl von 0 bis 59. Dieser Parameter ist optional. Eine Ganzzahl von 0 bis 59. Dieser Parameter ist optional. Eine Ganzzahl von 0 bis 999. Dieser Parameter ist optional.

monat tag

stunde minute sekunde

millisekunde Rckgaben

Keine.
Beschreibung

Objekt; erstellt ein neues Date-Objekt, das den aktuellen Datums- und Uhrzeitwert bzw. das angegebene Datum aufnimmt.
Beispiel

Im folgenden Beispiel wird das aktuelle Datum und die aktuelle Uhrzeit abgerufen.
aktuelles_datum = new Date();

Im folgenden Beispiel wird ein neues Date-Objekt fr Georgs Geburtstag am 12. August 1974 erstellt. (Da die Monatsparameter bei 0 beginnen, wird in diesem Beispiel fr den Monat anstelle von 8 der Wert 7 eingesetzt.)
georgsGeburtstag_datum = new Date (74, 7, 12);

Im folgenden Beispiel wird ein neues Date-Objekt erstellt. Anschlieend werden die zurckgegebenen Werte von Date.getMonth(), Date.getDate() und Date.getFullYear() verkettet und im Textfeld angezeigt, das durch die Variable datumskette angegeben wird.
heutiges_datum = new Date(); datumskette = ((heutiges_datum.getMonth() + 1) + "/" + heutiges_datum.getDate() + "/" + heutiges_datum.getFullYear());

Date.getDate()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getDate()

Date.getDate()

375

Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt den Tag des Monats (eine Ganzzahl von 1 bis 31) des angegebenen Date-Objekts gem Ortszeit zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.getDay()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getDay() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt den Wochentag (0 fr Sonntag, 1 fr Montag usw.) des angegebenen DateObjekts gem Ortszeit zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.getFullYear()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getFullYear() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die vollstndige Jahreszahl (eine vierstellige Zahl, z. B. 2000) des angegebenen Date-Objekts gem Ortszeit zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

376

Kapitel 12: ActionScript-Lexikon

Beispiel

Im folgenden Beispiel wird mit dem Konstruktor ein neues Date-Objekt erstellt und der von der Methode getFullYear() zurckgegebene Wert im Ausgabefenster angezeigt:
mein_datum = new Date(); trace(mein_datum.getFullYear());

Date.getHours()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getHours() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Stunde (eine Ganzzahl von 0 bis 23) des angegebenen Date-Objekts gem Ortszeit zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.getMilliseconds()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getMilliseconds() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Millisekunde (eine Ganzzahl von 0 bis 999) des angegebenen Date-Objekts gem Ortszeit zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.getMinutes()
Verfgbarkeit

Flash Player 5.

Date.getMinutes()

377

Verwendung mein_datum.getMinutes() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Minute (eine Ganzzahl von 0 bis 59) des angegebenen Date-Objekts gem Ortszeit zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.getMonth()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getMonth() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt den Monat (0 fr Januar, 1 fr Februar usw.) des angegebenen Date-Objekts gem Ortszeit zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.getSeconds()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getSeconds() Parameter

Keine.
Rckgaben

Eine Ganzzahl.

378

Kapitel 12: ActionScript-Lexikon

Beschreibung

Methode; gibt die Sekunde (eine Ganzzahl von 0 bis 59) des angegebenen Date-Objekts gem Ortszeit zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.getTime()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getTime() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt fr das angegebene Date-Objekt die Anzahl der Millisekunden zurck, die seit 1. Januar 1970, 0.00 Uhr Weltzeit, vergangen sind. Mit dieser Methode knnen Sie beim Vergleich von zwei oder mehr Date-Objekten einen bestimmten Zeitpunkt angeben.

Date.getTimezoneOffset()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getTimezoneOffset() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Differenz zwischen der Ortszeit des Computers und der Weltzeit in Minuten zurck.
Beispiel

Im folgenden Beispiel wird die Differenz zwischen der lokalen Sommerzeit fr San Francisco und der Weltzeit zurckgegeben. Die Sommerzeit wird im zurckgegebenen Ergebnis nur bercksichtigt, wenn das im Date-Objekt definierte Datum in dem Zeitraum liegt, in dem die Sommerzeit gilt.
trace(new Date().getTimezoneOffset());

Date.getTimezoneOffset()

379

// // // //

Im Ausgabefenster wird 420 angezeigt: (7 Stunden * 60 Minuten/Stunde = 420 Minuten) In diesem Beispiel wird Pacific Daylight Time (PDT) verwendet (GMT-0700). Das Ergebnis variiert je nach Gebietsschema und Jahreszeit.

Date.getUTCDate()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getUTCDate() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt den Tag des Monats (eine Ganzzahl von 1 bis 31) des angegebenen Date-Objekts gem Weltzeit zurck.

Date.getUTCDay()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getUTCDay() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt den Wochentag (0 fr Sonntag, 1 fr Montag usw.) des angegebenen DateObjekts gem Weltzeit zurck.

Date.getUTCFullYear()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getUTCFullYear()

380

Kapitel 12: ActionScript-Lexikon

Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die vierstellige Jahreszahl des angegebenen Date-Objekts gem Weltzeit zurck.

Date.getUTCHours()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getUTCHours() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Stunde des angegebenen Date-Objekts gem Weltzeit zurck.

Date.getUTCMilliseconds()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getUTCMilliseconds() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Millisekunde des angegebenen Date-Objekts gem Weltzeit zurck.

Date.getUTCMinutes()
Verfgbarkeit

Flash Player 5.

Date.getUTCMinutes()

381

Verwendung mein_datum.getUTCMinutes() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Minute des angegebenen Date-Objekts gem Weltzeit zurck.

Date.getUTCMonth()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getUTCMonth() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt den Monat (0 fr Januar, 1 fr Februar usw.) des angegebenen Date-Objekts gem Weltzeit zurck.

Date.getUTCSeconds()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getUTCSeconds() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Sekunde des angegebenen Date-Objekts gem Weltzeit zurck.

382

Kapitel 12: ActionScript-Lexikon

Date.getYear()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.getYear() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt das Jahr des angegebenen Date-Objekts gem Ortszeit zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird. Das Jahr ist die vollstndige Jahreszahl minus 1900. Das Jahr 2000 wird z. B. als 100 dargestellt.
Siehe auch Date.getFullYear()

Date.setDate()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setDate(tag) Parameter tag

Eine Ganzzahl von 1 bis 31.

Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt den Tag des Monats fr das angegebene Date-Objekt gem Ortszeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.setFullYear()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setFullYear(jahr [, monat [, tag]] )

Date.setFullYear()

383

Parameter jahr Eine vierstellige Zahl zur Angabe eines Jahres. Zweistellige Zahlen sind nicht fr Jahresangaben vorgesehen; 99 steht z. B. nicht fr das Jahr 1999, sondern fr das Jahr 99. monat tag

Eine Ganzzahl von 0 (Januar) bis 11 (Dezember). Dieser Parameter ist optional. Eine Zahl von 1 bis 31. Dieser Parameter ist optional.

Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt das Jahr fr das angegebene Date-Objekt gem Ortszeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Wenn die Parameter monat und tag angegeben werden, werden sie ebenfalls auf Ortszeit gesetzt. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird. Bei Aufruf dieser Methode werden die anderen Felder des angegebenen Date-Objekts nicht gendert. Die Methoden Date.getUTCDay() und Date.getDay() knnen jedoch einen neuen Wert zurckgeben, wenn sich der Wochentag aufgrund des Aufrufs dieser Methode ndert.

Date.setHours()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setHours(stunde) Parameter stunde Rckgaben

Eine Ganzzahl von 0 (Mitternacht) bis 23 (23.00 Uhr).

Eine Ganzzahl.
Beschreibung

Methode; stellt die Stunde fr das angegebene Date-Objekt gem Ortszeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.setMilliseconds()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setMilliseconds(millisekunde) Parameter millisekunde

Eine Ganzzahl von 0 bis 999.

384

Kapitel 12: ActionScript-Lexikon

Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt die Millisekunde fr das angegebene Date-Objekt gem Ortszeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.setMinutes()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setMinutes(minute) Parameter minute Rckgaben

Eine Ganzzahl von 0 bis 59.

Eine Ganzzahl.
Beschreibung

Methode; stellt die Minute fr das angegebene Date-Objekt gem Ortszeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.setMonth()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setMonth(monat [, tag ]) Parameter monat tag

Eine Ganzzahl von 0 (Januar) bis 11 (Dezember). Eine Ganzzahl von 1 bis 31. Dieser Parameter ist optional.

Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt den Monat fr das angegebene Date-Objekt gem Ortszeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.setMonth()

385

Date.setSeconds()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setSeconds(sekunde) Parameter sekunde Rckgaben

Eine Ganzzahl von 0 bis 59.

Eine Ganzzahl.
Beschreibung

Methode; stellt die Sekunde fr das angegebene Date-Objekt gem Ortszeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.setTime()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setTime(millisekunden) Parameter millisekunden Rckgaben

Ein ganzzahliger Wert, wobei 0 fr 0.00 Uhr GMT am 1. Januar 1970 steht.

Eine Ganzzahl.
Beschreibung

Methode; stellt das Datum fr das angegebene Date-Objekt in Millisekunden seit dem 1. Januar 1970, 0.00 Uhr GMT ein und gibt die neue Uhrzeit in Millisekunden zurck.

Date.setUTCDate()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setUTCDate(datum) Parameter tag

Eine Ganzzahl von 1 bis 31.

386

Kapitel 12: ActionScript-Lexikon

Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt das Datum fr das angegebene Date-Objekt gem Weltzeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Bei Aufruf dieser Methode werden die anderen Felder des angegebenen Date-Objekts nicht gendert. Die Methoden Date.getUTCDay() und Date.getDay() knnen jedoch einen neuen Wert zurckgeben, wenn sich der Wochentag aufgrund des Aufrufs dieser Methode ndert.

Date.setUTCFullYear()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setUTCFullYear(jahr [, monat [, tag]]) Parameter jahr monat tag

Das als vierstellige Zahl angegebene Jahr, z. B. 2000. Eine Ganzzahl von 0 (Januar) bis 11 (Dezember). Dieser Parameter ist optional. Eine Ganzzahl von 1 bis 31. Dieser Parameter ist optional.

Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt das Jahr fr das angegebene Date-Objekt (mein_datum) gem Weltzeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Optional knnen mit dieser Methode auch der Monat und der Tag eingestellt werden, die durch das angegebene Date-Objekt dargestellt werden. Bei Aufruf dieser Methode werden die anderen Felder des angegebenen Date-Objekts nicht gendert. Die Methoden Date.getUTCDay() und Date.getDay() knnen jedoch einen neuen Wert zurckgeben, wenn sich der Wochentag auf Grund des Aufrufs dieser Methode ndert.

Date.setUTCHours()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setUTCHours(stunde [, minute [, sekunde [, millisekunde]]]) Parameter stunde minute

Eine Ganzzahl von 0 (Mitternacht) bis 23 (23.00 Uhr). Eine Ganzzahl von 0 bis 59. Dieser Parameter ist optional.

Date.setUTCHours()

387

sekunde

Eine Ganzzahl von 0 bis 59. Dieser Parameter ist optional. Eine Ganzzahl von 0 bis 999. Dieser Parameter ist optional.

millisekunde Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt die Stunde fr das angegebene Date-Objekt gem Weltzeit ein und gibt die neue Uhrzeit in Millisekunden zurck.

Date.setUTCMilliseconds()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setUTCMilliseconds(millisekunde) Parameter millisekunde Rckgaben

Eine Ganzzahl von 0 bis 999.

Eine Ganzzahl.
Beschreibung

Methode; stellt die Millisekunde fr das angegebene Date-Objekt gem Weltzeit ein und gibt die neue Uhrzeit in Millisekunden zurck.

Date.setUTCMinutes()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setUTCMinutes(minute [, sekunde [, millisekunde]]) Parameter minute sekunde

Eine Ganzzahl von 0 bis 59. Eine Ganzzahl von 0 bis 59. Dieser Parameter ist optional. Eine Ganzzahl von 0 bis 999. Dieser Parameter ist optional.

millisekunde Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt die Minute fr das angegebene Date-Objekt gem Weltzeit ein und gibt die neue Uhrzeit in Millisekunden zurck.

388

Kapitel 12: ActionScript-Lexikon

Date.setUTCMonth()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setUTCMonth(monat [, tag]) Parameter monat tag

Eine Ganzzahl von 0 (Januar) bis 11 (Dezember). Eine Ganzzahl von 1 bis 31. Dieser Parameter ist optional.

Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt den Monat und optional den Tag (das Datum) fr das angegebene Date-Objekt gem Weltzeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Durch Aufrufen dieser Methode werden die anderen Felder des angegebenen Date-Objekts nicht gendert, doch knnen Date.getUTCDay() und Date.getDay() einen neuen Wert zurckgeben, wenn sich der Wochentag ndert, weil fr den date-Parameter ein Wert angegeben wurde.

Date.setUTCSeconds()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setUTCSeconds(sekunde [, millisekunde])) Parameter sekunde

Eine Ganzzahl von 0 bis 59. Eine Ganzzahl von 0 bis 999. Dieser Parameter ist optional.

millisekunde Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt die Sekunde fr das angegebene Date-Objekt gem Weltzeit ein und gibt die neue Uhrzeit in Millisekunden zurck.

Date.setYear()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.setYear(jahr)

Date.setYear()

389

Parameter jahr Wenn jahr eine Ganzzahl zwischen 0 und 99 ist, wird durch setYear das Jahr auf 1900 + jahr festgelegt. Andernfalls gilt fr das Jahr der Wert des jahr-Parameters. Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; stellt das Jahr fr das angegebene Date-Objekt gem Ortszeit ein und gibt die neue Uhrzeit in Millisekunden zurck. Die Ortszeit wird durch das Betriebssystem bestimmt, unter dem der Flash Player ausgefhrt wird.

Date.toString()
Verfgbarkeit

Flash Player 5.
Verwendung mein_datum.toString() Parameter

Keine.
Rckgaben

Ein String.
Beschreibung

Methode; gibt fr das angegebene Date-Objekt einen Stringwert in lesbarem Format sowie die neue Uhrzeit in Millisekunden zurck.
Beispiel

Im folgenden Beispiel werden die Informationen im Date-Objekt geburtstag_datum als String zurckgegeben.
var geburtstag_datum = new Date(74, 7, 12, 18, 15); trace (geburtstag_datum.toString());

Ausgabe (fr Pazifik-Standardzeit):


Mon Aug 12 18:15:00 GMT-0700 1974

Date.UTC()
Verfgbarkeit

Flash Player 5.
Verwendung Date.UTC(jahr, monat [, tag [, stunde [, minute [, sekunde [, millisekunde ]]]]])

390

Kapitel 12: ActionScript-Lexikon

Parameter jahr monat tag

Eine vierstellige Zahl, z. B. 2000. Eine Ganzzahl von 0 (Januar) bis 11 (Dezember). Eine Ganzzahl von 1 bis 31. Dieser Parameter ist optional. Eine Ganzzahl von 0 (Mitternacht) bis 23 (23.00 Uhr). Eine Ganzzahl von 0 bis 59. Dieser Parameter ist optional. Eine Ganzzahl von 0 bis 59. Dieser Parameter ist optional. Eine Ganzzahl von 0 bis 999. Dieser Parameter ist optional.

stunde minute sekunde

millisekunde Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Anzahl von Millisekunden zurck, die zwischen dem 1. Januar 1970, 0.00 Uhr Weltzeit, und der in den Parametern angegebenen Zeit vergangen sind. Dies ist eine statische Methode, die nicht durch ein bestimmtes Date-Objekt, sondern durch den Konstruktor des Date-Objekts aufgerufen wird. Mit dieser Methode knnen Sie ein Date-Objekt erstellen, das auf der Weltzeit basiert. Der Date-Konstruktor geht hingegen von der Ortszeit aus.
Beispiel

Im folgenden Beispiel wird ein neues Date-Objekt namens georgsGeburtstag_datum erstellt, das in Weltzeit definiert ist. Dies ist die Weltzeit-Variante des Beispiels fr die Konstruktormethode new Date().
georgsGeburtstag_datum = new Date(Date.UTC(1974, 7, 12));

default
Verfgbarkeit

Flash Player 6.
Verwendung default: anweisungen Parameter anweisungen Rckgaben

Beliebige Anweisungen.

Keine.
Beschreibung

Anweisung; definiert die Standardbedingung fr die Aktion switch. Die Anweisungen werden ausgefhrt, wenn der Parameter ausdruck der Aktion switch mit keinem der ausdruckParameter identisch ist (strikte Gleichheit), die auf die case-Schlsselwrter in einer switchAktion folgen.

default

391

Das Schlsselwrt default ist fr die Aktion switch nicht zwingend erforderlich. Die defaultBedingung muss in der Liste nicht an letzter Stelle stehen. Wenn Sie das Schlsselwort default auerhalb einer switch-Anweisung verwenden, wird ein Fehler ausgegeben und das Skript nicht kompiliert.
Beispiel

Im folgenden Beispiel ist Ausdruck A nicht gleich Ausdruck B oder D, sodass die auf das Schlsselwort default folgende Anweisung ausgefhrt und die trace()-Aktion an das Ausgabefenster gesendet wird.
switch ( A ) { case B: C; break; case D: E; break; default: trace ("keine spezifische Bedingung gefunden"); } Siehe auch switch, case, break

delete
Verfgbarkeit

Flash Player 5.
Verwendung delete (bezug) Parameter bezug

Der Name der zu lschenden Variablen bzw. des zu lschenden Objekts.

Rckgaben

Ein Boolescher Wert.


Beschreibung

Operator; lscht das Objekt bzw. die Variable, das/die durch den Parameter bezug bezeichnet wird, und gibt true zurck, wenn das Objekt erfolgreich gelscht wurde. Andernfalls wird false zurckgegeben. Mit diesem Operator lsst sich der durch Skripts belegte Speicherplatz freigeben. Obwohl delete ein Operator ist, wird er normalerweise - wie im folgenden Beispiel zu sehen - als Anweisung verwendet:
delete x;

Wenn der Parameter bezug nicht vorhanden ist oder nicht gelscht werden darf, schlgt der Operator delete u. U. fehl, und es wird false zurckgegeben. Vordefinierte Objekte und Eigenschaften sowie mit var definierte Variablen drfen nicht gelscht werden. Der Operator delete kann nicht zum Lschen von Movieclips verwendet werden.

392

Kapitel 12: ActionScript-Lexikon

Beispiel

Verwendung 1: Im folgenden Beispiel wird ein Objekt erstellt, verwendet und dann gelscht, sobald es nicht mehr bentigt wird.
konto = new Object(); konto.name = 'Jonas'; konto.stand = 10000; delete konto;

Verwendung 2: Im folgenden Beispiel wird eine Objekteigenschaft gelscht.


// Neues Objekt "konto" erstellen konto = new Object(); // Eigenschaft "name" zu "konto" konto.name = 'Jonas'; // Eigenschaft "name" lschen delete konto.name;

Verwendung 3: Ein weiteres Beispiel zum Lschen einer Objekteigenschaft:


// Array-Objekt mit der Lnge 0 erstellen mein_array = new Array(); // dem Array ein Element hinzufgen. Array.length ist jetzt 1 mein_array[0] = "abc"; // dem Array ein weiteres Element hinzufgen. Array.length ist jetzt 2 mein_array[1] = "def"; // dem Array ein weiteres Element hinzufgen. Array.length ist jetzt 3 mein_array[2] = "ghi"; // mein_array[2] wird gelscht, aber Array.length nicht gendert delete array[2]; trace(mein_array.length);

Verwendung 4: Im folgenden Beispiel wird das Verhalten von delete bei Objektbezgen veranschaulicht.
// Neues Objekt erstellen und Variable ref1 // zur Bezugnahme auf das Objekt zuweisen ref1 = new Object(); ref1.name = "Jutta"; // Bezugsvariable in eine neue Variable kopieren // und ref1 lschen ref2 = ref1; delete ref1;

Wenn ref1 nicht in ref2 kopiert worden wre, wrde beim Lschen von ref1 das Objekt gelscht werden, da keine Bezge auf dieses Objekt mehr vorhanden wren. Nach dem Lschen von ref2 sind keine Bezge auf das Objekt mehr vorhanden. Das Objekt wird gelscht und der von ihm belegte Speicher freigegeben.
Siehe auch var

do while
Verfgbarkeit

Flash Player 4.

do while

393

Verwendung do { anweisung(en) } while (bedingung) Parameter bedingung

Die auszuwertende Bedingung. die ausgefhrt werden soll(en), solange der Parameter

anweisung(en) Die Anweisung(en), bedingung den Wert true hat. Rckgaben

Keine.
Beschreibung

Anweisung; fhrt die Anweisungen aus und wertet die Bedingung dann in einer Schleife aus, solange die Bedingung erfllt ist (Wert true).
Siehe auch break, continue

duplicateMovieClip()
Verfgbarkeit

Flash Player 4.
Verwendung duplicateMovieClip(ziel, neuerName, tiefe) Parameter ziel

Der Zielpfad des zu duplizierenden Movieclips. Ein eindeutiger Bezeichner fr den duplizierten Movieclip.

neuerName tiefe

Eine eindeutige Tiefenebene fr den duplizierten Movieclip. Die Tiefenebene bestimmt die Stapelanordnung der duplizierten Movieclips. Diese Stapelanordnung ist der Stapelanordnung von Ebenen in der Zeitleiste sehr hnlich; Movieclips mit einer niedrigeren Tiefenebene sind unter Clips mit einer hheren Tiefenebene versteckt. Sie mssen jedem duplizierten Movieclip eine eindeutige Tiefenebene zuordnen, damit SWF-Dateien auf bereits belegten Tiefenebenen nicht berschrieben werden.

Rckgaben

Ein Verweis auf den duplizierten Movieclip

394

Kapitel 12: ActionScript-Lexikon

Beschreibung

Funktion; erstellt whrend der Wiedergabe der SWF-Datei eine Instanz eines Movieclips. Der Abspielkopf im duplizierten Movieclip steht anfnglich immer in Bild 1, unabhngig davon, wo er sich im ursprnglichen (bergeordneten) Movieclip befindet. Im bergeordneten Movieclip enthaltene Variablen werden nicht in den duplizierten Movieclip kopiert. Beim Lschen des bergeordneten Movieclips wird auch der duplizierte Movieclip gelscht. Mit der Aktion oder der Methode removeMovieClip() knnen Sie eine Movieclip-Instanz lschen, die mit duplicateMovieClip() erstellt wurde.
Siehe auch MovieClip.duplicateMovieClip(), removeMovieClip(), MovieClip.removeMovieClip()

dynamic
Verfgbarkeit

Flash Player 6.
Verwendung dynamic class klassenname [ extends superClass ] [ implements Schnittstellenname [, Schnittstellenname... ] ] { // Hier Klassendefinition einfgen } Hinweis: Um dieses Schlsselwort zu verwenden, mssen Sie auf der Registerkarte Flash im Dialogfeld Einstellungen fr Verffentlichungen der FLA-Datei die Einstellung ActionScript 2.0 aktivieren und Flash Player 6 bzw. Flash Player 7 whlen. Dieses Schlsselwort wird nur in externen Skriptdateien untersttzt, nicht jedoch in Skripts, die im Bedienfeld Aktionen erstellt wurden. Beschreibung

Schlsselwort; legt fest, dass auf der angegebenen Klasse basierende Objekte zur Laufzeit dynamische Eigenschaften hinzufgen und auf diese zugreifen knnen. Typprfungen sind fr dynamische Klassen weniger strikt als fr nicht dynamische Klassen, da Mitglieder, auf die innerhalb der Klassendefinition und in Klasseninstanzen zugegriffen wird, nicht mit den Klassen in der Klassenebene verglichen werden. Bei Klassenelementfunktionen knnen jedoch immer noch Typprfungen nach Rckgabetyp und Parametertypen durchgefhrt werden. Dieses Verhalten ist besonders ntzlich, wenn mit MovieClip-Objekten gearbeitet wird, weil einem Movieclip auf viele verschiedene Arten Eigenschaften und Objekte dynamisch hinzugefgt werden knnen, wie beispielsweise MovieClip.createEmptyMovieClip() und MovieClip.createTextField(). Unterklassen von dynamischen Klassen sind ebenfalls dynamisch. Weitere Informationen finden Sie unter Dynamische Klassen erstellen auf Seite 194.
Beispiel

Im folgenden Beispiel wurde die Klasse B als dynamisch markiert, d. h., wenn nicht deklarierte Funktionen fr sie aufgerufen werden, wird bei der Kompilierung kein Fehler ausgegeben.
// in B.as dynamic class B extends class_A { function B() {

dynamic

395

/*Dies ist der Konstruktor*/ } function m():Number {return 25;} function o(s:String):Void {trace(s);} } // in C.as class C extends class_A { function C() { /*Dies ist der Konstruktor*/ } function m():Number {return 25;} function o(s:String):Void {trace(s);} } // in einem anderen Skript var var1 = B.n(); // kein Fehler var var2 = C.n() // Fehler, da es in C.as keine Funktion n gibt Siehe auch class, extends

else
Verfgbarkeit

Flash Player 4.
Verwendung if (bedingung){ anweisung(en); } else (condition){ anweisung(en); } Parameter bedingung

Ein Ausdruck, der den Wert true oder false haben kann.

anweisung(en) Eine alternative Reihe von Anweisungen, die ausgefhrt werden, wenn die in der if-Anweisung angegebene Bedingung false ist. Rckgaben

Keine.
Beschreibung

Anweisung; gibt die Anweisungen an, die ausgefhrt werden, wenn die Bedingung in der ifAnweisung false zurckgibt.
Siehe auch if

else if
Verfgbarkeit

Flash Player 4.

396

Kapitel 12: ActionScript-Lexikon

Verwendung if (bedingung){ anweisung(en); } else if (bedingung){ anweisung(en); } Parameter bedingung

Ein Ausdruck, der den Wert true oder false haben kann.

anweisung(en) Eine alternative Reihe von Anweisungen, die ausgefhrt werden, wenn die in der if-Anweisung angegebene Bedingung false ist. Rckgaben

Keine.
Beschreibung

Anweisung; wertet eine Bedingung aus und gibt die Anweisungen an, die ausgefhrt werden, wenn die Bedingung in der ersten if-Anweisung false zurckgibt. Wenn die else ifBedingung true zurckgibt, fhrt der Flash-Interpreter die Anweisungen aus, die in geschweiften Klammern ({}) auf die Bedingung folgen. Wenn die else if-Bedingung false lautet, berspringt Flash die Anweisungen in geschweiften Klammern und fhrt die Anweisungen nach den geschweiften Klammern aus. Verwenden Sie die Aktion else if fr logische Verzweigungen in Skripts.
Beispiel

Im folgenden Beispiel wird anhand von else if-Aktionen geprft, ob sich jede Seite eines Objekts innerhalb einer bestimmten Begrenzung befindet:
// wenn das Objekt die Grenzen verlsst, // Objekt zurckschicken und Geschwindigkeit umkehren if (this._x>rightBound) { this._x = rightBound; xInc = -xInc; } else if (this._x<leftBound) { this._x = leftBound; xInc = -xInc; } else if (this._y>bottomBound) { this._y = bottomBound; yInc = -yInc; } else if (this._y<topBound) { this._y = topBound; yInc = -yInc; } Siehe auch if

#endinitclip
Verfgbarkeit

Flash Player 6.

#endinitclip

397

Verwendung #endinitclip Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Compiler-Direktive; gibt das Ende eines Blocks mit Initialisierungsaktionen an.


Beispiel #initclip ...Initialisierungsaktionen erscheinen hier... #endinitclip Siehe auch #initclip

eq (equal string specific)


Verfgbarkeit

Flash Player 4. Dieser Operator wurde in Flash 5 durch den == (Gleichheit)-Operator ersetzt.
Verwendung ausdruck1 eq ausdruck2 Parameter ausdruck1, ausdruck2 Rckgaben

Zahlen, Strings oder Variablen.

Keine.
Beschreibung

Vergleichsoperator; vergleicht zwei Ausdrcke auf Gleichheit und gibt true zurck, wenn die Stringdarstellung von ausdruck1 gleich der Stringdarstellung von ausdruck2 ist; andernfalls wird false zurckgegeben.
Siehe auch == (Gleichheit)

Error class
Verfgbarkeit

Flash Player 7.

398

Kapitel 12: ActionScript-Lexikon

Beschreibung

Enthlt Informationen ber einen in einem Skript aufgetretenen Fehler. Ein Error-Objekt wird mit der Konstruktorfunktion Error erstellt. Gewhnlich werfen Sie ein neues Error-Objekt aus einem try-Code-Block, das dann von einem catch- oder finally-Code-Block gefangen wird. Sie knnen auch eine Unterklasse der Error-Klasse erstellen und Instanzen dieser Unterklasse ausgeben. bersicht ber die Methoden fr die Error-Klasse
Methode
Error.toString()

Beschreibung Gibt die String-Darstellung eines Error-Objekts zurck.

bersicht ber die Eigenschaften der Error-Klasse


Eigenschaft
Error.message Error.name

Beschreibung Ein String, der eine mit einem Fehler verbundene Fehlermeldung enthlt. Ein String, der den Namen des Fehlerobjekts enthlt.

Konstruktor fr die Error-Klasse


Verfgbarkeit

Flash Player 7.
Verwendung new Error([meldung]) Parameter meldung Rckgaben

Ein mit dem Error-Objekt verbundener String. Dieser Parameter ist optional.

Keine.
Beschreibung

Konstruktor; erstellt ein neues Error-Objekt. Wenn meldung angegeben ist, wird der Wert der Eigenschaft Error.message des Objekts zugewiesen.
Beispiel

Im folgenden Beispiel gibt eine Funktion einen Fehler (mit einer angegebenen Meldung) aus, wenn die beiden bergebenen Strings nicht bereinstimmen.
function compareStrings(string_1, string_2) { if(string_1 != string_2) { throw new Error("Strings stimmen nicht berein."); } } try { compareStrings("Gut","gut"); } catch (e) {

Error class

399

trace(e.toString()); } Siehe auch throw, try..catch..finally

Error.message
Verfgbarkeit

Flash Player 7.
Verwendung meinFehler.message Beschreibung

Eigenschaft; enthlt die mit dem Error-Objekt verbundene Meldung. Standardmig ist der Wert dieser Eigenschaft Error. Sie knnen eine Meldungseigenschaft angeben, wenn Sie ein neues Error-Objekt erstellen, indem Sie den Fehlerstring an die Error-Konstruktorfunktion weiterleiten.
Siehe auch throw, try..catch..finally

Error.name
Verfgbarkeit

Flash Player 7.
Verwendung meinFehler.name Beschreibung

Eigenschaft; enthlt den Namen des Error-Objekts. Standardmig ist der Wert dieser Eigenschaft Error.
Siehe auch throw, try..catch..finally

Error.toString()
Verfgbarkeit

Flash Player 7.
Verwendung mein_Fehler.toString() Rckgaben

Ein String.

400

Kapitel 12: ActionScript-Lexikon

Beschreibung

Methode; gibt standardmig den String Error oder den in Error.message enthaltenen Wert zurck, falls angegeben.
Siehe auch Error.message, throw, try..catch..finally

escape
Verfgbarkeit

Flash Player 5.
Verwendung escape(ausdruck) Parameter ausdruck

Der Ausdruck, der in einen String umgewandelt und in einem URL-Format kodiert

werden soll.
Rckgaben

Keine.
Beschreibung

Funktion; wandelt den Parameter in einen String um und kodiert ihn in einem URL-Format, bei dem alle nicht alphanumerischen Zeichen als % gefolgt von einer Hexadezimalsequenz dargestellt werden.
Beispiel

Die Ausfhrung des folgenden Codes ergibt Hallo%7B%5BWelt%5D%7D.


escape("Hallo{[Welt]}"); Siehe auch unescape

eval()
Verfgbarkeit

Voller Funktionsumfang in Flash Player 5 oder hher. Sie knnen die Funktion eval() beim Exportieren von Filmen fr den Flash Player 4 einsetzen. Sie mssen dabei jedoch die Schrgstrich-Syntax verwenden und knnen nur auf Variablen, nicht aber auf Eigenschaften oder Objekte zugreifen.
Verwendung eval(ausdruck) Parameter ausdruck

Ein String, der den Namen der abzurufenden Variablen oder Eigenschaft bzw. des abzurufenden Objekts oder Movieclips enthlt.

eval()

401

Rckgaben

Ein Wert, eine Referenz auf ein Objekt bzw. einen Movieclip oder undefined.
Beschreibung

Funktion; greift anhand des Namens auf Variablen, Eigenschaften, Objekte oder Movieclips zu. Wenn ausdruck eine Variable oder eine Eigenschaft ist, wird der Wert der Variablen oder Eigenschaft zurckgegeben. Wenn ausdruck ein Objekt oder ein Movieclip ist, wird ein Bezug auf das Objekt bzw. den Movieclip zurckgegeben. Wenn das in ausdruck angegebene Element nicht gefunden werden kann, wird undefined zurckgegeben. In Flash 4 konnten mit eval() Arrays simuliert werden. Ab Flash 5 wird die Verwendung der Array-Klasse zum Simulieren von Arrays empfohlen. In Flash 4 knnen mit eval() auch Namen von Instanzen und Variablen dynamisch eingestellt und abgerufen werden. Hierzu knnen Sie auch den Array-Zugriffsoperator ([]) verwenden. In Flash ab Version 5 knnen mit eval() keine Variablenwerte oder Instanznamen dynamisch gesetzt oder abgerufen werden, da eval() nicht auf der linken Seite einer Gleichung stehen darf. Ersetzen Sie beispielsweise den Code
eval ("var" + i) = "first";

durch diesen:
this["var"+i] = "first"

oder diesen:
set ("var" + i, "first"); Beispiel

Im folgenden Beispiel wird mit eval() der Wert des Ausdrucks "teil" + x ermittelt. Da das Ergebnis ein Variablenname ist (teil3), gibt eval() den Wert der Variablen zurck und weist ihn y zu.
teil3 = "gefhrlich"; x = 3; y = eval("teil" + x); trace(y); // Ausgabe: gefhrlich Siehe auch

Array-Klasse

extends
Verfgbarkeit

Flash Player 6.
Verwendung class Klassenname extends andererKlassenname {} interface Oberflchenname extends andererOberflchenname {}

402

Kapitel 12: ActionScript-Lexikon

Hinweis: Um dieses Schlsselwort zu verwenden, mssen Sie auf der Registerkarte Flash im Dialogfeld Einstellungen fr Verffentlichungen der FLA-Datei die Einstellung ActionScript 2.0 aktivieren und Flash Player 6 bzw. Flash Player 7 whlen. Dieses Schlsselwort wird nur in externen Skriptdateien untersttzt, nicht jedoch in Skripts, die im Bedienfeld Aktionen erstellt wurden. Parameter klassenname

Der Name der Klasse, die Sie definieren. Der Name der Klasse, auf der Klassenname basiert. Der Name der Oberflche, auf der Oberflchenname basiert. Der Name der Oberflche, die Sie definieren.

andererKlassenname Oberflchenname

andererOberflchenname Beschreibung

Schlsselwort; definiert eine Klasse oder Oberflche, die eine Unterklasse einer anderen Klasse oder Oberflche ist, wobei letztere die bergeordnete Klasse ist. Die Unterklasse bernimmt alle Methoden, Eigenschaften, Funktionen usw., die in der bergeordneten Klasse definiert sind. Weitere Informationen finden Sie unter Unterklassen erstellen auf Seite 182.
Beispiel

In Klasse B, wie im Folgenden definiert, wird automatisch ein Aufruf an den Konstruktor der Klasse A als erste Anweisung der Konstruktorfunktion von B eingefgt, da hier noch kein Aufruf vorhanden ist. (D. h., er ist im Beispiel auskommentiert.)
class B extends class A { function B() { // dies ist der Konstruktor // super(); // optional; whrend Kompilierung eingefgt, wenn ausgelassen } function m():Number {return 25;} function o(s:String):Void {trace(s);} } Siehe auch class, implements, interface

false
Verfgbarkeit

Flash Player 5.
Verwendung false Beschreibung

Konstante; ein eindeutiger Boolescher Wert, der das Gegenteil von true darstellt.
Siehe auch true

false

403

_focusrect
Verfgbarkeit

Flash Player 4.
Verwendung _focusrect = BoolescherWert; Beschreibung

Eigenschaft (global); gibt an, ob um die Schaltflche oder den Movieclip mit dem momentanen Tastaturfokus ein gelbes Rechteck angezeigt wird. Bei Verwendung des Standardwerts true erscheint um die Schaltflche bzw. den Movieclip mit dem momentanen Fokus ein gelbes Rechteck, wenn der Benutzer die Tabulatortaste drckt, um durch die Objekte in einer SWFDatei zu navigieren. Geben Sie false an, wenn das gelbe Rechteck nicht erscheinen soll. Dies ist eine globale Eigenschaft, die fr einzelne Instanzen berschrieben werden kann.
Siehe auch Button._focusrect, MovieClip._focusrect

for
Verfgbarkeit

Flash Player 5.
Verwendung for (init; bedingung; nchster) { anweisung(en); } Parameter init Ein Ausdruck, der vor Beginn der Schleifensequenz ausgewertet werden muss, in der Regel ein Zuweisungsausdruck. Eine var-Anweisung ist fr diesen Parameter ebenfalls zulssig. bedingung

Ein Ausdruck, der den Wert true oder false haben kann. Die Bedingung wird vor jeder Schleifenwiederholung ausgewertet; die Schleife wird verlassen, wenn die Bedingung den Wert false ergibt. Ein Ausdruck, der nach jeder Schleifenwiederholung ausgewertet wird; in der Regel ein Zuweisungsausdruck, der den Operator ++ (Inkrement) oder -- (Dekrement) verwendet.

nchster

anweisung(en) Eine oder mehrere Anweisungen, die innerhalb des Schleifenabschnitts ausgefhrt werden soll(en). Beschreibung

Anweisung; ein Schleifenkonstrukt, das den Ausdruck init (initialisieren) einmal auswertet und dann eine Schleife startet, in der die anweisung ausgefhrt und der nchste Ausdruck ausgewertet wird, solange die bedingung den Wert true hat.

404

Kapitel 12: ActionScript-Lexikon

Einige Eigenschaften knnen durch die Aktionen for oder for..in nicht aufgezhlt werden. Beispielsweise sind die integrierten Methoden der Array-Klasse (Array.sort() und Array.reverse()) nicht in der Aufzhlung eines Array-Objekts enthalten, und MovieclipEigenschaften wie _x und _y werden nicht aufgezhlt. In externen Klassendateien sind Instanzmitglieder nicht aufzhlbar; nur dynamische und statische Mitglieder sind aufzhlbar.
Beispiel

Im folgenden Beispiel wird for zum Addieren der Elemente in einem Array verwendet:
mein_array=new Array(); for (i=0; i<10; i++) { mein_array [i] = (i + 5)*10; trace(mein_array[i]); }

Im Ausgabefenster werden die folgenden Ergebnisse angezeigt:


50 60 70 80 90 100 110 120 130 140

Im folgenden Beispiel wird mit for die gleiche Aktion wiederholt durchgefhrt. Im folgenden Code werden durch die for-Schleife die Zahlen von 1 bis 100 addiert:
var sum = 0; for (var i=1; i<=100; i++) { sum = sum + i; } Siehe auch ++ (Inkrement),

-- (Dekrement), for..in, var

for..in
Verfgbarkeit

Flash Player 5.
Verwendung for (iterationsvariable in objekt){ anweisung(en); } Parameter iterationsvariable Der Name einer Variablen, die als Iterator fungiert und auf jede Eigenschaft eines Objekts oder eines Elements in einem Array verweist. objekt

Der Name des Objekts, das wiederholt werden soll. Eine Anweisung, die fr jede Iteration ausgefhrt wird.

anweisung(en)

for..in

405

Rckgaben

Keine.
Beschreibung

Anweisung; durchluft die Eigenschaften eines Objekts oder Elements in einem Array und fhrt die anweisung fr jede Objekteigenschaft aus. Einige Eigenschaften knnen durch die Aktionen for oder for..in nicht aufgezhlt werden. Beispielsweise sind die integrierten Methoden der Array-Klasse (Array.sort() und Array.reverse()) nicht in der Aufzhlung eines Array-Objekts enthalten, und MovieclipEigenschaften wie _x und _y werden nicht aufgezhlt. In externen Klassendateien sind Instanzmitglieder nicht aufzhlbar; nur dynamische und statische Mitglieder sind aufzhlbar. Die for..in-Anweisung durchluft alle Objekteigenschaften in der Prototypkette des durchlaufenen Objekts. Wenn der Prototyp des Unterelements parent lautet, werden beim Durchlaufen der Eigenschaften des Unterelements mit for...in auch die Eigenschaften des bergeordneten Elements (parent) durchlaufen. Die Aktion for..in zhlt alle Objekte in der Prototypkette eines Objekts auf. Die Eigenschaften des Objekts werden zuerst aufgezhlt; darauf folgen die Eigenschaften des unmittelbaren Prototyps, dann die Eigenschaften des Prototyps des Prototyps usw. Die Aktion for..in zhlt ein und den selben Eigenschaftennamen nicht zweimal auf. Wenn das Objekt child den Prototyp parent aufweist und beide die Eigenschaft prop enthalten, zhlt eine fr child aufgerufene for..in-Aktion die Eigenschaft prop von child auf und ignoriert die gleichnamige Eigenschaft in parent.
Beispiel

Im folgenden Beispiel werden mit for..in die Eigenschaften eines Objekts durchlaufen:
meinObjekt = { name:'Tara', alter:27, ort:'Hamburg' }; for (name in meinObjekt) { trace ("meinObjekt." + name + " = " + meinObjekt[name]); }

Die Ausgabe dieses Beispiels lautet wie folgt:


meinObjekt.name = Tara meinObjekt.alter = 27 meinObjekt.ort = Hamburg

Im folgenden Beispiel wird for..in zusammen mit dem Operator typeof verwendet, um einen bestimmten Unterelementtyp zu durchlaufen:
for (name in mein_mc) { if (typeof (mein_mc[name]) = "movieclip") { trace ("Es gibt einen untergeordneten Movieclip namens " + name); } }

Im folgenden Beispiel werden die Unterelemente eines Movieclips aufgezhlt und jeweils in Bild 2 in den entsprechenden Zeitleisten gestellt. Der Movieclip Optionsfeldgruppe ist ein bergeordnetes Element mit mehreren Unterelementen: _OptionsfeldRot_, _OptionsfeldGruen_ und _OptionsfeldBlau.
for (var name in Optionsfeldgruppe) { Optionsfeldgruppe[name].gotoAndStop(2); }

406

Kapitel 12: ActionScript-Lexikon

fscommand()
Verfgbarkeit

Flash Player 3.
Verwendung fscommand("befehl", "parameter") Parameter befehl

Ein zur beliebigen weiteren Verwendung an die Hostanwendung bergebener String oder ein an den Flash Player bergebener Befehl.

parameter Ein zur beliebigen weiteren Verwendung an die Hostanwendung bergebener String oder ein an den Flash Player bergebener Wert. Rckgaben

Keine.
Beschreibung

Funktion; ermglicht die Kommunikation zwischen der SWF-Datei und dem Flash Player bzw. dem Programm, in dem der Flash Player ausgefhrt wird (wie z. B. einem Webbrowser). Mit Hilfe der Aktion fscommand knnen Sie auch Nachrichten an Macromedia Director, Visual Basic, Visual C++ und andere Programme bergeben, die als Hosts fr ActiveX-Steuerungen fungieren knnen. Verwendung 1: Um eine Nachricht an den Flash Player zu senden, mssen Sie vordefinierte Befehle und Parameter verwenden. In der folgenden Tabelle sind die zulssigen Werte fr die Parameter befehl und parameter der Aktion fscommand aufgefhrt, mit der Sie eine SWFDatei im Flash Player (einschlielich Projektoren) steuern knnen:
Befehl
quit fullscreen

Parameter
Keine true oder false

Funktion Schliet den Projektor. Bei Angabe von true wird der Flash Player in den Vollbildmodus gesetzt. Mit false wird der Player auf die normale Menansicht zurckgesetzt. Bei Angabe von false wird der Player angewiesen, die SWFDatei immer in ihrer ursprnglichen Gre darzustellen und niemals zu skalieren. Bei Angabe von true wird die SWF-Datei exakt in der Gre des Players dargestellt. Bei Angabe von true werden smtliche Kontextmenelemente aktiviert. Bei Angabe von false werden alle Elemente des Kontextmens auer der Option Info zu Flash Player... deaktiviert. Fhrt eine Anwendung vom Projektor aus. Bei Angabe von true werden alle Tastenereignisse, einschlielich Tastenkombinationen, an die Prozedur onClipEvent(keyDown/keyUp) im Flash Player gesendet.

allowscale

true oder false

showmenu

true oder false

exec trapallkeys

Pfad der Anwendung true oder false

fscommand()

407

Der Befehl exec kann nur die Zeichen A-Z, a-z, 0-9, Punkt (.) und Unterstrich (_) enthalten. Der Befehl exec wird nur im Unterverzeichnis fscommand ausgefhrt. Mit anderen Worten: Wenn Sie mit dem Befehl fscommand exec eine Anwendung aufrufen, muss sich die Anwendung in einem Unterverzeichnis mit der Bezeichnung fscommand befinden. Verwendung 2: Wenn Sie mit fscommand eine Nachricht an eine Skriptsprache (wie z. B. JavaScript) in einem Webbrowser senden, knnen Sie in den Parametern befehl und parameter zwei beliebige Parameter bergeben. Bei diesen Parametern kann es sich um Strings oder Ausdrcke in einer JavaScript-Funktion handeln, mit der die Aktion fscommand abgefangen wird. In einem Webbrowser ruft die Aktion fscommand die JavaScript-Funktion filmname_DoFScommand in der HTML-Seite mit der SWF-Datei auf. Filmname ist der Name des Flash Players, der mit dem Attribut NAME des Tags EMBED bzw. mit der Eigenschaft ID des Tags OBJECT zugewiesen wurde. Wenn Sie Flash Player den Namen meinDokument zuweisen, wird die JavaScript-Funktion meinDokument_DoFScommand aufgerufen. Verwendung 3: ber die Aktion fscommand knnen Nachrichten an Macromedia Director gesendet werden, die von Lingo als Strings, Ereignisse oder ausfhrbarer Lingo-Code interpretiert werden. Wenn es sich bei der Nachricht um einen String oder ein Ereignis handelt, mssen Sie entsprechenden Lingo-Code schreiben, der die Nachrichten der Aktion fscommand empfngt und in Director eine Aktion aufruft. Weitere Informationen hierzu finden Sie im Director Support Center unter www.macromedia.com/support/director. Verwendung 4: In Visual Basic, Visual C++ und anderen Programmen, in denen ActiveXSteuerelemente ausgefhrt werden knnen, sendet fscommand ein VB-Ereignis mit zwei Strings, die in der Programmiersprache der Umgebung verarbeitet werden knnen. Wenn Sie weitere Informationen bentigen, suchen Sie im Flash Support Center unter www.macromedia.com/go/ flash_support_de nach den Schlsselwrtern Flash method.
Beispiel

Verwendung 1: Im folgenden Beispiel weist die Aktion fscommand den Flash Player an, die SWFDatei auf die volle Bildschirmgre zu skalieren, sobald die Schaltflche losgelassen wird:
on(release) { fscommand("fullscreen", true); }

Verwendung 2: Im folgenden Beispiel wird die Aktion fscommand auf eine Schaltflche in Flash angewendet, um ein JavaScript-Meldungsfenster auf einer HTML-Seite zu ffnen. Die Nachricht selbst wird als fscommand-Parameter an JavaScript gesendet. Sie mssen zur HTML-Seite, die die SWF-Datei enthlt, eine Funktion hinzufgen. Diese Funktion, meinDokument_DoFSCommand, erwartet in der HTML-Seite eine fscommand-Aktion in Flash. Wenn in Flash fscommand ausgelst wird (z. B. wenn ein Benutzer auf die Schaltflche klickt), werden die Strings befehl und parameter an die Funktion meinDokument_DoFSCommand bergeben. Die bergebenen Strings knnen im JavaScript- oder VBScript-Code wie gewnscht verwendet werden. Im folgenden Beispiel enthlt die Funktion eine zustzliche if-Anweisung, die prft, ob der Befehlsstring "messagebox" lautet. Wenn ja, wird ein JavaScript-Meldungsfenster (messagebox) geffnet und der Inhalt des Strings parameter angezeigt.
function meinDokument_DoFSCommand(command, args) { if (command == "messagebox") { alert(args);

408

Kapitel 12: ActionScript-Lexikon

} }

Fgen Sie im Flash-Dokument die Aktion fscommand zu einer Schaltflche hinzu:


fscommand("messagebox", "Dies ist ein von Flash aus aufgerufenes Meldungsfenster.")

Wie im folgenden Beispiel gezeigt, knnen Sie fr die Aktion fscommand und ihre Parameter auch Ausdrcke verwenden:
fscommand("messagebox", "Hallo, " + name + ", willkommen auf unserer Website!")

Um den Film zu testen, whlen Sie Datei > Vorschau fr Verffentlichungen > HTML.
Hinweis: Wenn Sie die SWF-Datei anhand der Vorlage Flash mit FSCommand verffentlichen (einzustellen im Dialogfeld Einstellungen fr Verffentlichungen, Registerkarte HTML), wird die Funktion meinDokument_DoFSCommand automatisch eingefgt. Die Attribute NAME und ID der SWFDatei dienen als Dateiname. Fr die Datei meinDokument.fla werden die Attributwerte zum Beispiel auf meinDokument gesetzt.

function
Verfgbarkeit

Flash Player 5.
Verwendung function funktionsname([parameter0, parameter1,...parameterN]){ anweisung(en) } function ([parameter0, parameter1,...parameterN]){ anweisung(en) } Parameter funktionsname

Der Name der neuen Funktion.

parameter Ein Bezeichner fr einen an die Funktion zu bergebenden Parameter. Diese Parameter sind optional. anweisung(en)

Eine ActionScript-Anweisung, die fr den Hauptabschnitt der function

definiert wurde.
Rckgaben

Keine.
Beschreibung

Anweisung; umfasst eine Gruppe von Anweisungen, die zur Ausfhrung einer bestimmten Aufgabe definiert werden. Sie knnen eine Funktion an einer Stelle deklarieren (definieren) und dann von anderen Skripts in einer SWF-Datei aufrufen. Beim Definieren einer Funktion knnen Sie auch Parameter fr diese Funktion angeben. Parameter sind Platzhalter fr Werte, die von der Funktion fr die Ausfhrung verwendet werden. Sie knnen einer Funktion bei jedem Aufruf unterschiedliche Parameter bergeben. Auf diese Weise knnen Sie eine Funktion sehr vielseitig einsetzen. Mit der Aktion return in den anweisung(en) einer Funktion weisen Sie die Funktion an, einen Wert zurckzugeben bzw. zu generieren.

function

409

Verwendung 1: Deklariert eine Funktion mit dem angegebenen funktionsnamen sowie mit den angegebenen parametern und anweisung(en). Beim Aufruf einer Funktion wird die Funktionsdeklaration aufgerufen. Vorwrtsreferenzen sind zulssig; eine Funktion kann innerhalb derselben Action-Liste nach einem Aufruf deklariert werden. Eine Funktionsdeklaration ersetzt alle frheren Deklarationen derselben Funktion. Sie knnen diese Syntax an jeder Stelle verwenden, an der eine Anweisung zulssig ist. Verwendung 2: Erstellt eine anonyme Funktion und gibt diese zurck. Diese Syntax wird in Ausdrcken verwendet und eignet sich besonders zur Installation von Methoden in Objekten.
Beispiel

Verwendung 1: Im folgenden Beispiel wird die Funktion sqr definiert, die einen Parameter akzeptiert und das Quadrat square(x*x) des Parameters zurckgibt. Bei Deklaration und Verwendung einer Funktion in ein und demselben Skript kann die Funktion nach der Verwendung deklariert werden.
y=sqr(3); function sqr(x) { return x*x; }

Verwendung 2: Die folgende Funktion definiert ein Circle-Objekt (Kreis):


function Circle(radius) { this.radius = radius; }

Die folgende Anweisung definiert eine anonyme Funktion, die den Flcheninhalt eines Kreises berechnet und sie als Methode mit dem Objekt Circle verbindet:
Circle.prototype.area = function () {return Math.PI * this.radius * this.radius}

Function-Klasse
Verfgbarkeit

Flash Player 6. bersicht: Methoden der Function-Klasse


Methode
Function.apply() Function.call()

Beschreibung Ermglicht ActionScript-Code den Aufruf einer Funktion. Ruft die durch ein Function-Objekt dargestellte Funktion auf.

bersicht ber die Eigenschaften fr die Function-Klasse


Eigenschaft
Function.prototype

Beschreibung Verweist auf ein Objekt, das der Prototyp einer Klasse ist.

410

Kapitel 12: ActionScript-Lexikon

Function.apply()
Verfgbarkeit

Flash Player 6.
Verwendung meineFunktion.apply(diesesObjekt, parameterobjekt) Parameter diesesObjekt

Das Objekt, auf das meineFunktion angewendet wird. Ein Array, dessen Elemente als Parameter an meineFunktion bergeben

parameterobjekt

werden.
Rckgaben

Beliebiger Wert, der von der aufgerufenen Funktion angegeben wird.


Beschreibung

Methode; gibt den Wert von this an, der in jeder von ActionScript aufgerufenen Funktion verwendet wird. Diese Methode gibt auerdem die Parameter an, die an eine aufgerufene Funktion bergeben werden. Da es sich bei apply() um eine Methode der Function-Klasse handelt, ist sie gleichzeitig auch eine Methode aller Funktionsobjekte in ActionScript. Die Parameter werden als Array-Objekt angegeben. Dies ist besonders dann ntzlich, wenn die Anzahl der zu bergebenden Parameter erst bei der eigentlichen Skriptausfhrung bekannt wird.
Beispiel

Die folgenden Funktionsaufrufe sind gleichwertig:


Math.atan2(1, 0) Math.atan2.apply(null, [1, 0])

Sie knnen eine SWF-Datei mit Eingabefeldern erstellen, in denen der Benutzer den Namen der aufzurufenden Funktion sowie null oder mehr an die Funktion zu bergebende Parameter eingeben kann. Beim Klicken auf eine Schaltflche namens Aufrufen werden dann anhand der Methode apply die Funktion aufgerufen und die Parameter bergeben. Im folgenden Beispiel gibt der Benutzer einen Funktionsnamen in das Eingabetextfeld
funktionsname ein. Die Anzahl von Parametern wird in einem Eingabetextfeld namens parameterzahl angegeben. Bis zu 10 Parameter werden in den Textfeldern parameter1, parameter2 bis parameter10 eingegeben. on(release) { callTheFunction(); } ... function callTheFunction() { var theFunction = eval(funktionsname.text); var n = Number(parameterzahl); var parameters = []; for (var i = 0; i < n; i++) { parameters.push(eval("parameter" + i)); }

Function.apply()

411

theFunction.apply(null, parameters); }

Function.call()
Verfgbarkeit

Flash Player 6.
Verwendung meineFunktion.call(diesesObjekt, parameter1, ..., parameterN) Parameter diesesObjekt

Gibt den Wert von this im Hauptteil der Funktion an.

parameter1 Ein Parameter, der an meineFunktion bergeben werden soll. Sie knnen null oder mehr Parameter angeben. parameterN Rckgaben

Keine.
Beschreibung

Methode; ruft die durch ein Function-Objekt dargestellte Funktion auf. Da jede Funktion in ActionScript durch ein Function-Objekt dargestellt wird, untersttzen alle Funktionen diese Methode. In den meisten Fllen kann der Funktionsaufrufoperator (()) an Stelle dieser Methode verwendet werden. Der Funktionsaufrufoperator erzeugt kompakten und leicht lesbaren Code. Diese Methode bietet sich besonders dann an, wenn der Parameter this im Funktionsaufruf explizit gesteuert werden muss. Wenn eine Funktion als Methode eines Objekts aufgerufen wird, wird this im Hauptteil der Funktion normalerweise auf meinObjekt gesetzt:
meinObjekt.meineMethode(1, 2, 3);

In bestimmten Fllen sollten Sie mit this auf ein anderes Objekt Bezug nehmen, z. B. wenn eine Funktion als Methode eines Objekts aufgerufen werden muss, aber nicht als Methode dieses Objekts gespeichert ist.
meinObjekt.meineMethode.call(anderesObjekt, 1, 2, 3);

Sie knnen fr den Parameter thisObject den Wert null bergeben, um eine Funktion als normale Funktion - und nicht als Methode eines Objekts - aufzurufen. Die folgenden Funktionsaufrufe sind beispielsweise gleichwertig:
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4) Beispiel

In diesem Beispiel wird mit Function.call() dafr gesorgt, dass sich eine Funktion wie eine Methode eines anderen Objekts verhlt, wobei die Funktion nicht im Objekt nicht gespeichert wird.
function MeinObjekt() { } function meineMethode(obj) {

412

Kapitel 12: ActionScript-Lexikon

trace("dies == obj? " + (dies == obj)); } var obj = new MeinObjekt(); MeineMethode.call(obj, obj);

Die trace()-Aktion sendet den folgenden Code an das Bedienfeld Ausgabe:


dies == obj? true

Function.prototype
Verfgbarkeit

Flash Player 5. Wenn Sie ActionScript 2.0 verwenden, mssen Sie diese Eigenschaft nicht verwenden; sie gibt die Implementierung der Vererbung in ActionScript 1 wieder.
Verwendung meineFunktion.prototype Beschreibung

Eigenschaft; in einer ActionScript 1-Konstruktorfunktion verweist die Eigenschaft prototype auf ein Objekt, das der Prototyp der konstruierten Klasse ist. Jede mit der Konstruktorfunktion erstellte Instanz der Klasse erbt alle Eigenschaften und Methoden des Prototypobjekts.

ge (grer oder gleich - stringspezifisch)


Verfgbarkeit

Flash Player 4. Dieser Operator wurde in Flash 5 durch den >= (grer oder gleich)-Operator ersetzt.
Verwendung ausdruck1 ge ausdruck2 Parameter ausdruck1, ausdruck2 Rckgaben

Zahlen, Strings oder Variablen.

Keine.
Beschreibung

Operator (Vergleich); vergleicht die Stringdarstellung von ausdruck1 mit der Stringdarstellung von ausdruck2 und gibt true zurck, wenn ausdruck1 grer oder gleich ausdruck2 ist; andernfalls wird false zurckgegeben.
Siehe auch >= (grer oder gleich)

get
Verfgbarkeit

Flash Player 6.

get

413

Verwendung function get eigenschaft() { // Hier Anweisungen einfgen } Hinweis: Um dieses Schlsselwort zu verwenden, mssen Sie auf der Registerkarte Flash im Dialogfeld Einstellungen fr Verffentlichungen der FLA-Datei die Einstellung ActionScript 2.0 aktivieren und Flash Player 6 bzw. Flash Player 7 whlen. Dieses Schlsselwort wird nur in externen Skriptdateien untersttzt, nicht jedoch in Skripts, die im Bedienfeld Aktionen erstellt wurden. Parameter eigenschaft

Das Wort, das als Bezug auf die Eigenschaft dienen soll, auf die get zugreift; dieser Wert muss mit dem im entsprechenden set-Befehl verwendeten bereinstimmen.

Rckgaben

Der Wert der durch eigenschaftsname festgelegten Eigenschaft


Beschreibung

Schlsselwort; erlaubt das implizite Laden von Eigenschaften, die mit Objekten verknpft sind, die auf von Ihnen in externen Klassendateien definierten Klassen basieren. Mit Hilfe von impliziten get-Methoden knnen Sie auf Eigenschaften von Objekten zugreifen, ohne direkt darauf zuzugreifen. Implizite get-/set-Methoden sind syntaktische Kurzelemente fr die Object.addProperty()-Methode in ActionScript 1. Weitere Informationen finden Sie unter Implizite get-/set-Methoden auf Seite 193.
Siehe auch Object.addProperty(), set

getProperty
Verfgbarkeit

Flash Player 4.
Verwendung getProperty(mein_mc, eigenschaft) Parameter mein_mc

Der Instanzname eines Movieclips, fr den die Eigenschaft abgerufen wird. Eine Eigenschaft eines Movieclips.

eigenschaft Rckgaben

Der Wert der angegebenen Eigenschaft.


Beschreibung

Funktion; gibt den Wert der angegebenen Eigenschaft fr den Movieclip mein_mc zurck.

414

Kapitel 12: ActionScript-Lexikon

Beispiel

Im folgenden Beispiel wird die Koordinate auf der horizontalen Achse (_x) fr den Movieclip mein_mc abgerufen und der Variablen mein_mc_x zugewiesen:
mein_mc_x = getProperty(_root.mein_mc, _x);

getTimer
Verfgbarkeit

Flash Player 4.
Verwendung getTimer() Parameter

Keine.
Rckgaben

Anzahl der Millisekunden, die seit dem Beginn der Wiedergabe der SWF-Datei vergangen sind.
Beschreibung

Funktion; gibt die Anzahl der Millisekunden zurck, die seit dem Beginn der Wiedergabe der SWF-Datei vergangen sind.

getURL()
Verfgbarkeit

Flash 2. Die Optionen GET und POST sind nur fr Flash Player ab Version 4 verfgbar.
Verwendung getURL(url [, fenster [, "variablen"]]) Parameter url

Die URL, von der das Dokument abgerufen werden kann.

fenster

Ein optionaler Parameter, der das Fenster oder den HTML-Frame angibt, in das bzw. den das Dokument geladen werden soll. Geben Sie den Namen des jeweiligen Fensters ein, oder verwenden Sie einen der folgenden reservierten Zielnamen: bezeichnet den aktuellen Frame im aktuellen Fenster. bezeichnet ein neues Fenster. _parent bezeichnet den bergeordneten Frame des aktuellen Frames. _top bezeichnet den obersten Frame im aktuellen Fenster.
_self _blank

variablen

Eine GET- oder POST-Methode zum Senden von Variablen. Lassen Sie diesen Parameter weg, wenn es keine Variablen gibt. Bei der Methode GET, die zum Senden einer kleinen Anzahl von Variablen verwendet wird, werden die Variablen am Ende der URL angehngt. Bei der Methode POST, die zum Senden langer Variablenstrings verwendet wird, werden die Variablen in einem separaten HTTP-Header gesendet.

getURL()

415

Rckgaben

Keine.
Beschreibung

Funktion; ldt ein Dokument aus einer bestimmten URL in ein Fenster oder bergibt Variablen an eine andere Anwendung, unter einer angegebenen URL. Zum Testen dieser Aktion muss die zu ladende Datei am angegebenen Ort gespeichert sein. Zur Verwendung einer absoluten URL (z. B. http://www.meinserver.de) ist eine Netzwerkverbindung erforderlich.
Beispiel

Im folgenden Beispiel wird eine neue URL in ein leeres Browserfenster geladen. Die Aktion getURL() gibt die Variable werbebanner als den url-Parameter an, sodass Sie die geladene URL ndern knnen, ohne die SWF-Datei bearbeiten zu mssen. Der Wert der Variablen werbebanner wird an frherer Stelle in der SWF-Datei mit einer loadVariables()-Aktion an Flash bergeben.
on(release) { getURL(werbebanner, "_blank"); } Siehe auch loadVariables(), XML.send(), XML.sendAndLoad(), XMLSocket.send()

getVersion
Verfgbarkeit

Flash Player 5.
Verwendung getVersion() Parameter

Keine.
Rckgaben

Ein String mit Angaben zur Version von Flash Player und zur Plattform.
Beschreibung

Funktion; gibt einen String zurck, der Angaben zur Flash Player-Version und -Plattform enthlt. Die Funktion getVersion gibt nur fr Flash Player 5 und sptere Versionen Informationen zurck.
Beispiel

Nachfolgend ein Beispiel fr einen von der Funktion getVersion zurckgegebenen String:
WIN 5,0,17,0

Dies bedeutet, dass es sich bei der Plattform um Microsoft Windows handelt und die Versionsnummer von Flash Player Hauptversion 5, Unterversion 17 (5.0r17) ist.

416

Kapitel 12: ActionScript-Lexikon

Siehe auch System.capabilities.os, System.capabilities.version

_global object
Verfgbarkeit

Flash Player 6.
Verwendung _global.bezeichner Parameter

Keine.
Rckgaben

Ein Bezug auf das globale Objekt mit den Haupt-ActionScript-Klassen wie String, Object, Math und Array.
Beschreibung

Bezeichner; erstellt globale Variablen, Objekte oder Klassen. Beispielsweise knnten Sie eine Bibliothek erstellen, die wie das Math- oder Date-Objekt als globales ActionScript-Objekt verwendet wird. Im Gegensatz zu in der Zeitleiste oder lokal deklarierten Variablen und Funktionen sind globale Variablen und Funktionen in allen Zeitleisten und Gltigkeitsbereichen in der SWF-Datei sichtbar, sofern sie nicht durch gleichnamige Bezeichner in inneren Gltigkeitsbereichen verdeckt sind.
Beispiel

Im folgenden Beispiel wird eine Funktion der obersten Ebene, factorial(), erstellt, die in allen Zeitleisten und Gltigkeitsbereichen in einer SWF-Datei verfgbar ist:
_global.factorial = function (n) { if (n <= 1) { return 1; } else { return n * factorial(n-1); } } Siehe auch var, set variable

gotoAndPlay()
Verfgbarkeit

Flash 2.
Verwendung gotoAndPlay([szene,] bild)

gotoAndPlay()

417

Parameter szene

Ein optionaler String, der den Namen der Szene angibt, zu der der Abspielkopf springen

soll.
bild

Eine Zahl fr die Bildnummer oder ein String fr die Bezeichnung des Bilds, zu dem der Abspielkopf springen soll.

Rckgaben

Keine.
Beschreibung

Funktion; verschiebt den Abspielkopf zum angegebenen Bild in einer Szene und startet den Abspielvorgang von diesem Bild aus. Wenn keine Szene angegeben ist, springt der Abspielkopf zum angegebenen Bild in der aktuellen Szene.
Beispiel

Wenn der Benutzer auf eine Schaltflche klickt, der gotoAndPlay() zugeordnet ist, wird der Abspielkopf zu Bild 16 in der aktuellen Szene verschoben und beginnt dort mit der Wiedergabe.
on(release) { gotoAndPlay(16); } Siehe auch MovieClip.gotoAndPlay()

gotoAndStop()
Verfgbarkeit

Flash 2.
Verwendung gotoAndStop([szene,] bild) Parameter szene

Ein optionaler String, der den Namen der Szene angibt, zu der der Abspielkopf springen

soll.
bild

Eine Zahl fr die Bildnummer oder ein String fr die Bezeichnung des Bilds, zu dem der Abspielkopf springen soll.

Rckgaben

Keine.
Beschreibung

Funktion; verschiebt den Abspielkopf zum angegebenen Bild in einer Szene und hlt den Film dort an. Wenn keine Szene angegeben ist, springt der Abspielkopf zum Bild in der aktuellen Szene.

418

Kapitel 12: ActionScript-Lexikon

Beispiel

Wenn der Benutzer auf eine Schaltflche klickt, der gotoAndStop() zugeordnet ist, wird der Abspielkopf zu Bild 5 in der aktuellen Szene verschoben und die Wiedergabe der SWF-Datei angehalten.
on(release) { gotoAndStop(5); } Siehe auch stop()

gt (grer als - stringspezifisch)


Verfgbarkeit

Flash Player 4. Dieser Operator wurde in Flash 5 durch den neuen > (grer als)-Operator ersetzt.
Verwendung ausdruck1 gt ausdruck2 Parameter ausdruck1, ausdruck2 Beschreibung

Zahlen, Strings oder Variablen.

Operator (Vergleich); vergleicht die Stringdarstellung von ausdruck1 mit der Stringdarstellung von ausdruck2 und gibt true zurck, wenn ausdruck1 grer als ausdruck2 ist; andernfalls wird false zurckgegeben.
Siehe auch > (grer als)

_highquality
Verfgbarkeit

Flash Player 4; gilt als berholt und wurde durch Q_quality ersetzt.
Verwendung _highquality Beschreibung

berholte Eigenschaft (global); gibt den Grad des in der aktuellen SWF-Datei verwendeten AntiAliasing an. Geben Sie 2 (beste Qualitt) an, um hohe Qualitt mit stndig aktivierter Bitmapglttung zu verwenden. Geben Sie 1 (hohe Qualitt) an, um das Anti-Aliasing zu aktivieren; hiermit werden Bitmaps geglttet, wenn die SWF-Datei keine Animationen enthlt. Geben Sie 0 (niedrige Qualitt) an, um das Anti-Aliasing zu deaktivieren.
Beispiel _highquality = 1;

_highquality

419

Siehe auch

Q_quality, toggleHighQuality()

if
Verfgbarkeit

Flash Player 4.
Verwendung if (bedingung) { anweisung(en); } Parameter bedingung

Ein Ausdruck, der den Wert true oder false haben kann. Die Anweisungen, die ausgefhrt werden sollen, wenn die Bedingung den

anweisung(en) Wert true hat. Rckgaben

Keine.
Beschreibung

Anweisung; wertet eine Bedingung aus, um die nchste Aktion in einer SWF-Datei zu bestimmen. Wenn die Bedingung true ist, fhrt Flash die Anweisungen aus, die in geschweiften Klammern ({}) auf die Bedingung folgen. Wenn die Bedingung false ist, berspringt Flash die Anweisungen in geschweiften Klammern und fhrt die Anweisungen nach den geschweiften Klammern aus. Verwenden Sie die Aktion if fr logische Verzweigungen in Skripts.
Beispiel

Im folgenden Beispiel wertet die Bedingung in Klammern die Variable name aus, um zu sehen, ob sie den Literalwert "Erika" enthlt. Wenn ja, wird die in geschweiften Klammern angegebene Aktion play() ausgefhrt.
if (name == "Erika"){ play(); }

Im folgenden Beispiel wird anhand einer if-Aktion ermittelt, wann ein ziehbares Objekt in der SWF-Datei vom Benutzer losgelassen wird. Wenn das Objekt weniger als 300 Millisekunden nach dem Ziehen losgelassen wird, ergibt die Bedingung true, und die Anweisungen in geschweiften Klammern werden ausgefhrt. Diese Anweisungen setzen Variablen, in denen gespeichert wird, wo sich das Objekt jetzt befindet und wie stark und wie schnell es geworfen wurde. Die Variable timePressed wird ebenfalls zurckgesetzt. Wenn das Objekt mehr als 300 Millisekunden nach dem Ziehen losgelassen wird, ergibt die Bedingung false, und keine der Anweisungen wird ausgefhrt.
if (getTimer()<timePressed+300) { // Wenn die Bedingung "true" ist, // wurde das Objekt geworfen. // Wie ist die neue Position des Objekts? xNewLoc = this._x; yNewLoc = this._y;

420

Kapitel 12: ActionScript-Lexikon

// Wie krftig wurde es geworfen? xTravel = xNewLoc-xLoc; yTravel = yNewLoc-yLoc; // Geschwindigkeit des Objekts // abhngig von der Weite festlegen xInc = xTravel/2; yInc = yTravel/2; timePressed = 0; } Siehe auch else

ifFrameLoaded
Verfgbarkeit

Flash Player 3. Die ifFrameLoaded-Aktion wurde in Flash 5 nicht mehr integriert; Macromedia empfiehlt, die Eigenschaft MovieClip._framesloaded zu verwenden.
Verwendung ifFrameLoaded([szene,] bild) { anweisung(en); } Parameter szene bild

Ein optionaler String, der den Namen der zu ladenden Szene angibt.

Die Nummer oder Bezeichnung des Bilds, das vor Ausfhrung der nchsten Anweisung geladen werden muss. Die Anweisungen, die ausgefhrt werden sollen, falls die angegebene Szene bzw. Szene und Bild geladen werden.

anweisung(en)

Rckgaben

Keine.
Beschreibung

Veraltete Aktion; berprft, ob die Inhalte eines bestimmten Bilds lokal verfgbar sind. Verwenden Sie ifFrameLoaded, um eine einfache Animation wiederzugeben, whrend die restliche SWF-Datei auf den lokalen Computer heruntergeladen wird. Der Unterschied zwischen _framesloaded und ifFrameLoaded liegt darin, dass Sie mit _framesloaded eigene if- oder else-Anweisungen hinzufgen knnen.
Siehe auch MovieClip._framesloaded

implements
Verfgbarkeit

Flash Player 6.

implements

421

Verwendung meineKlasse implements Oberflche01 [, Oberflche02, ...] Hinweis: Um dieses Schlsselwort zu verwenden, mssen Sie auf der Registerkarte Flash im Dialogfeld Einstellungen fr Verffentlichungen der FLA-Datei die Einstellung ActionScript 2.0 aktivieren und Flash Player 6 bzw. Flash Player 7 whlen. Dieses Schlsselwort wird nur in externen Skriptdateien untersttzt, nicht jedoch in Skripts, die im Bedienfeld Aktionen erstellt wurden. Beschreibung

Schlsselwort; definiert eine Klasse, die Implementierungen fr alle Methoden verfgbar macht, die in der bzw. den implementierten Oberflchen definiert sind. Weitere Informationen finden Sie unter Schnittstellen als Datentypen auf Seite 188.
Beispiel

Weitere Informationen hierzu finden Sie unter interface.


Siehe auch class, extends, interface

import
Verfgbarkeit

Flash Player 6.
Verwendung import Klassenname import Paketname.* Hinweis: Um dieses Schlsselwort zu verwenden, mssen Sie auf der Registerkarte Flash im Dialogfeld Einstellungen fr Verffentlichungen der FLA-Datei die Einstellung ActionScript 2.0 aktivieren und Flash Player 6 bzw. Flash Player 7 whlen. Diese Anweisung wird im Bedienfeld Aktionen und in externen Klassendateien untersttzt. Parameter Klassenname Der vollstndig qualifizierte Name einer Klasse, die Sie in einer externen Klassendatei definiert haben. Paketname Beschreibung

Ein Verzeichnis, in dem Sie verwandte Klassendateien gespeichert haben.

Schlsselwort; ermglicht den Zugriff auf Klassen ohne Angabe ihrer vollstndig qualifizierten Namen. Wenn Sie beispielsweise die Klasse macr.util.users.UserClass.as in einem Skript verwenden mchten, mssen Sie entweder ber ihren vollstndig qualifizierten Namen darauf verweisen oder sie importieren. Wenn Sie sie importieren, knnen Sie danach ber ihren Klassennamen darauf verweisen:
// vor Import var meinBenutzer:UserClass = new macr.util.users.UserClass(); // nach Import import macr.util.users.UserClass; var meinUser:UserClass = new UserClass();

422

Kapitel 12: ActionScript-Lexikon

Wenn das Verzeichnis mehrere Klassendateien enthlt, auf die Sie zugreifen mchten, knnen Sie alle in einer einzigen Anweisung importieren.
import macr.util.users.*;

Sie mssen die import -Anweisung erteilen, bevor Sie versuchen, auf die importierte Klasse ohne Angabe ihres vollstndigen Namens zuzugreifen. Wenn Sie ein Klasse importieren, diese aber im Skript nicht verwenden, wird die Klasse nicht als Teil der SWF-Datei exportiert. Dies bedeutet, dass Sie groe Pakete importieren knnen, ohne sich um die Gre der SWF-Datei Gedanken machen zu mssen. Der mit einer Klasse verknpfte Bytecode ist in einer SWF-Datei nur dann enthalten, wenn die entsprechende Klasse tatschlich verwendet wird. Die import-Anweisung gilt nur fr das aktuelle Skript (Bild oder Objekt), in dem sie aufgerufen wird. Stellen Sie sich beispielsweise vor, dass Sie alle Klassen im macr.util-Paket in das erste Bild eines Flash-Dokuments importieren. Auf diesem Bild knnen Sie Verweise auf die Klassen in dem Paket einfach ber die Namen unterbringen.
// Auf Bild 1 einer FLA-Datei: import macr.util.*; var meinFoo:foo = new foo();

In einem anderen Bildskript mssten Sie allerdings die Verweise auf die Klassen in dem Paket ber vollstndig qualifizierte Namen (var meinFoo:foo = new macr.util.foo();) festlegen oder dem anderen Bild eine import-Anweisung hinzufgen, mit der die Klassen in das Paket importiert werden. Weitere Informationen zum Importieren finden Sie unter Klassen importieren auf Seite 192 und Pakete verwenden auf Seite 191.

#include
Verfgbarkeit

Flash Player 4.
Verwendung #include "[pfad] dateiname.as" Hinweis: Setzen Sie kein Semikolon (;) an das Ende der Zeile, die die #include-Anweisung enthlt. Parameter [pfad] dateiname.as Der Dateiname und optionale Pfad fr das Skript, das dem Bedienfeld Aktionen hinzugefgt werden soll. .as ist die empfohlene Dateinamenerweiterung. Rckgaben

Keine.
Beschreibung

Compiler-Direktive: umfasst den Inhalt der angegebenen Datei, als wren die Befehle in der Datei Teil des aufrufenden Skripts. Die Direktive #include wird bei der Kompilierung aufgerufen. Wenn Sie eine externe Datei ndern, mssen Sie sie also speichern und alle FLADateien neu kompilieren, die diese Datei verwenden.

#include

423

Wenn Sie die Schaltflche Syntax berprfen fr ein Skript auswhlen, das #includeAnweisungen enthlt, wird auch die Syntax der enthaltenen Dateien berprft. Sie knnen #include in FLA-Dateien und in externen Skriptdateien verwenden, jedoch nicht in Klassendateien von ActionScript 2.0. Fr die einzubeziehende Datei knnen Sie wahlweise keinen Pfad, einen relativen Pfad oder einen absoluten Pfad angeben.

Wenn Sie keinen Pfad angeben, muss sich die AS-Datei im selben Verzeichnis wie die FLA
Datei oder das Skript mit der #include-Anweisung befinden. Wenn Sie fr die AS-Datei einen Pfad relativ zur FLA-Datei oder zum Skript angeben mchten, verwenden Sie einen einzigen Punkt (.), um das aktuelle Verzeichnis anzugeben, zwei Punkte (..), um das bergeordnete Verzeichnis anzugeben, und Schrgstriche (/). Dies wird in den folgenden Beispielen verdeutlicht. Wenn Sie einen absoluten Pfad fr die AS-Datei angeben mchten, verwenden Sie das von Ihrer Plattform untersttzte Format (Macintosh oder Windows). Dies wird in den folgenden Beispielen verdeutlicht. Dieses Vorgehen wird jedoch nicht empfohlen, da hierfr die Verzeichnisstruktur auf allen Rechnern, auf denen Sie das Skript kompilieren, identisch sein muss.

Beispiel

In den folgenden Beispielen sind verschiedene Arten dargestellt, wie ein in ein Skript einzubeziehender Pfad angegeben werden kann.
// Beachten Sie, dass #include-Anweisungen nicht mit einem Semikolon enden (;) // AS-Datei befindet sich im selben Verzeichnis wie FLA-Datei oder Skript #include "init_script.as" // AS-Datei befindet sich in einem Unterverzeichnis des // Verzeichnisses mit der FLA-Datei oder dem Skript // Das Unterverzeichnis hat den Namen "FLA_includes" #include "FLA_includes/init_script.as" // AS-Datei ist in einem Verzeichnis auf derselben Ebene wie FLA-Datei oder Skript // Das Verzeichnis heit "ALL_includes" #include "../ALL_includes/init_script.as" // AS-Datei wird durch einen absoluten Pfad in Windows angegeben // Achten Sie darauf, dass Sie keine umgekehrten Schrgstriche verwenden #include "C:/Flash_scripts/init_script.as" // AS-Datei wird auf dem Macintosh durch einen absoluten Pfad angegeben #include "Mac HD:Flash_scripts:init_script.as" Siehe auch import

Infinity
Verfgbarkeit

Flash Player 5.

424

Kapitel 12: ActionScript-Lexikon

Verwendung Infinity Beschreibung

Konstante; gibt den IEEE-754-Wert an, der fr positive Unendlichkeit steht. Der Wert dieser Konstante entspricht Number.POSITIVE_INFINITY.

-Infinity
Verfgbarkeit

Flash Player 5.
Verwendung -Infinity Beschreibung

Konstante; gibt den IEEE-754-Wert an, der fr negative Unendlichkeit steht. Der Wert dieser Konstante entspricht Number.NEGATIVE_INFINITY.

#initclip
Verfgbarkeit

Flash Player 6.
Verwendung #initclip reihenfolge Parameter reihenfolge Eine Ganzzahl, die die Ausfhrungsreihenfolge von Blcken im #initclipCode angibt. Dieser Parameter ist optional. Beschreibung

Compiler-Direktive; gibt den Anfang eines Blocks mit Initialisierungsaktionen an. Wenn mehrere Clips gleichzeitig initialisiert werden, knnen Sie mit dem Parameter reihenfolge angeben, welcher Clip zuerst initialisiert werden soll. Komponenten-Initialisierungsaktionen werden beim Definieren eines Movieclip-Symbols ausgefhrt. Wenn der Movieclip ein exportiertes Symbol ist, werden die Initialisierungsaktionen vor den Aktionen in Bild 1 der SWF-Datei ausgefhrt. Andernfalls werden sie unmittelbar vor den Bildaktionen des Bilds ausgefhrt, das die erste Instanz des zugehrigen Movieclip-Symbols enthlt. Initialisierungsaktionen werden whrend der Wiedergabe einer SWF-Datei nur einmal ausgefhrt. Verwenden Sie sie nur fr einmalige Initialisierungsvorgnge, wie z. B. zur Definition und Registrierung von Klassen.
Siehe auch #endinitclip

#initclip

425

instanceof
Verfgbarkeit

Flash Player 6.
Verwendung objekt instanceof klasse Parameter objekt klasse Rckgaben

Ein ActionScript-Objekt. Ein Bezug auf eine ActionScript-Konstruktorfunktion, wie z. B. String oder Date.

Wenn objekt eine Instanz von klasse ist, gibt instanceof den Wert true zurck, andernfalls wird der Wert false zurckgegeben. Auerdem gibt _global instanceof Object den Wert false zurck.
Beschreibung

Operator; bestimmt, ob ein Objekt zu einer bestimmten Klasse gehrt. Prft, ob objekt eine Instanz von klasse ist. Der Operator instanceof wandelt keine Grunddatentypen in Wrapper-Objekte um. Der folgende Code gibt beispielsweise true zurck:
new String("Hallo") instanceof String;

Der folgende Code gibt andererseits false zurck:


"Hallo" instanceof String; Siehe auch typeof

int
Verfgbarkeit

Flash Player 4. Diese Funktion gilt seit Flash 5 als berholt und wurde durch Math.round() ersetzt.
Verwendung int(wert) Parameter wert

Eine Zahl, die auf eine Ganzzahl auf- oder abgerundet wird.

Rckgaben

Keine.
Beschreibung

Funktion; wandelt eine Dezimalzahl in den nchsten ganzzahligen Wert um.

426

Kapitel 12: ActionScript-Lexikon

Siehe auch Math.floor()

interface
Verfgbarkeit

Flash Player 6.
Verwendung interface Oberflchenname {} interface Oberflchenname [extends Oberflchenname [, Oberflchenname ...] {} Hinweis: Um dieses Schlsselwort zu verwenden, mssen Sie auf der Registerkarte Flash im Dialogfeld Einstellungen fr Verffentlichungen der FLA-Datei die Einstellung ActionScript 2.0 aktivieren und Flash Player 6 bzw. Flash Player 7 whlen. Dieses Schlsselwort wird nur in externen Skriptdateien untersttzt, nicht jedoch in Skripts, die im Bedienfeld Aktionen erstellt wurden. Beschreibung

Schlsselwort; definiert eine Oberflche. Eine Oberflche ist vergleichbar mit einer Klasse, mit den folgenden bedeutenden Unterschieden:

Oberflchen umfassen lediglich Deklarationen von Methoden, nicht deren Implementierung.


Das heit, jede Klasse, die eine Oberflche implementiert, muss fr jede in der Oberflche deklarierte Methode eine Implementierung bereitstellen. In einer Oberflchendefinition sind nur ffentliche Mitglieder zulssig. Darber hinaus sind Instanz- und Klassenmitglieder nicht zulssig. Die Anweisungen get und set sind in Oberflchendefinitionen nicht zulssig.

Weitere Informationen finden Sie unter Schnittstellen erstellen und verwenden auf Seite 187.
Beispiel

Im folgenden Beispiel sind verschiedene Mglichkeiten zum Definieren und Implementieren von Oberflchen aufgefhrt.
(in .as-Paketdateien der obersten Ebene Ia, B, C, Ib, D, Ic, E ) // Dateiname Ia.as interface Ia { function k():Number; // nur Methodendeklaration function n(x:Number):Number; // ohne Implementierung } // Dateiname B.as Klasse B implementiert Ia { function k():Number {return 25;} function n(x:Number):Number {return x+5;} } // externes Skript oder Bedienfeld "Aktionen" mvar = new B(); trace(B.k()); // 25 trace(B.n(7)); // 12 // Dateiname c.as

interface

427

Klasse C implementiert Ia { function k():Number {return 25;} } // Fehler: Klasse muss alle Oberflchenmethoden implementieren // Dateiname Ib.as interface Ib { function o():Void; } Klasse D implementiert Ia, Ib { function k():Number {return 15;} function n(x:Number):Number {return x*x;} function o():Void {trace("o");} } // externes Skript mvar = new D(); trace(D.k()); // trace(D.n(7)); // trace(D.o()); // oder Bedienfeld "Aktionen" 15 49 "o"

interface Ic extends Ia { function p():Void; } Klasse E implementiert Ib, Ic { function k():Number {return 25;} function n(x:Number):Number {return x+5;} function o():Void {trace("o");} function p():Void {trace("p");} } Siehe auch class, extends, implements

isFinite
Verfgbarkeit

Flash Player 5.
Verwendung isFinite(ausdruck) Parameter ausdruck Rckgaben

Boolescher Wert, Variable oder anderer Ausdruck, der ausgewertet werden soll.

Ein Boolescher Wert.

428

Kapitel 12: ActionScript-Lexikon

Beschreibung

Funktion; bewertet ausdruck und gibt true zurck, wenn es sich um eine endliche Zahl handelt, oder false, wenn es sich um Unendlichkeit oder negative Unendlichkeit handelt. Das Auftreten von unendlich oder negativ unendlich deutet auf einen mathematischen Fehlerzustand hin, beispielsweise eine Division durch 0.
Beispiel

Nachfolgend einige Beispiele fr Rckgabewerte von isFinite:


isFinite(56) // gibt true zurck isFinite(Number.POSITIVE_INFINITY) // gibt false zurck

isNaN()
Verfgbarkeit

Flash Player 5.
Verwendung isNaN(ausdruck) Parameter ausdruck Rckgaben

Boolescher Wert, Variable oder anderer Ausdruck, der ausgewertet werden soll.

Ein Boolescher Wert.


Beschreibung

Funktion; wertet den Parameter aus und gibt true zurck, wenn der Wert keine Zahl ist (NaN). Dies deutet auf mathematische Fehler hin.
Beispiel

Im folgenden Beispiel werden einige typische Rckgabewerte fr die Funktion isNaN veranschaulicht:
isNaN("Baum") // gibt true zurck isNaN(56) // gibt false zurck isNaN(Number.POSITIVE_INFINITY) // gibt false zurck Siehe auch

NNaN, Number.NaN

isNaN()

429

Key-Klasse
Verfgbarkeit

Flash Player 6.
Beschreibung

Bei der Key-Klasse handelt es sich um eine Klasse der obersten Ebene, deren Methoden und Eigenschaften Sie ohne Konstruktor nutzen knnen. Mit den Methoden der Key-Klasse knnen Sie eine Benutzeroberflche erstellen, die mit einer Standardtastatur gesteuert werden kann. Die Eigenschaften der Key-Klasse sind Konstanten fr die Tasten, die zum Steuern von Spielen am hufigsten verwendet werden. Eine vollstndige Liste der Tastencodewerte finden Sie unter Anhang C, Tastaturtasten und Tastencodewerte, auf Seite 807. bersicht ber die Methoden fr die Key-Klasse
Methode
Key.addListener()

Beschreibung Registriert ein Objekt, das bei Aufruf der Methoden onKeyDown und onKeyUp benachrichtigt werden soll. Gibt den ASCII-Wert der zuletzt gedrckten Taste zurck. Gibt den virtuellen Tastencode der zuletzt gedrckten Taste zurck. Gibt true zurck, wenn die im Parameter angegebene Taste gedrckt ist. Gibt true zurck, wenn die Num- oder Feststelltaste aktiviert ist.

Key.getAscii() Key.getCode() Key.isDown() Key.isToggled()

Key.removeListener() Entfernt ein Objekt, das zuvor mit Key.addListener() registriert wurde.

bersicht ber die Eigenschaften der Key-Klasse Alle Eigenschaften fr die Key-Klasse sind Konstanten.
Eigenschaft
Key.BACKSPACE

Beschreibung Konstante, die dem Tastencodewert fr die Rckschritttaste (8) zugeordnet ist. Konstante, die dem Tastencodewert fr die Feststelltaste (20) zugeordnet ist. Konstante, die dem Tastencodewert fr die Taste <Strg> (17) zugeordnet ist. Konstante, die dem Tastencodewert fr die Taste <Entf> (46) zugeordnet ist. Konstante, die dem Tastencodewert fr die Nach-unten-Taste (40) zugeordnet ist. Konstante, die dem Tastencodewert fr die Taste <Ende> (35) zugeordnet ist. Konstante, die dem Tastencodewert fr die Eingabetaste (13) zugeordnet ist. Konstante, die dem Tastencodewert fr die Taste <Esc> (27) zugeordnet ist. Konstante, die dem Tastencodewert fr die Taste <Pos1> (36) zugeordnet ist. Konstante, die dem Tastencodewert fr die Taste <Einfg> (45) zugeordnet ist.

Key.CAPSLOCK Key.CONTROL Key.DELETEKEY Key.DOWN

Key.END Key.ENTER Key.ESCAPE Key.HOME Key.INSERT

430

Kapitel 12: ActionScript-Lexikon

Eigenschaft
Key.LEFT

Beschreibung Konstante, die dem Tastencodewert fr die Nach-links-Taste (37) zugeordnet ist. Konstante, die dem Tastencodewert fr die Bild-ab-Taste (34) zugeordnet ist. Konstante, die dem Tastencodewert fr die Bild-auf-Taste (33) zugeordnet ist. Konstante, die dem Tastencodewert fr die Nach-rechts-Taste (39) zugeordnet ist. Konstante, die dem Tastencodewert fr die Umschalttaste (16) zugeordnet ist. Konstante, die dem Tastencodewert fr die Leertaste (32) zugeordnet ist. Konstante, die dem Tastencodewert fr die Tabulatortaste (9) zugeordnet ist. Konstante, die dem Tastencodewert fr die Nach-oben-Taste (38) zugeordnet ist.

Key.PGDN Key.PGUP

Key.RIGHT

Key.SHIFT Key.SPACE Key.TAB Key.UP

Listener-bersicht fr die Key-Klasse


Methode
Key.onKeyDown Key.onKeyUp

Beschreibung Benachrichtigung erfolgt, wenn eine Taste gedrckt wird. Benachrichtigung erfolgt, wenn eine Taste losgelassen wird.

Key.addListener()
Verfgbarkeit

Flash Player 6.
Verwendung Key.addListener (neuerListener) Parameter neuerListener Rckgaben

Ein Objekt mit den Methoden onKeyDown und onKeyUp.

Keine.
Beschreibung

Methode; registriert ein Objekt, dessen Methoden onKeyDown und onKeyUp beim Drcken bzw. Loslassen einer Taste aufgerufen werden sollen. Wenn eine Taste gedrckt oder losgelassen wird (unabhngig vom Eingabefokus), wird bei allen mit addListener() registrierten ListenerObjekten die Methode onKeyDown bzw. onKeyUp aufgerufen. Mehrere Objekte knnen auf Tastaturbenachrichtigungen warten. Wenn der Listener neuerListener bereits registriert ist, erfolgt keine nderung.

Key.addListener()

431

Beispiel

Im folgenden Beispiel wird ein neues Listener-Objekt erstellt und eine Funktion fr onKeyDown und onKeyUp definiert. In der letzten Zeile wird der Listener mit addListener() beim KeyObjekt registriert, damit er beim Drcken und Loslassen von Tasten benachrichtigt werden kann.
meinListener = new Object(); meinListener.onKeyDown = function () { trace ("Sie haben eine Taste gedrckt."); } meinListener.onKeyUp = function () { trace ("Sie haben eine Taste losgelassen."); } Key.addListener(meinListener);

Im folgenden Beispiel wird der Tastaturbefehl <Strg>+<7> einer Schaltflche mit dem Instanznamen meineSchaltflche zugewiesen, und die Informationen ber den Befehl werden dem Bildschirmbetrachter zugnglich gemacht (Nheres hierzu finden Sie unter _accProps). In diesem Beispiel zeigt die Funktion meinOnPress die Textmeldung Hallo an, wenn Sie <Strg>+<7> drcken. In Ihrer eigenen Datei wrden Sie dafr jedoch eine Funktion erstellen, die etwas Sinnvolleres bewirkt.
function meinOnPress () {} trace( "Hallo" ); } function meinOnKeyDown () {} bei (Key.isDown(Key.CONTROL) && Key.getCode() == 55) // ist 55 der Tastencode fr 7. { Selection.setFocus( meineSchaltflche); meineSchaltflche.onPress } } var meinListener = neues Objekt(); meinListener.onKeyDown = meinOnKeyDown; Key.addListener( meinListener); meineSchaltflche.onPress = meinOnPress; meineSchaltflche._accProps.shortcut = "Ctrl+F" Accessibility.updateProperties() Siehe auch Key.getCode(), Key.isDown(), Key.onKeyDown, Key.onKeyUp, Key.removeListener()

Key.BACKSPACE
Verfgbarkeit

Flash Player 5.
Verwendung Key.BACKSPACE Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Rckschritttaste (8) zugeordnet ist.

432

Kapitel 12: ActionScript-Lexikon

Key.CAPSLOCK
Verfgbarkeit

Flash Player 5.
Verwendung Key.CAPSLOCK Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Feststelltaste (20) zugeordnet ist.

Key.CONTROL
Verfgbarkeit

Flash Player 5.
Verwendung Key.CONTROL Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Taste <Strg> (17) zugeordnet ist.

Key.DELETEKEY
Verfgbarkeit

Flash Player 5.
Verwendung Key.DELETEKEY Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Taste <Entf> (46) zugeordnet ist.

Key.DOWN
Verfgbarkeit

Flash Player 5.
Verwendung Key.DOWN Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Nach-unten-Taste (40) zugeordnet ist.

Key.END
Verfgbarkeit

Flash Player 5.

Key.END

433

Verwendung Key.END Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Taste <Ende> (35) zugeordnet ist.

Key.ENTER
Verfgbarkeit

Flash Player 5.
Verwendung Key.ENTER Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Eingabetaste (13) zugeordnet ist.

Key.ESCAPE
Verfgbarkeit

Flash Player 5.
Verwendung Key.ESCAPE Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Taste <Esc> (27) zugeordnet ist.

Key.getAscii()
Verfgbarkeit

Flash Player 5.
Verwendung Key.getAscii(); Parameter

Keine.
Rckgaben

Eine Ganzzahl, die den ASCII-Wert der zuletzt gedrckten Taste angibt.
Beschreibung

Methode; gibt den ASCII-Code der zuletzt gedrckten bzw. losgelassenen Taste zurck. Die zurckgegebenen ASCII-Werte sind Werte fr die englische Tastatur. Wenn Sie beispielweise <Umschalt>+<2> drcken, gibt Key.getAscii() auf einer japanischen Tastatur genau wie auf einer englischen Tastatur @ zurck.

434

Kapitel 12: ActionScript-Lexikon

Key.getCode()
Verfgbarkeit

Flash Player 5.
Verwendung Key.getCode(); Parameter

Keine.
Rckgaben

Eine Ganzzahl, die den Tastencode der zuletzt gedrckten Taste angibt.
Beschreibung

Methode; gibt den Tastencodewert der zuletzt gedrckten Taste zurck. Informationen dazu, wie Sie einen Tastencodewert auf die jeweilige Taste einer Standardtastatur abstimmen, finden Sie unter Anhang C, Tastaturtasten und Tastencodewerte, auf Seite 807.

Key.HOME
Verfgbarkeit

Flash Player 5.
Verwendung Key.HOME Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Taste <Pos1> (36) zugeordnet ist.

Key.INSERT
Verfgbarkeit

Flash Player 5.
Verwendung Key.INSERT Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Taste <Einfg> (45) zugeordnet ist.

Key.isDown()
Verfgbarkeit

Flash Player 5.
Verwendung Key.isDown(tastencode)

Key.isDown()

435

Parameter tastencode Der einer bestimmten Taste zugeordnete Tastencodewert oder eine Eigenschaft der Key-Klasse, die einer bestimmten Taste zugeordnet ist. Informationen dazu, wie Sie einen Tastencodewert auf die jeweilige Taste einer Standardtastatur abstimmen, finden Sie unter Anhang C, Tastaturtasten und Tastencodewerte, auf Seite 807. Rckgaben

Ein Boolescher Wert.


Beschreibung

Methode; gibt true zurck, wenn die in tastencode angegebene Taste gedrckt ist, und false, wenn sie nicht gedrckt ist. Auf Macintosh-Computern sind die Tastencodewerte fr die Feststelltaste und die Taste <Num> identisch.
Beispiel

Mit dem folgenden Skript kann der Benutzer steuern, wo sich ein Movieclip befinden soll.
onClipEvent (enterFrame) { if(Key.isDown(Key.RIGHT)) { this._x=_x+10; } else if (Key.isDown(Key.DOWN)) { this._y=_y+10; } }

Key.isToggled()
Verfgbarkeit

Flash Player 5.
Verwendung Key.isToggled(tastencode) Parameter tastencode Rckgaben

Der Tastencode fr die Feststelltaste (20) oder die Taste <Num> (144).

Ein Boolescher Wert.


Beschreibung

Methode; gibt true zurck, wenn die Feststelltaste oder die Taste <Num> aktiviert (umgeschaltet) wird, und false wenn sie nicht aktiviert ist. Auf Macintosh-Computern sind die Tastencodewerte fr die Feststelltaste und die Taste <Num> identisch.

Key.LEFT
Verfgbarkeit

Flash Player 5.

436

Kapitel 12: ActionScript-Lexikon

Verwendung Key.LEFT Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Nach-links-Taste (37) zugeordnet ist.

Key.onKeyDown
Verfgbarkeit

Flash Player 6.
Verwendung bestimmterListener.onKeyDown Beschreibung

Listener; wird benachrichtigt, wenn eine Taste gedrckt wird. Zur Verwendung von onKeyDown mssen Sie ein Listener-Objekt erstellen. Anschlieend knnen Sie wie folgt eine Funktion fr onKeyDown definieren und den Listener mit addListener() dem Key-Objekt zuordnen:
bestimmterListener = new Object(); bestimmterListener.onKeyDown = function () { ... }; Key.addListener(bestimmterListener);

Listener ermglichen die Kooperation zwischen unterschiedlichen Codeabschnitten, da mehrere Listener von einem einzelnen Ereignis benachrichtigt werden knnen.
Siehe auch Key.addListener()

Key.onKeyUp
Verfgbarkeit

Flash Player 6.
Verwendung bestimmterListener.onKeyUp Beschreibung

Listener; wird benachrichtigt, wenn eine Taste losgelassen wird. Zur Verwendung von onKeyUp mssen Sie ein Listener-Objekt erstellen. Anschlieend knnen Sie wie folgt eine Funktion fr onKeyUp definieren und den Listener mit addListener() dem Key-Objekt zuordnen:
bestimmterListener = new Object(); bestimmterListener.onKeyUp = function () { ... }; Key.addListener(bestimmterListener);

Listener ermglichen die Kooperation zwischen unterschiedlichen Codeabschnitten, da mehrere Listener von einem einzelnen Ereignis benachrichtigt werden knnen.
Siehe auch Key.addListener()

Key.onKeyUp

437

Key.PGDN
Verfgbarkeit

Flash Player 5.
Verwendung Key.PGDN Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Bild-ab-Taste (34) zugeordnet ist.

Key.PGUP
Verfgbarkeit

Flash Player 5.
Verwendung Key.PGUP Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Bild-auf-Taste (33) zugeordnet ist.

Key.removeListener()
Verfgbarkeit

Flash Player 6.
Verwendung Key.removeListener (listener) Parameter listener Rckgaben

Ein Objekt.

Wenn der angegebene listener erfolgreich entfernt wurde, gibt die Methode true zurck. Wenn listener nicht erfolgreich entfernt werden konnte, beispielsweise weil listener nicht auf der Listener-Liste des Key-Objekts stand, gibt die Methode false zurck.
Beschreibung

Methode; entfernt ein Objekt, das zuvor mit Key.addListener() registriert wurde.

Key.RIGHT
Verfgbarkeit

Flash Player 5.
Verwendung Key.RIGHT

438

Kapitel 12: ActionScript-Lexikon

Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Nach-rechts-Taste (39) zugeordnet ist.

Key.SHIFT
Verfgbarkeit

Flash Player 5.
Verwendung Key.SHIFT Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Umschalttaste (16) zugeordnet ist.

Key.SPACE
Verfgbarkeit

Flash Player 5.
Verwendung Key.SPACE Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Leertaste (32) zugeordnet ist.

Key.TAB
Verfgbarkeit

Flash Player 5.
Verwendung Key.TAB Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Tabulatortaste (9) zugeordnet ist.

Key.UP
Verfgbarkeit

Flash Player 5.
Verwendung Key.UP Beschreibung

Eigenschaft; Konstante, die dem Tastencodewert fr die Nach-oben-Taste (38) zugeordnet ist.

Key.UP

439

le (kleiner oder gleich - stringspezifisch)


Verfgbarkeit

Flash Player 4. Dieser Operator wurde in Flash 5 durch den <= (kleiner oder gleich)Operator ersetzt.
Verwendung ausdruck1 le ausdruck2 Parameter ausdruck1, ausdruck2 Rckgaben

Zahlen, Strings oder Variablen.

Keine.
Beschreibung

Operator (Vergleich); vergleicht ausdruck1 mit ausdruck2 und gibt true zurck, wenn ausdruck1 kleiner oder gleich ausdruck2 ist; andernfalls wird false zurckgegeben.
Siehe auch <= (kleiner oder gleich)

length
Verfgbarkeit

Flash Player 4. Diese und alle String-Funktionen wurden in Flash 5 ersetzt. Macromedia empfiehlt, die Methoden der String-Klasse und die String.length-Eigenschaft fr die Ausfhrung dieser Vorgnge zu verwenden.
Verwendung length(ausdruck) length(variable) Parameter ausdruck variable Rckgaben

Ein String. Der Name einer Variablen.

Die Lnge des angegebenen String- oder Variablennamens.


Beschreibung

Stringfunktion; gibt die Lnge des angegebenen Strings oder Variablennamens zurck.
Beispiel

Im folgenden Beispiel wird der Wert des Strings Hallo zurckgegeben:


length("Hallo");

Das Ergebnis ist 5.

440

Kapitel 12: ActionScript-Lexikon

Siehe auch " " (Stringtrennzeichen),

String-Klasse, String.length

_level
Verfgbarkeit

Flash Player 4.
Verwendung _levelN Beschreibung

Bezeichner; ein Verweis auf die Stammzeitleiste der Stufe _levelN. Sie mssen mit loadMovieNum() SWF-Dateien in den Flash Player laden, bevor Sie mit der Eigenschaft _level das gewnschte Ziel angeben knnen. Sie knnen auch _levelN verwenden, um eine geladene SWF-Datei der durch N angegebenen Stufe zuzuordnen.
_level0 zugeordnet. Die SWF-Datei in _level0

Die erste SWF-Datei, die in eine Instanz des Flash Players geladen wird, wird automatisch legt die Bildrate, die Hintergrundfarbe und die Bildgre aller anderen geladenen SWF-Dateien fest. SWF-Dateien werden dann in hheren Stufen ber der in _level0 befindlichen SWF-Datei gestapelt.

Jeder SWF-Datei, die mit loadMovieNum() in den Flash Player geladen wird, muss eine Stufe zugewiesen werden. Die Stufenzuweisung kann in beliebiger Reihenfolge vorgenommen werden. Bei Zuweisung einer Stufe, die bereits eine SWF-Datei enthlt (einschlielich _level0), wird die bereits geladene SWF-Datei entfernt und durch die neue SWF-Datei ersetzt.
Beispiel

Im folgenden Beispiel wird der Abspielkopf in der Hauptzeitleiste der SWF-Datei in _level9 angehalten:
_level9.stop();

Im folgenden Beispiel wird der Abspielkopf in der Hauptzeitleiste der SWF-Datei in _level4 auf Bild 5 gesendet. Die SWF-Datei in _level4 muss vorher mit der Aktion loadMovieNum geladen worden sein.
_level4.gotoAndStop(5); Siehe auch loadMovie(), MovieClip.swapDepths()

loadMovie()
Verfgbarkeit

Flash Player 3.
Verwendung loadMovie("url",ziel [, methode])

loadMovie()

441

Parameter url Die absolute oder relative URL fr die zu ladende SWF- oder JPEG-Datei. Ein relativer Pfad muss relativ sein zur SWF-Datei in Stufe 0. Absolute URLs mssen den Protokollverweis, z. B. http:// oder file:/// beinhalten. ziel

Ein Pfad zum Ziel-Movieclip. Der Ziel-Movieclip wird durch die geladene SWF- bzw. Grafikdatei ersetzt.

Ein optionaler Parameter, der eine HTTP-Methode zum Senden von Variablen angibt. Bei diesem Parameter muss es sich um den String GET oder POST handeln. Lassen Sie diesen Parameter weg, wenn es keine zu sendenden Variablen gibt. Bei der Methode GET, die zum Senden einer kleinen Anzahl von Variablen verwendet wird, werden die Variablen am Ende der URL angehngt. Bei der Methode POST, die zum Senden langer Variablenstrings verwendet wird, werden die Variablen in einem separaten HTTP-Header gesendet.
methode Rckgaben

Keine.
Beschreibung

Funktion; ldt eine SWF- oder JPEG-Datei in den Flash Player, whrend die ursprngliche SWFDatei abgespielt wird.
Tipp: Verwenden Sie MovieClipLoader.loadClip() anstelle dieser Funktion, wenn Sie den Download-Fortschritt berwachen mchten.

Mit der Funktion loadMovie() knnen Sie mehrere SWF-Dateien auf einmal abspielen bzw. zwischen einzelnen SWF-Dateien hin- und herschalten, ohne ein weiteres HTML-Dokument laden zu mssen. Ohne die Funktion loadMovie() zeigt der Flash Player nur eine einzelne SWFDatei an und wird dann geschlossen. Wenn Sie eine SWF- oder JPEG-Datei in eine bestimmte Stufe laden mchten, verwenden Sie loadMovieNum() anstelle von loadMovie(). Wenn eine SWF-Datei in einen Ziel-Movieclip geladen wird, knnen Sie den Zielpfad dieses Movieclips zum Ansprechen der geladenen SWF-Datei verwenden. Eine in ein Ziel geladene SWF-Datei bernimmt die Positions-, Drehungs- und Skalierungseigenschaften des Movieclips, der als Ziel angegeben wird. Die linke obere Ecke der geladenen Grafik bzw. der geladenen SWFDatei wird am Registrierungspunkt des Ziel-Movieclips ausgerichtet, es sei denn, als Ziel wird die _root-Zeitleiste angegeben. In diesem Fall wird die linke obere Ecke der Grafik bzw. der SWFDatei an der linken oberen Ecke der Bhne ausgerichtet. Verwenden Sie unloadMovie(), um SWF-Dateien zu entfernen, die mit loadMovie() geladen wurden.
Beispiel

Die folgende loadMovie()-Anweisung ist mit der Navigationsschaltflche Produkte verbunden. Es gibt einen unsichtbaren Movieclip auf der Bhne mit dem Instanznamen dropZone. Die Funktion loadMovie() verwendet diesen Movieclip als Zielparameter zum Laden der Produkte in der SWF-Datei an der korrekten Position auf der Bhne.
on(release) { loadMovie("produkte.swf", _root.dropZone); }

442

Kapitel 12: ActionScript-Lexikon

Im folgenden Beispiel wird eine JPEG-Grafik geladen, die sich im selben Verzeichnis befindet wie die SWF-Datei, die die Funktion loadMovie() aufruft:
loadMovie("image45.jpeg", "ourMovieClip"); Siehe auch _level, loadMovieNum(), MovieClipLoader.loadClip(), unloadMovie()

loadMovieNum()
Verfgbarkeit

Flash Player 4. In Flash 5 oder neueren Versionen geffnete Flash 4-Dateien werden auf die richtige Syntax umgestellt.
Verwendung loadMovieNum("url",stufe[, variablen]) Parameter url Die absolute oder relative URL fr die zu ladende SWF- oder JPEG-Datei. Ein relativer Pfad muss relativ zur SWF-Datei in Stufe 0 sein. Um SWF-Dateien im eigenstndigen Flash Player verwenden oder in der Flash-Authoring-Anwendung im Filmtestmodus testen zu knnen, mssen diese im selben Ordner gespeichert sein. Die Dateinamen drfen auerdem keine Laufwerks- und Ordnerbezeichnungen enthalten. stufe Eine Ganzzahl, die die Stufe im Flash Player angibt, in die die SWF-Datei geladen werden soll. variablen Ein optionaler Parameter, der eine HTTP-Methode zum Senden von Variablen angibt. Bei diesem Parameter muss es sich um den String GET oder POST handeln. Lassen Sie diesen Parameter weg, wenn es keine zu sendenden Variablen gibt. Bei der Methode GET, die zum Senden einer kleinen Anzahl von Variablen verwendet wird, werden die Variablen am Ende der URL angehngt. Bei der Methode POST, die zum Senden langer Variablenstrings verwendet wird, werden die Variablen in einem separaten HTTP-Header gesendet. Rckgaben

Keine.
Beschreibung

Funktion; ldt eine SWF- oder JPEG-Datei in eine Stufe im Flash Player, whrend die ursprnglich geladene SWF-Datei abgespielt wird.
Tipp: Verwenden Sie MovieClipLoader.loadClip() anstelle dieser Funktion, wenn Sie den Download-Fortschritt berwachen mchten.

Normalerweise zeigt der Flash Player nur einen einzelnen Film (SWF-Datei) an und wird dann geschlossen. Mit der Aktion loadMovie() knnen Sie mehrere SWF-Dateien auf einmal abspielen bzw. zwischen einzelnen SWF-Dateien hin- und herschalten, ohne ein weiteres HTMLDokument laden zu mssen. Wenn Sie anstelle einer Stufe ein Ziel angeben mchten, verwenden Sie loadMovie() anstelle von loadMovieNum().

loadMovieNum()

443

Die Stapelanordnung im Flash Player beginnt mit Stufe 0. Stufen sind vergleichbar mit Overhead-Folien; sie sind durchsichtig bis auf die Objekte, die sich auf den einzelnen Stufen befinden. Bei Verwendung der Aktion loadMovieNum() mssen Sie eine Flash Player-Stufe angeben, in die die SWF-Datei geladen werden soll. Nachdem eine SWF-Datei in eine Stufe geladen wurde, knnen Sie mit der Syntax _levelN (N = Nummer der gewnschten Stufe) das Ziel fr die SWF-Datei angeben. Beim Laden einer SWF-Datei knnen Sie eine beliebige Stufe angeben, sogar eine Stufe, in die bereits eine SWF-Datei geladen ist. In diesem Fall wird die vorhandene SWF-Datei durch die neue ersetzt. Wenn Sie eine neue SWF-Datei in Stufe 0 laden, werden alle Stufen im Flash Player entladen, und Stufe 0 wird durch die neue Datei ersetzt. Die SWF-Datei in Stufe 0 legt die Bildrate, die Hintergrundfarbe und die Bildgre aller anderen geladenen SWF-Dateien fest. Sie knnen die Aktion loadMovieNum() auch verwenden, um JPEG-Dateien in eine SWF-Datei zu laden, die gerade abgespielt wird. Sowohl bei Grafiken als auch bei SWF-Dateien wird die linke obere Ecke beim Laden des Films an der linken oberen Ecke der Bhne ausgerichtet. In beiden Fllen bernimmt die geladene Datei die Dreh- und Skalierungseigenschaften des ursprnglichen Films, und der ursprngliche Inhalt wird berschrieben. Verwenden Sie unloadMovieNum(), loadMovieNum() geladen wurden.
Beispiel

um SWF-Dateien und Bilder zu entfernen, die mit

Im folgenden Beispiel wird die JPEG-Grafik image45.jpg in Stufe 2 des Flash Players geladen:
loadMovieNum("http://www.blag.com/image45.jpg", 2); Siehe auch loadMovie(), unloadMovieNum(), _level

loadVariables()
Verfgbarkeit

Flash Player 4; Verhalten gendert in Flash Player 7.


Verwendung loadVariables ("url" , ziel [, variablen]) Parameter url Eine absolute oder relative URL, an der sich die Variablen befinden. Wenn die SWF-Datei, die diesen Aufruf ausgibt, in einem Webbrowser luft, muss sich die url in derselben Domne befinden wie die SWF-Datei. Weitere Einzelheiten hierzu finden Sie im nachstehenden Abschnitt Beschreibung. ziel

Der Zielpfad zu einem Movieclip, der die geladenen Variablen empfangen soll.

variablen Ein optionaler Parameter, der eine HTTP-Methode zum Senden von Variablen angibt. Bei diesem Parameter muss es sich um den String GET oder POST handeln. Lassen Sie diesen Parameter weg, wenn es keine zu sendenden Variablen gibt. Bei der Methode GET, die zum Senden einer kleinen Anzahl von Variablen verwendet wird, werden die Variablen am Ende der URL angehngt. Bei der Methode POST, die zum Senden langer Variablenstrings verwendet wird, werden die Variablen in einem separaten HTTP-Header gesendet.

444

Kapitel 12: ActionScript-Lexikon

Rckgaben

Keine.
Beschreibung

Funktion; liest Daten aus einer externen Datei, beispielsweise aus einer Textdatei oder aus Text, der von einem CGI-, Active Server Pages- (ASP-), PHP- oder Perl-Skript generiert wurde, und setzt die Werte fr Variablen in einer Ziel-Movieclip-Stufe. Mit dieser Aktion knnen auch Variablen in der aktiven SWF-Datei durch neue Werte aktualisiert werden. Der Text an der angegebenen URL muss im Standard-MIME-Format application/x-www-formurlencoded (einem von CGI-Skripts verwendeten Standardformat) vorliegen. Es kann eine beliebige Anzahl von Variablen angegeben werden. Mit dem folgenden Ausdruck werden z. B. mehrere Variablen definiert:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103

Bei SWF-Dateien, die in einer vor Flash Player 7 liegenden Player-Version laufen, muss sich die url in derselben Superdomne befinden, wie die SWF-Datei, die diesen Aufruf ausgibt. Eine unter www.eineDomaene.com befindliche SWF-Datei kann beispielsweise Variablen von einer SWF-Datei laden, die unter store.eineDomaene.com zu finden ist, da sich beide Dateien in derselben Superdomne eineDomaene.com befinden. Bei SWF-Dateien einer beliebigen Version, die in Flash Player 7 oder einer neueren Version laufen, muss sich die url in exakt derselben Domne befinden (siehe dazu Flash PlayerSicherheitsfunktionen auf Seite 211). So kann beispielsweise eine SWF-Datei unter www.eineDomaene.com nur Variablen von SWF-Dateien laden, die sich ebenfalls unter www.eineDomaene.com befinden. Wenn Sie beabsichtigen, Variablen von einer anderen Domne zu laden, knnen Sie auf den Server, der die SWF-Datei enthlt, auf die Zugriff genommen werden soll, eine Datei mit Anweisungen fr den Domnenbergriff laden. Weitere Informationen finden Sie unter Domnenbergreifendes Laden von Daten ermglichen auf Seite 213.
loadVariablesNum() Beispiel

Wenn Sie Variablen in eine bestimmte Stufe laden mchten, verwenden Sie anstelle von loadVariables().

Im folgenden Beispiel werden Informationen aus einer Textdatei in die Textfelder im Movieclip varZiel auf der Hauptzeitleiste geladen. Die Variablennamen der Textfelder mssen mit den Variablennamen in der Datei daten.txt bereinstimmen.
on(release) { loadVariables("daten.txt", "_root.varZiel"); } Siehe auch loadVariablesNum(), loadMovie(), loadMovieNum(), getURL(), MovieClip.loadMovie(), MovieClip.loadVariables()

loadVariablesNum()
Verfgbarkeit

Flash Player 4. In Flash 5 oder neueren Versionen geffnete Flash 4-Dateien werden auf die richtige Syntax umgestellt. Verhalten gendert in Flash Player 7.

loadVariablesNum()

445

Verwendung loadVariablesNum ("url" ,stufe[, variablen]) Parameter url Eine absolute oder relative URL, an der sich die Variablen befinden. Wenn die SWF-Datei, die diesen Aufruf ausgibt, in einem Webbrowser luft, muss sich die url in derselben Domne befinden wie die SWF-Datei. Weitere Einzelheiten finden Sie im nachstehenden Abschnitt Beschreibung. stufe

Eine Ganzzahl, die die Stufe im Flash Player angibt, in die die Variablen geladen werden

sollen.
variablen Ein optionaler Parameter, der eine HTTP-Methode zum Senden von Variablen angibt. Bei diesem Parameter muss es sich um den String GET oder POST handeln. Lassen Sie diesen Parameter weg, wenn es keine zu sendenden Variablen gibt. Bei der Methode GET, die zum Senden einer kleinen Anzahl von Variablen verwendet wird, werden die Variablen am Ende der URL angehngt. Bei der Methode POST, die zum Senden langer Variablenstrings verwendet wird, werden die Variablen in einem separaten HTTP-Header gesendet. Rckgaben

Keine.
Beschreibung

Funktion; liest Daten aus einer externen Datei, beispielsweise aus einer Textdatei, die von einem CGI-, Active Server Pages- (ASP-), PHP- oder Perl-Skript generiert wurde, und setzt die Werte fr Variablen in einer Flash Player-Stufe. Mit dieser Funktion knnen auch Variablen in der aktiven SWF-Datei durch neue Werte aktualisiert werden. Der Text an der angegebenen URL muss im Standard-MIME-Format application/x-www-formurlencoded (einem von CGI-Skripts verwendeten Standardformat) vorliegen. Es kann eine beliebige Anzahl von Variablen angegeben werden. Mit dem folgenden Ausdruck werden z. B. mehrere Variablen definiert:
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103

Bei SWF-Dateien, die in einer vor Flash Player 7 liegenden Player-Version laufen, muss sich die url in derselben Superdomne befinden, wie die SWF-Datei, die diesen Aufruf herausgibt. Eine unter www.eineDomaene.com befindliche SWF-Datei kann beispielsweise Variablen von einer SWF-Datei laden, die unter store.eineDomaene.com zu finden ist, da sich beide Dateien in derselben Superdomne eineDomaene.com befinden. Bei SWF-Dateien einer beliebigen Version, die in Flash Player 7 oder einer neueren Version laufen, muss sich die url in exakt derselben Domne befinden (siehe dazu Flash PlayerSicherheitsfunktionen auf Seite 211). So kann beispielsweise eine SWF-Datei unter www.eineDomaene.com nur Variablen von SWF-Dateien laden, die sich ebenfalls unter www.eineDomaene.com befinden. Wenn Sie beabsichtigen, Variablen von einer anderen Domne zu laden, knnen Sie auf den Server, der die SWF-Datei enthlt, auf die Zugriff genommen werden soll, eine Datei mit Anweisungen fr den Domnenbergriff laden. Weitere Informationen finden Sie unter Domnenbergreifendes Laden von Daten ermglichen auf Seite 213. Wenn Sie Variablen in einen Ziel-Movieclip laden mchten, verwenden Sie loadVariables() anstelle von loadVariablesNum().

446

Kapitel 12: ActionScript-Lexikon

Beispiel

Im folgenden Beispiel werden Informationen aus einer Textdatei in die Textfelder auf der Hauptzeitleiste der SWF-Datei in Stufe 0 des Flash Players geladen. Die Variablennamen der Textfelder mssen mit den Variablennamen in der Datei daten.txt bereinstimmen.
on(release) { loadVariablesNum("daten.txt", 0); } Siehe auch getURL(), loadMovie(), loadMovieNum(), loadVariables(), MovieClip.loadMovie(), MovieClip.loadVariables()

LoadVars-Klasse
Verfgbarkeit

Flash Player 6.
Beschreibung

Die LoadVars-Klasse stellt eine Alternative zur Funktion loadVariables() fr die bertragung von Variablen zwischen einer Flash-Anwendung und einem Server dar. Mit der LoadVars-Klasse knnen Sie beim Herunterladen eine Besttigung des erfolgreichen Ladevorgangs, Statusangaben und Streamdaten abrufen. Die LoadVars-Klasse funktioniert hnlich wie die XML-Klasse. Fr die Kommunikation mit einem Server verwendet sie die Methoden load(), send() und sendAndLoad(). Der Hauptunterschied zwischen der LoadVarsKlasse und der XML-Klasse besteht darin, dass LoadVars statt eines im XML-Objekt gespeicherten XML-DOM-Baums ActionScript-Namen- und -Wertepaare bertrgt. Fr die LoadVars-Klasse gelten dieselben Sicherheitsbeschrnkungen wie fr die XML-Klasse. bersicht ber die Methoden fr die LoadVars-Klasse
Methode Beschreibung

LoadVars.addRequestHeader() Fgt HTTP-Header fr POST-Vorgnge hinzu oder ndert diese. LoadVars.getBytesLoaded()

Gibt die Anzahl der von LoadVars.load() oder LoadVars.sendAndLoad() heruntergeladenen Byte an. Gibt die Gesamtzahl von Byte zurck, die mit der Methode load oder sendAndLoad geladen werden. Ldt Variablen von der angegebenen URL herunter. bertrgt Variablen aus einem LoadVars-Objekt an eine URL. bertrgt Variablen aus einem LoadVars-Objekt an eine URL und ldt die Antwort des Servers auf ein Zielobjekt herunter. Gibt einen URL-kodierten String zurck, der alle aufzhlbaren Variablen im LoadVars-Objekt enthlt.

LoadVars.getBytesTotal()

LoadVars.load() LoadVars.send() LoadVars.sendAndLoad()

LoadVars.toString

LoadVars-Klasse

447

bersicht ber die Eigenschaften der LoadVars-Klasse


Eigenschaft
LoadVars.contentType LoadVars.loaded

Beschreibung Gibt den MIME-Typ der Daten an. Ein Boolescher Wert, der angibt, ob ein load- oder sendAndLoadVorgang abgeschlossen ist.

bersicht ber die Ereignisprozedur fr die LoadVars-Klasse


Ereignisprozedur
LoadVars.onData

Beschreibung Wird aufgerufen, wenn Daten vollstndig vom Server heruntergeladen wurden oder wenn beim Herunterladen von Daten von einem Server ein Fehler auftritt. Wird aufgerufen, wenn ein load- oder sendAndLoad-Vorgang abgeschlossen ist.

LoadVars.onLoad

Konstruktor fr die LoadVars-Klasse


Verfgbarkeit

Flash Player 6.
Verwendung new LoadVars() Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Konstruktor; erstellt ein neues LoadVars-Objekt. Anschlieend knnen Sie die Methoden dieses LoadVars-Objekts zum Senden und Laden von Daten verwenden.
Beispiel

Im folgenden Beispiel wird das LoadVars-Objekt mein_lv erstellt:


var mein_lv = new LoadVars();

LoadVars.addRequestHeader()
Verfgbarkeit

Flash Player 6.
Verwendung mein_lv.addRequestHeader(headerName, headerValue) mein_lv.addRequestHeader(["headerName_1", "headerWert_1" ... "headerName_n", "headerWert_n"])

448

Kapitel 12: ActionScript-Lexikon

Parameter headerName headerWert Rckgaben

Ein Header-Name einer HTTP-Anforderung. Der mit headerName verbundene Wert.

Keine.
Beschreibung

Methode; fgt mit POST-Aktionen gesendete HTTP-Anforderungsheader (beispielsweise Content-Type oder SOAPAction) hinzu oder ndert diese. Im ersten Schritt bergeben Sie zwei Strings an die Methode: headerName und headerWert. Im zweiten Schritt bergeben Sie einen String-Array, wechselnde Headernamen und Headerwerte. Wenn fr die Festlegung eines Headernamens mehrere Aufrufe durchgefhrt werden, ersetzt der jeweils folgende Wert den im vorhergehenden Aufruf festgelegten Wert. Die folgenden Standard-HTTP-Header knnen mit dieser Methode nicht hinzugefgt oder gendert werden: Accept-Ranges, Age, Allow, Allowed, Connection, Content-Length, Content-Location, Content-Range, ETag, Host, Last-Modified, Locations, Max-Forwards, Proxy-Authenticate, Proxy-Authorization, Public, Range, Retry-After, Server, TE, Trailer, Transfer-Encoding, Upgrade, URI, Vary, Via, Warning und WWW-Authenticate.
Beispiel

In diesem Beispiel wird der benutzerdefinierte HTTP-Header SOAPAction mit dem Wert Foo dem Objekt mein_lv hinzugefgt.
mein_lv.addRequestHeader("SOAPAction", "'Foo'");

Im nchsten Beispiel wird ein Array mit dem Namen headers erstellt, der zwei wechselnde HTTP-Header und die jeweils zugehrigen Werte enthlt. Das Array wird als Argument an addRequestHeader() bergeben.
var headers = ["Content-Type", "text/plain", "X-ClientAppVersion", "2.0"]; mein_lv.addRequestHeader(headers); Siehe auch XML.addRequestHeader()

LoadVars.contentType
Verfgbarkeit

Flash Player 6.
Verwendung mein_lv.contentType Beschreibung

Eigenschaft; der MIME-Typ, der beim Aufruf von LoadVars.send() oder LoadVars.sendAndLoad() an den Server gesendet wird. Der Standardwert ist application/xwww-form-urlencoded.

LoadVars.contentType

449

Siehe auch LoadVars.send(), LoadVars.sendAndLoad()

LoadVars.getBytesLoaded()
Verfgbarkeit

Flash Player 6.
Verwendung mein_lv.getBytesLoaded() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Anzahl der von LoadVars.load() oder LoadVars.sendAndLoad() heruntergeladenen Byte an. Diese Methode gibt undefined zurck, wenn kein Ladevorgang aktiv ist oder gestartet wurde.

LoadVars.getBytesTotal()
Verfgbarkeit

Flash Player 6.
Verwendung mein_lv.getBytesTotal() Parameter

Keine.
Rckgaben

Eine Ganzzahl.
Beschreibung

Methode; gibt die Gesamtzahl der von LoadVars.load() oder LoadVars.sendAndLoad() heruntergeladenen Byte an. Diese Methode gibt undefined zurck, wenn kein Ladevorgang aktiv ist oder gestartet wurde. Diese Methode gibt auch dann undefined zurck, wenn sich die Gesamtzahl von Byte nicht ermitteln lsst, z. B. wenn der Download zwar eingeleitet wurde, der Server aber keinen HTTP-Inhaltslngenwert bertrug.

LoadVars.load()
Verfgbarkeit

Flash Player 6; Verhalten gendert in Flash Player 7.

450

Kapitel 12: ActionScript-Lexikon

Verwendung mein_lv.load(url) Parameter url Die URL, ber die die Variablen heruntergeladen werden. Wenn die SWF-Datei, die diesen Aufruf ausgibt, in einem Webbrowser luft, muss sich die url in derselben Domne befinden wie die SWF-Datei. Weitere Einzelheiten hierzu finden Sie im nachstehenden Abschnitt Beschreibung. Rckgaben

Ein String.
Beschreibung

Methode; ldt Variablen von der angegebenen URL herunter, parst die Variablendaten und stellt die resultierenden Variablen in mein_lv. Alle Eigenschaften in mein_lv, die denselben Namen wie heruntergeladene Variablen aufweisen, werden berschrieben. Alle Eigenschaften in mein_lv, die einen anderen Namen als die heruntergeladenen Variablen aufweisen, werden beibehalten. Diese Aktion ist asynchron. Die heruntergeladenen Daten mssen den MIME-Inhaltstyp application/x-www-form-urlencoded aufweisen. Dieses Format wird auch von loadVariables() verwendet. Bei SWF-Dateien, die in einer vor Flash Player 7 liegenden Player-Version laufen, muss sich die in derselben Superdomne befinden, wie die SWF-Datei, die diesen Aufruf ausgibt. Eine unter www.eineDomaene.com befindliche SWF-Datei kann beispielsweise Variablen von einer SWF-Datei laden, die unter store.eineDomaene.com zu finden ist, da sich beide Dateien in derselben Superdomne eineDomaene.com befinden.
url

Bei SWF-Dateien einer beliebigen Version, die in Flash Player 7 oder einer neueren Version laufen, muss sich die url in exakt derselben Domne befinden (siehe dazu Flash PlayerSicherheitsfunktionen auf Seite 211). So kann beispielsweise eine SWF-Datei unter www.eineDomaene.com nur Variablen von SWF-Dateien laden, die sich ebenfalls unter www.eineDomaene.com befinden. Wenn Sie beabsichtigen, Variablen von einer anderen Domne zu laden, knnen Sie auf den Server, der die SWF-Datei enthlt, auf die Zugriff genommen werden soll, eine Datei mit Anweisungen fr den Domnenbergriff laden. Weitere Informationen finden Sie unter Domnenbergreifendes Laden von Daten ermglichen auf Seite 213. Auerdem wird in fr Flash Player 7 verffentlichten Dateien die Gro-/Kleinschreibung (siehe Gro- und Kleinschreibung auf Seite 32) fr externe Variablen untersttzt, die mit LoadVars.load() geladen werden. Diese Methode ist vergleichbar mit XML.load().

LoadVars.loaded
Verfgbarkeit

Flash Player 6.
Verwendung mein_lv.loaded

LoadVars.loaded

451

Beschreibung

Eigenschaft; standardmig nicht definiert. Wenn eine LoadVars.load()- oder LoadVars.sendAndLoad()-Operation gestartet wurde, wird die Eigenschaft loaded auf false gesetzt. Wenn der Vorgang abgeschlossen ist, wird die Eigenschaft loaded auf true gesetzt. Wenn der Vorgang noch nicht abgeschlossen ist bzw. mit einem Fehler abgebrochen wurde, bleibt die Eigenschaft loaded auf false gesetzt. Diese Eigenschaft ist vergleichbar mit der Eigenschaft XML.loaded.

LoadVars.onData
Verfgbarkeit

Flash Player 6.
Verwendung mein_lv.onData = function(src) { // Anweisungen hier einfgen } Parameter src Die unformatierten (nicht geparsten) Daten LoadVars.sendAndLoad()-Methodenaufruf. Rckgaben

aus einem LoadVars.load()- oder

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn Daten vollstndig vom Server heruntergeladen wurden oder wenn beim Herunterladen von Daten von einem Server ein Fehler auftritt. Diese Prozedur wird vor dem Parsen der Daten aktiviert und kann zum Aufruf einer benutzerdefinierten Parsingroutine anstelle der Flash Player-Parsingroutine verwendet werden. Der Wert des srcParameters, der an die Funktion von LoadVars.onData weitergeleitet wird, kann entweder undefined sein oder ein String mit den URL-codierten, vom Server heruntergeladenen Namen-/ Wertpaaren. Wenn der Rckgabewert undefined lautet, ist beim Herunterladen der Daten vom Server ein Fehler aufgetreten. Die Standardimplementierung von LoadVars.onData ldt LoadVars.onLoad. Sie knnen die Standardimplementierung auer Kraft setzen, indem Sie LoadVars.onData eine benutzerdefinierte Funktion zuweisen, jedoch wird LoadVars.onLoad nicht mehr aufgerufen, wenn Sie es nicht in Ihrer Implementierung von LoadVars.onData aufrufen.

LoadVars.onLoad
Verfgbarkeit

Flash Player 6.
Verwendung mein_lv.onLoad = function(erfolgreich) { // Anweisungen hier einfgen }

452

Kapitel 12: ActionScript-Lexikon

Parameter erfolgreich

Der Parameter gibt an, ob der Ladevorgang erfolgreich war (true) oder nicht

(false).
Rckgaben

Ein Boolescher Wert.


Beschreibung

Ereignisprozedur; wird aufgerufen, wenn ein LoadVars.load()- oder LoadVars.sendAndLoad()-Vorgang zu Ende ist. Wenn der Vorgang erfolgreich war, werden die heruntergeladenen Variablen in mein_lv eingefgt und sind bei Aufruf dieser Prozedur verfgbar. Diese Prozedur ist standardmig undefiniert. Diese Methode ist vergleichbar mit XML.onLoad().

LoadVars.send()
Verfgbarkeit

Flash Player 6.
Verwendung mein_lv.send(url [,ziel, methode]) Parameter url ziel

Die URL, an die Variablen hochgeladen werden sollen. Das Framefenster im Browser, in dem die Antwort angezeigt werden soll. Die GET- oder POST-Methode des HTTP-Protokolls.

methode Rckgaben

Ein String.
Beschreibung

Methode; sendet die Variablen im Objekt mein_lv an die angegebene URL. Alle aufzhlbaren Variablen im Objekt mein_lv werden standardmig zu einem String im Format application/xwww-form-urlencoded verkettet, der dann mit der HTTP-Methode POST an die angegebene URL bertragen wird. Dieses Format wird auch von der Aktion loadVariables() verwendet. Der in den HTTP-Anforderungsheadern gesendete MIME-Inhaltstyp ist der Wert von mein_lv.contentType bzw. standardmig application/x-www-form-urlencoded. Die Methode POST wird verwendet, es sei denn, GET wird angegeben. Wenn der Parameter ziel angegeben ist, erscheint die Antwort des Servers im entsprechenden Browserframe. Wenn der Parameter ziel weggelassen wird, wird die Antwort des Servers ignoriert. Diese Methode ist vergleichbar mit XML.send().

LoadVars.send()

453

LoadVars.sendAndLoad()
Verfgbarkeit

Flash Player 6; Verhalten gendert in Flash Player 7.


Verwendung mein_lv.sendAndLoad(url, zielObjekt[, methode]) Parameter url

Die URL, an die Variablen hochgeladen werden sollen. Wenn die SWF-Datei, welche diesen Aufruf ausgibt, in einem Webbrowser luft, muss sich die url in derselben Domne befinden wie die SWF-Datei. Weitere Einzelheiten hierzu finden Sie im nachstehenden Abschnitt Beschreibung. Das LoadVars-Objekt, das die hochgeladenen Variablen empfngt. Die GET- oder POST-Methode des HTTP-Protokolls.

zielobjekt methode Rckgaben

Ein String.
Beschreibung

Methode; sendet die Variablen im Objekt mein_lv an die angegebene URL. Die Antwort des Servers wird heruntergeladen und als Variablendaten geparst, und die resultierenden Variablen werden in das Objekt zielobjekt gestellt. Variablen werden genauso gesendet wie bei LoadVars.send(). Variablen werden genauso in zielobjekt heruntergeladen wie bei LoadVars.load(). Bei SWF-Dateien, die in einer vor Flash Player 7 liegenden Player-Version laufen, muss sich die url in derselben Superdomne befinden, wie die SWF-Datei, die diesen Aufruf herausgibt. Eine unter www.eineDomaene.com befindliche SWF-Datei kann beispielsweise Variablen von einer SWF-Datei laden, die unter store.eineDomaene.com zu finden ist, da sich beide Dateien in derselben Superdomne eineDomaene.com befinden. Bei SWF-Dateien einer beliebigen Version, die in Flash Player 7 oder einer neueren Version laufen, muss sich die url in exakt derselben Domne befinden (siehe dazu Flash PlayerSicherheitsfunktionen auf Seite 211). So kann beispielsweise eine SWF-Datei unter www.eineDomaene.com nur Variablen von SWF-Dateien laden, die sich ebenfalls unter www.eineDomaene.com befinden. Wenn Sie beabsichtigen, Variablen von einer anderen Domne zu laden, knnen Sie auf den Server, der die SWF-Datei enthlt, auf die Zugriff genommen werden soll, eine Datei mit Anweisungen fr den Domnenbergriff laden. Weitere Informationen finden Sie unter Domnenbergreifendes Laden von Daten ermglichen auf Seite 213. Diese Methode ist vergleichbar mit XML.sendAndLoad().

LoadVars.toString
Verfgbarkeit

Flash Player 6.

454

Kapitel 12: ActionScript-Lexikon

Verwendung mein_lv.toString() Parameter

Keine.
Rckgaben

Ein String.
Beschreibung

Methode; gibt einen String mit allen aufzhlbaren Variablen in mein_lv zurck, und zwar im MIME-Inhaltscodierungsformat application/x-www-form -urlencoded.
Beispiel var meineVar = new LoadVars(); meineVar.name = "Georg"; meineVar.alter = 26; trace (meineVar.toString()); //Ausgabe: //name=Georg&alter=26

LocalConnection-Klasse
Verfgbarkeit

Flash Player 6.
Beschreibung

Mit der LocalConnection-Klasse knnen Sie SWF-Dateien entwickeln, die ohne fscommand() oder JavaScript untereinander Anweisungen senden knnen. LocalConnection-Objekte knnen nur zwischen SWF-Dateien ausgetauscht werden, die auf demselben Client-Rechner abgespielt werden. Sie knnen jedoch in zwei verschiedenen Anwendungen ausgefhrt werden. Beispielsweise kann eine SWF-Datei in einem Browser, eine andere in einem Projektor abgespielt werden. Sie knnen mit LocalConnection-Objekten Daten innerhalb einer SWF-Datei senden und empfangen, wobei es sich jedoch nicht um eine Standardimplementierung handelt. In den im Folgenden aufgefhrten Beispielen wird der Datenaustausch zwischen verschiedenen SWFDateien dargestellt.
LocalConnection.send()

Die wichtigsten Methoden zum Senden und Empfangen von Daten sind und LocalConnection.connect(). Ihr Code enthlt auf der untersten Ebene die folgenden Befehle. Beachten Sie, dass die Befehle LocalConnection.send() und LocalConnection.connect() denselben Verbindungsnamen, lc_name festlegen:

// Code im empfangenden Film receiving_lc = new LocalConnection(); receiving_lc.methodToExecute = function(param1, param2) { // Auszufhrender Code } receiving_lc.connect("lc_name"); // Code im sendenden Film sendende_lc = new LocalConnection(); sending_lc.send("lc_name", "methodToExecute", dataItem1, dataItem2)

LocalConnection-Klasse

455

Die einfachste Art, ein LocalConnection-Objekt zu verwenden, besteht darin, Datenaustausch nur zwischen LocalConnection-Objekten in derselben Domne zuzulassen, da Sie sich in diesem Fall nicht um Sicherheitsfragen zu kmmern brauchen. Wenn der Datenaustausch zwischen verschiedenen Domnen erforderlich ist, gibt es eine Reihe von Mglichkeiten, Sicherheitsmanahmen zu integrieren. Weitere Informationen finden Sie in den Erluterungen zum Parameter connectionName in LocalConnection.send() sowie unter den Eintrgen LocalConnection.allowDomain und LocalConnection.domain(). bersicht ber die Methoden fr die LocalConnection-Klasse
Methode
LocalConnection.close() LocalConnection.connect()

Beschreibung Schliet das LocalConnection-Objekt. Bereitet das LocalConnection-Objekt auf den Empfang von Befehlen eines LocalConnection.send()-Befehls vor. Gibt einen String zurck, der die Superdomne des Pfads der aktuellen SWF-Datei angibt. Ruft eine Methode fr ein bestimmtes LocalConnectionObjekt auf.

LocalConnection.domain()

LocalConnection.send()

bersicht ber die Ereignisprozedur fr die LocalConnection-Klasse


Ereignisprozedur
LocalConnection.allowDomain

Beschreibung Wird aufgerufen, wenn das aktuelle (empfangende) LocalConnection-Objekt von einem sendenden LocalConnection-Objekt eine Anforderung zum Aufrufen einer Methode erhlt. Wird aufgerufen, wenn das aktuelle (empfangende) LocalConnection-Objekt, das sich in einer SWF-Datei befindet, die in einer Domne mit sicherem Protokoll (HTTPS) steht, eine Anforderung zum Aufrufen einer Methode von einem sendenden LocalConnection-Objekt erhlt, das sich in einer SWF-Datei befindet, die wiederum in einem nicht sicheren Protokoll steht. Wird aufgerufen, wenn ein sendendes LocalConnectionObjekt versucht, einen Befehl an ein empfangendes LocalConnection-Objekt zu senden.

LocalConnection.allowInsecureDomain

LocalConnection.onStatus

Konstruktor fr die LocalConnection-Klasse


Verfgbarkeit

Flash Player 6.
Verwendung new LocalConnection() Parameter

Keine.

456

Kapitel 12: ActionScript-Lexikon

Rckgaben

Keine.
Beschreibung

Konstruktor; erstellt ein LocalConnection-Objekt.


Beispiel

Das folgende Beispiel zeigt, wie ein empfangende und sendende SWF-Dateien LocalConnnection-Objekte erstellen. Beachten Sie, dass die beiden SWF-Dateien denselben Namen oder verschiedene Namen fr die jeweiligen LocalConnection-Objekte verwenden knnen. In diesem Beispiel wird derselbe Name verwendet, mein_lc.
// Code in der empfangenden SWF-Datei mein_lc = new LocalConnection(); mein_lc.eineMethode = function() { // Anweisungen hier einfgen } mein_lc.connect("verbindungsName"); // Code in der sendenden SWF-Datei mein_lc = new LocalConnection(); mein_lc.send("verbindungsName", "eineMethode"); Siehe auch LocalConnection.connect(), LocalConnection.send()

LocalConnection.allowDomain
Verfgbarkeit

Flash Player 6; Verhalten gendert in Flash Player 7.


Verwendung empfangende_lc.allowDomain = function([sendendeDomne]) { // Ihre Anweisungen geben true oder false zurck } Parameter sendendeDomne Ein optionaler Parameter, der die Domne der SWF-Datei mit dem sendenden LocalConnection-Objekt angibt. Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn empfangende_lc eine Anforderung zum Aufrufen einer Methode von einem sendenden LocalConnection-Objekt erhlt. In Flash muss der in dieser Prozedur eingegebene Code den Booleschen Wert true oder false zurckgeben. Wenn die Prozedur nicht true zurckgibt, wird die Anforderung des sendenden Objekts ignoriert, und die Methode wird nicht aufgerufen.

LocalConnection.allowDomain

457

Mit diesem Befehl lassen Sie ausdrcklich zu, dass LocalConnection-Objekte von bestimmten oder allen Domnen Methoden des empfangenden LocalConnection-Objekts ausfhren. Wenn Sie keinen Wert fr den Parameter sendendeDomne angeben, akzeptieren Sie Befehle von allen Domnen, und der Code in der Prozedur wre return true. Wenn Sie einen Wert fr sendendeDomne angeben, wird der Wert fr sendendeDomne mit den Domnen verglichen, von denen Sie Befehle annehmen mchten. Die nachstehenden Beispiele illustrieren diese beiden Varianten. In Dateien, die in Flash Player 6 laufen, enthlt der Parameter sendendeDomne die Superdomne des Aufrufenden. In Dateien, die in Flash Player 6 laufen, enthlt der Parameter sendendeDomne die exakte Domne des Aufrufenden. Im letztgenannten fall mssen Sie ausdrcklich den Zugriff von beiden Domnen aus zulassen, um den Zugriff durch SWF-Dateien an den Domnen www.domain.com oder store.domain.com zuzulassen.
// Fr Flash Player 6 empfangende_lc.allowDomain = function([sendendeDomne]) { return(sendendeDomne=="www.domaene.com"); } // Entsprechende Befehle fr den Zugriff durch SWF-Dateien, // die in Flash Player 7 oder einer neueren Version laufen empfangende_lc.allowDomain = function([sendendeDomne]) { return(sendendeDomne=="www.domaene.com"); sendendeDomne=="store.domaene.com"); }

Bei Dateien, die in Flash Player 7 oder einer neueren Version laufen, knnen Sie diese Methode nicht verwenden, um SWF-Dateien, die mit einem sicheren Protokoll (HTTPS) gehostet werden, den Zugriff von SWF-Dateien zu erlauben, die in nicht sicheren Protokollen gehostet werden. Sie mssen stattdessen die LocalConnection.allowInsecureDomainEreignisprozedur verwenden.
Beispiel

Im folgenden Beispiel wird gezeigt, wie durch ein LocalConnection-Objekt in einer empfangenden SWF-Datei zugelassen wird, dass SWF-Dateien von beliebigen Domnen Methoden des Objekts aufrufen. Vergleichen Sie dieses Beispiel mit dem Beispiel in LocalConnection.connect(), in dem nur SWF-Dateien derselben Domne die TraceMethode in der empfangenden SWF-Datei aufrufen knnen. Erluterungen zur Verwendung des Unterstrichs (_) im Verbindungsnamen finden Sie unter LocalConnection.send().
var aLocalConnection = new LocalConnection(); aLocalConnection.Trace = function(aString) { aTextField = aTextField + aString + newline; } aLocalConnection.allowDomain = function() { // Fr dieses LocalConnection-Objekt kann jede Domne Methoden aufrufen return true; } aLocalConnection.connect("_trace");

Im folgenden Beispiel akzeptiert die empfangende SWF-Datei lediglich Befehle von SWFDateien in dieseDomaene.com oder jeneDomaene.com.
var aLocalConnection = new LocalConnection(); aLocalConnection.Trace = function(aString) {

458

Kapitel 12: ActionScript-Lexikon

aTextField = aTextField + aString + newline; } aLocalConnection.allowDomain = function(sendendeDomne) { return(sendendeDomne=="dieseDomaene.com" || sendendeDomne=="jeneDomaene.com"); } aLocalConnection.connect("_trace"); Siehe auch LocalConnection.connect(), LocalConnection.domain(), LocalConnection.send()

LocalConnection.allowInsecureDomain
Verfgbarkeit

Flash Player 7.
Verwendung empfangende_lc.allowDomain = function([sendendeDomaene]) { // Ihre Erklrungen geben hier true oder false zurck } Parameter sendendeDomne Ein optionaler Parameter, der die Domne der SWF-Datei mit dem sendenden LocalConnection-Objekt angibt. Rckgaben

Keine.
Beschreibung

Ereignisprozedur; wird aufgerufen, wenn das empfangende_lc, das sich in einer SWF-Datei befindet, die in einer Domne mit sicherem Protokoll (HTTPS) steht, eine Anforderung zum Aufrufen einer Methode von einem sendenden LocalConnection-Objekt erhlt, das sich in einer SWF-Datei befindet, die wiederum in einem nicht sicheren Protokoll steht. In Flash muss der in dieser Prozedur eingegebene Code den Booleschen Wert true oder false zurckgeben. Wenn die Prozedur nicht true zurckgibt, wird die Anforderung des sendenden Objekts ignoriert, und die Methode wird nicht aufgerufen. Standardmig knnen nur andere SWF-Dateien, die mit dem HTTPS-Protokoll gehostet werden, auf mit dem HTTPS-Protokoll gehostete SWF-Dateien zugreifen. Durch diese Implementierung bleibt die durch das HTTPS-Protokoll gewhrleistete Integritt gewahrt. Der Einsatz dieser Methode zur Umgehung des Standardverhaltens empfiehlt sich nicht, da damit die HTTPS-Sicherheit beeintrchtigt wird. Manchmal ist dies jedoch notwendig. So beispielsweise dann, wenn Sie von fr Flash Player 6 verffentlichten HTTP-Dateien den Zugriff auf HTTPS-Dateien zulassen mssen, die fr Flash Player 7 oder eine neuere Version verffentlicht wurden.

LocalConnection.allowInsecureDomain

459

Eine fr Flash Player 6 verffentlichte SWF-Datei kann mit Hilfe der Ereignisprozedur LocalConnection.allowDomain den Zugriff von HTTP auf HTTPS zulassen. Aufgrund der in Flash Player 7 unterschiedlichen Sicherheitsimplementierung mssen Sie jedoch die Methode LocalConnection.allowInsecureDomain() verwenden, um einen solchen Zugriff in fr Flash Player 7 oder eine neuere Version verffentlichten SWF-Dateien zu erlauben.
Siehe auch LocalConnection.allowDomain, LocalConnection.connect()

LocalConnection.close()
Verfgbarkeit

Flash Player 6.
Verwendung empfangende_lc.close Parameter

Keine.
Rckgaben

Keine.
Beschreibung

Methode; schliet ein LocalConnection-Objekt. Geben Sie diesen Befehl ein, wenn das Objekt keine Befehle mehr annehmen soll, beispielsweise, wenn Sie den Befehl LocalConnection.connect() mit demselben Parameter verbindungsName in einer anderen SWF-Datei verwenden mchten.
Siehe auch LocalConnection.connect()

LocalConnection.connect()
Verfgbarkeit

Flash Player 6.
Verwendung empfangende_lc.connect(verbindungsName) Parameter verbindungsName Ein String, der mit dem Verbindungsnamen bereinstimmt, der im LocalConnection.send()-Befehl fr die Kommunikation mit empfangende_lc angegeben

wurde.
Rckgaben

Der Boolesche Wert true, wenn kein anderer auf demselben Client-Rechner ausgefhrter Vorgang bereits diesen Befehl mit demselben Wert fr den Parameter verbindungsName ausgegeben hat, ansonsten false.

460

Kapitel 12: ActionScript-Lexikon

Beschreibung

Methode; bereitet ein LocalConnection-Objekt auf den Empfang von Befehlen eines LocalConnection.send()-Befehls vor (das so genannte sendende LocalConnection-Objekt). Das mit diesem Befehl verwendete Objekt ist das empfangende LocalConnection-Objekt. Das empfangende und das sendende Objekt mssen auf demselben Client-Rechner ausgefhrt werden. Achten Sie darauf, dass Sie die mit empfangende_lc verbundenen Methoden definieren, bevor Sie diese Methode aufrufen, wie in allen Beispielen in diesem Abschnitt gezeigt. Standardmig lst Flash Player verbindungsName in den Wert "superdomne:verbindungsName" auf, wobei superdomne die Superdomne der SWF-Datei mit dem LocalConnection.connect()-Befehl ist. Wenn sich beispielsweise die SWF-Datei mit
verbindungsName

dem empfangenden LocalConnection-Objekt auf www.eineDomaene.com befindet, wird in "eineDomaene.com:verbindungsName" aufgelst. (Wenn sich eine SWFDatei auf dem Client-Rechner befindet, wird superdomne der Wert "localhost" zugewiesen.)

Ebenso lsst Flash Player das empfangende LocalConnection-Objekt nur Befehle von sendenden LocalConnection-Objekten empfangen, deren Verbindungsnamen ebenfalls in den Wert "superdomne:verbindungsName" aufgelst werden. Auf diese Weise knnen in Flash SWFDateien auf derselben Domne sehr einfach Daten austauschen. Wenn Sie den Datenaustausch nur zwischen SWF-Dateien in derselben Domne implementieren, geben Sie einen String fr verbindungsName an, der nicht mit einem Unterstrich (_) beginnt und der keinen Domnennamen angibt (beispielsweise "meineDomaene:verbindungsName"). Verwenden Sie denselben String im Befehl LocalConnection.connect(verbindungsName). Informationen zur Implementierung des Datenaustauschs zwischen SWF-Dateien aus verschiedenen Domnen finden Sie in den Erluterungen zu verbindungsName unter LocalConnection.send() sowie unter den Eintrgen LocalConnection.allowDomain und LocalConnection.domain().
Beispiel

Das folgende Beispiel zeigt, wie eine SWF-Datei in einer bestimmten Domne die Methode Trace in einer empfangenden SWF-Datei in derselben Domne aufruft. Die empfangende SWFDatei fungiert als Trace-Fenster fr die sendende SWF-Datei. Sie enthlt zwei Methoden, die andere SWF-Dateien aufrufen knnen, Trace und Clear. In den sendenden SWF-Dateien aktivierte Schaltflchen rufen diese Methoden mit angegebenen Parametern auf.
// Empfangende SWF-Dateien var aLocalConnection = new LocalConnection(); aLocalConnection.Trace = function(aString) { aTextField = aTextField + aString + newline; } aLocalConnection.Clear = function() { aTextField = ""; } aLocalConnection.connect("trace"); stop();

LocalConnection.connect()

461

SWF 1 enthlt den folgenden Code, der mit der Schaltflche PushMe verbunden ist. Wenn Sie auf die Schaltflche klicken, wird in der empfangenden SWF-Datei der Satz Die Schaltflche wurde aktiviert. eingeblendet.
on (press) { var lc = new LocalConnection(); lc.send("trace", "Trace", "Die Schaltflche wurde aktiviert."); delete lc; }

SWF 2 enthlt ein Eingabetextfeld mit dem Variablennamen meinText und den folgenden Code, der mit der Schaltflche Copy verbunden ist. Wenn Sie Text eingeben und anschlieend auf die Schaltflche klicken, wird der eingegebene Text in der empfangenden SWF-Datei angezeigt.
on (press) { _parent.lc.send("trace", "Trace", _parent.meinText); _parent.meinText = ""; }

SWF 3 enthlt den folgenden Code, der mit der Schaltflche Clear verbunden ist. Wenn Sie auf die Schaltflche klicken, wird der Inhalt des Trace-Fensters in der empfangenden SWF-Datei gelscht.
on (press) { var lc = new LocalConnection(); lc.send("trace", "Clear"); delete lc; } Siehe auch LocalConnection.send()

LocalConnection.domain()
Verfgbarkeit

Flash Player 6; Verhalten gendert in Flash Player 7.


Verwendung meine_lc.domain() Parameter

Keine.
Rckgaben

Ein String, der fr die Domne des Ortes der aktuellen SWF-Datei steht. Nheres hierzu finden Sie im Folgenden unter der berschrift Beschreibung.
Beschreibung

Methode; gibt einen String zurck, der die Superdomne des Ortes der aktuellen SWF-Datei angibt.

462

Kapitel 12: ActionScript-Lexikon

In fr Flash Player 6 verffentlichten SWF-Dateien entspricht der zurckgegebene String der Superdomne fr die aktuelle SWF-Datei. Wenn die aktuelle SWF-Datei beispielsweise unter www.macromedia.com gespeichert ist, gibt dieser Befehl "macromedia.com" zurck. In fr Flash Player 7 oder neuere Versionen verffentlichten SWF-Dateien entspricht der zurckgegebene String der exakten Domne der aktuellen SWF-Datei. Wenn die SWF-Datei beispielsweise unter www.macromedia.com gespeichert ist, gibt dieser Befehl "macromedia.com" zurck. Wenn die aktuelle SWF-Datei eine lokale Datei auf dem Client-Rechner ist, gibt dieser Befehl "localhost" zurck. Gewhnlich wird bei diesem Befehl der Domnenname des sendenden LocalConnection-Objekts als Parameter der Methode einbezogen, die Sie im empfangenden LocalConnection-Objekt aufrufen mchten. In Verbindung mit LocalConnection.allowDomain knnen auch Befehle von einer angegebenen Domne akzeptiert werden. Wenn Sie den Datenaustausch nur zwischen LocalConnection-Objekten derselben Domne aktivieren, ist dieser Befehl nicht erforderlich.
Beispiel

Im folgenden Beispiel akzeptiert eine empfangende SWF-Datei nur Befehle von SWF-Dateien in derselben Domne oder unter macromedia.com.
mein_lc = new LocalConnection(); meine_lc.allowDomain = function(sendendeDomne) { return (sendendeDomne==this.domain() || sendendeDomne=="macromedia.com"); }

Im folgenden Beispiel ruft eine sendende SWF-Datei in ihreDomaene.com eine Methode in einer SWF-Datei in meineDomaene.com auf. Die sendende SWF-Datei schliet ihren Domnennamen als Parameter in die aufgerufene Methode ein, sodass die empfangende SWFDatei einen Antwortwert an ein LocalConnection-Objekt in der richtigen Domne zurckgeben kann. In der sendenden SWF-Datei wird auerdem angegeben, dass sie nur Befehle von SWFDateien in meineDomaene.com akzeptiert. Zeilennummerierungen werden zu Referenzzwecken eingeschlossen. Die Abfolge der Ereignisse lautet wie folgt:

Die empfangende SWF-Datei wird auf den Empfang von Befehlen ber die Verbindung "sum"
vorbereitet (Zeile11). Flash Player lst den Namen dieser Verbindung in "meineDomaene.com:sum" auf (siehe LocalConnection.connect()). Die sendende SWF-Datei wird auf den Empfang einer Antwort ber das LocalConnectionObjekt "result" vorbereitet (Zeile 58). Es wird auerdem angegeben, dass sie Befehle nur von SWF-Dateien in meineDomaene.com annimmt (Zeilen 51 bis 53). Die sendende SWF-Datei ruft die aSum-Methode der Verbindung "meineDomaene.com:sum" auf (Zeile 59) und bergibt die folgenden Parameter: ihre Domne (lc.domain()), den Namen der Verbindung zum Empfangen der Antwort ("result") und die von aSum zu verwendenden Werte (123 und 456). Die Methode aSum (Zeile 6) wird mit den folgenden Werten aufgerufen: sender = "meineDomaene.com:result", replyMethod = "aResult", n1 = 123 und n2 = 456. Daher wird folgende Codezeile ausgefhrt:
this.send("meineDomaene.com:result", "aResult", (123 + 456));

Die Methode aResult (Zeile 54) zeigt den von aSum zurckgegebenen Wert an (579).
LocalConnection.domain() 463

// Die empfangende SWF-Datei unter http://www.meinedomaene.com/folder/ movie.swf // enthlt den folgenden Code 1 2 3 4 5 6 7 8 9 10 11 var aLocalConnection = new LocalConnection(); aLocalConnection.allowDomain = function() { // Verbindungen von allen Domnen zulassen return true; } aLocalConnection.aSum = function(sender, replyMethod, n1, n2) { this.send(sender, replyMethod, (n1 + n2)); } aLocalConnection.connect("sum");

// Die sendende SWF-Datei unter http://www.ihreDomaene.com/folder/movie.swf // enthlt den folgenden Code 50 51 52 53 54 55 56 57 58 59 var lc = new LocalConnection(); lc.allowDomain = function(eineDomne) { // Verbindungen nur von meineDomaene.com zulassen return (eineDomne == "meineDomaene.com"); } lc.aResult = function(aParam) { trace("Die Summe ist " + aParam); } lc.connect("result"); lc.send("meineDomaene.com:sum", "aSum", lc.domain() + ':' + "result", "aResult", 123, 456);

Siehe auch LocalConnection.allowDomain

LocalConnection.onStatus
Verfgbarkeit

Flash Player 6.
Verwendung sendende_lc.onStatus = function(infoObjekt) { // Anweisungen hier einfgen } Parameter infoObjekt

Ein Parameter, der anhand der Statusmeldung definiert wird. Einzelheiten zu diesem Parameter finden Sie in der folgenden Beschreibung.

Rckgaben

Keine.

464

Kapitel 12: ActionScript-Lexikon

Beschreibung

Ereignisprozedur; wird aufgerufen, wenn ein sendendes LocalConnection-Objekt versucht, einen Befehl an ein empfangendes LocalConnection-Objekt zu senden. Wenn Sie auf diese Ereignisprozedur antworten mchten, mssen Sie eine Funktion fr die Verarbeitung des Informationsobjekts erstellen, das vom LocalConnection-Objekt gesendet wurde. Wenn das von dieser Ereignisprozedur zurckgegebene Information