Sascha Wolter ActionScript 1 und 2 Objektorientierung und Codedesign mit Flash MX 2004 Auf einen Blick Teil I: Grundlagen ...................................14 Teil IV: Fortgeschritten ..................... 394 1 Erste Schritte ........................................ 16 16 ActionScript 2.0...................................396 2 Versionen ..............................................44 17 3 Einführung in die Programmierung ...................................70 18 Codedesign und Konzeption ............... 454 4 Die Entwicklungsumgebung ................82 Teil V: Praxis ........................................ 476 5 Regeln ................................................. 104 Komponenten ..................................... 426 19 Flashdetection ....................................478 Teil II: Programmierung ...................... 122 20 Außergewöhnliche Benutzerführung ................................. 492 6 Anweisungen und Aktionen .................124 21 7 Werte und Datentypen ....................... 162 22 Macromedia Central ........................... 520 8 Ausdrücke und Operatoren ................ 196 23 HTML .................................................. 528 9 Funktionen.......................................... 242 24 JavaScript, ActiveX und Java ............... 552 3D mit Flash ........................................504 10 Kontrollstrukturen .............................. 258 Teil VI: Anhang ....................................586 Teil III: Objektorientierung ................274 25 Flash undokumentiert ........................ 588 11 Dokumenten-Objektmodell und Gültigkeitsbereich (Scope) .................. 276 26 Vergangenheit, Gegenwart und Zukunft ....................................... 598 12 Ereignisse ............................................ 282 27 Kurzreferenz ........................................ 612 13 Objekterstellung .................................336 28 Buchtipps ............................................ 642 14 Vererbung ...........................................350 29 Links .................................................. 648 15 Movieclips .......................................... 362 30 Die CD-ROM zum Buch ......................654 Index .................................................. 656 Inhalt Vorwort Teil II: Programmierung 122 10 Teil I: Grundlagen 14 1 Erste Schritte 16 1.1 1.2 1.3 Was ist ActionScript? 16 Pro und Kontra 24 Ihre ersten programmierten Anwendungen 30 Versionen 44 2.1 2.2 2.3 Ursprung 44 Alternativen und Ausblick Umstieg 61 3 Einführung in die Programmierung 70 3.1 3.2 3.3 3.4 Vom Problem zum Programm 70 Imperative Programmierung 74 Ereignisorientierte Programmierung 76 Objektorientierte Programmierung 76 4 Die Entwicklungsumgebung 4.1 4.2 4.5 Der ActionScript-Editor 83 ActionScript-Datei erstellen unter Flash MX Professional 2004 97 Referenz 98 Flash-Entwicklungsumgebung anpassen 99 ActionScript mit alternativen Editoren 5 Regeln 104 5.1 5.2 Syntax überprüfen 105 Programm, Skript und Ereignisprozeduren 105 Bezeichner 110 Anweisungen 116 5.3 5.4 6 Inhalt Anweisungen und Aktionen 124 6.1 Aktionen für die Zeitleisten- und Movieclip-Steuerung 127 Aktionen zum Drucken 136 Aktionen für die Sound-Steuerung 144 Aktionen für die Kommunikation 146 6.2 6.3 6.4 2 4.3 4.4 6 55 7 Werte und Datentypen 162 7.1 7.2 7.3 7.4 Variablen 162 Datentypen 172 Typumwandlung 182 Typisierung 192 8 Ausdrücke und Operatoren 196 8.1 8.2 8.3 8.4 8.5 8.6 8.7 Ausdrücke 196 Zuweisungsoperatoren 200 Arithmetische Operatoren 209 Vergleichsoperatoren 212 Logische Operatoren 224 Bitweise Operatoren 228 Sonstige Operatoren 234 82 102 9 Funktionen 242 9.1 9.2 Vordefinierte Funktionen 242 Selbst definierte Funktionen 246 10 Kontrollstrukturen 258 10.1 10.2 10.3 Bedingte Anweisungen 259 Schleifen 264 Ausnahmebehandlung 269 Teil III: Objektorientierung 11 274 Dokumenten-Objektmodell und Gültigkeitsbereich (Scope) 276 Teil IV: Fortgeschritten 394 16 ActionScript 2.0 396 Klassen 397 Packages 403 Typisierung 406 Vererbung 407 Schnittstellen 409 Öffentlich oder privat 412 Statisch 413 Getter und Setter 419 Dynamisch 421 Intrinsic 424 11.1 11.2 Steuern von Movieclips Ziele 279 12 Ereignisse 12.1 12.2 12.3 12.4 12.5 Vor- und Nachteile 282 Reihenfolge der Ereignisse 288 Ereignisprozeduren 294 Ereignismethoden 301 Listener 325 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 16.10 13 Objekterstellung 17 Komponenten 17.1 17.2 17.3 17.4 Vorgefertigte Komponenten 426 Anwendung von Komponenten 433 Komponenten erstellen 440 Verhalten 446 18 Codedesign und Konzeption 454 18.1 18.2 18.3 18.4 Analyse und Konzeption 454 Entwicklungsumgebung 457 ActionScript 465 Optimierung 472 13.1 13.2 13.3 13.4 13.5 13.6 276 282 336 Artenvielfalt 336 Philosophie 338 Blackbox 339 Klassen 340 Objekte 341 Selbst definierte Objekte 345 14 Vererbung 350 14.1 14.2 14.3 14.4 14.5 14.6 Klassen 350 Evolution und Spezialisierung 351 Erben von Fähigkeiten 353 Erben von Eigenschaften 355 prototype, __proto__ und super 356 Alternative 359 15 Movieclips 362 15.1 15.2 15.3 Eigenschaften 363 Fähigkeiten 368 Selbst definierte Eigenschaften und Fähigkeiten 382 Nützliche Erweiterungen 387 Neue Movieclip-Klassen 390 15.4 15.5 426 Inhalt 7 Teil V: Praxis 476 Teil VI: Anhang 586 19 Flashdetection 478 25 Flash undokumentiert 588 19.1 19.2 Erkennung mit Skript 479 Erkennung ohne Skript 481 25.1 25.2 25.3 Werkzeuge 588 ActionScript 589 Ostereier 593 20 Außergewöhnliche Benutzerführung 492 26 20.1 20.2 20.3 20.4 Tastatur 492 Maus 496 Ton 500 Bewegung 502 Vergangenheit, Gegenwart und Zukunft 598 26.1 26.2 Flash MX anstelle von Flash MX 2004 Flash MX 2004, Version 7.2 604 27 Kurzreferenz 612 21 3D mit Flash 504 21.1 21.2 21.3 21.4 21.5 21.6 Drei Dimensionen 504 Perspektiven in Flash 505 Zusatzprodukte 506 2 ½ Dimensionen 509 Richtiges 3D 512 Isometrie 517 22 Macromedia Central 520 22.1 22.2 22.3 Bausteine 520 Erste Schritte 522 Entwicklung 522 23 HTML 528 23.1 23.2 23.3 HTML-Tags 528 HTML-Vorlagen 540 Praxis HTML 543 27.1 27.2 27.3 27.4 27.5 27.6 27.7 27.8 27.9 27.10 27.11 27.12 27.13 27.14 27.15 27.16 27.17 27.18 27.19 27.20 27.21 27.22 27.23 27.24 toplevel (globales Objekt) Accessibility 614 Array 614 AsBroadcaster 615 Boolean 615 Button 615 Camera 616 Color 617 ContextMenu 618 ContextMenuItem 618 CustomActions 619 Date 619 Enumeration 620 Error 620 File 620 FontName 621 Function 621 FunctionArguments 621 Key 621 LoadVars 622 LocalConnection 623 Math 623 Microphone 624 Mouse 625 24 JavaScript, ActiveX und Java 552 24.1 24.2 24.3 JavaScript 552 ActiveX 562 Java 578 8 Inhalt 612 598 27.25 27.26 27.27 27.28 27.29 27.30 27.31 27.32 27.33 27.34 27.35 27.36 27.37 27.38 27.39 27.40 27.41 27.42 27.43 27.44 27.45 27.46 27.47 27.48 27.49 27.50 MovieClip 625 MovieClipLoader 628 NetConnection 628 NetStream 629 Number 629 Object 630 ObjectID 630 PrintJob 631 Selection 631 SharedObject 631 Sound 632 Stage 633 String 633 System 634 System.capabilities 634 System.security 635 TextField 635 TextField.StyleSheet 637 TextFormat 637 TextSnapshot 638 URI 639 Video 639 XML 639 XMLNode 640 XMLSocket 641 XMLUI 641 28 Buchtipps 642 28.1 28.2 28.3 28.4 28.5 28.6 28.7 28.8 28.9 28.10 28.11 MX Magazin 642 Flash-Grundlagen 642 Animation 643 Usability 643 ActionScript 644 ActionScript 2.0 644 Entwurfsmuster 645 Code verbessern 645 Flash auf PDAs 646 Rich Internet Applications Tipps und Tricks 647 29 Links 648 646 30 Die CD-ROM zum Buch 654 29.1 29.2 29.3 Beispiele 654 Dokumente 654 Software 655 Index 656 Inhalt 9 Vorwort Kreatives Programmieren Entgegen landläufiger Meinungen handelt es sich bei der Programmierung in Flash um einen kreativen Prozess mit einer vollwertigen Programmiersprache, die sowohl von Designern erlernbar ist, als auch die Bedürfnisse von Programmierern befriedigt. Die Programmiersprache ActionScript hat nicht nur zu einem Anwachsen der Möglichkeiten im Flash Player-Format (SWF) geführt, sondern auch neue Zielgruppen auf der Seite der Entwicklung erschlossen. Ursprünglich von Programmierern als Spielerei abgetan, hat sich das Flash Player-Format und die damit verbundene Entwicklungsumgebung Flash zu einer ernst zu nehmenden Technologie für die Anwendungsentwicklung entwickelt. Programmierern fällt der Einstieg in die Flash-Welt jedoch häufig schwer, da ihnen die verwendeten Metaphern fremd sind. Diese sind für die meisten Designer keine allzu große Herausforderung, dafür kämpfen sie eher mit den Konzepten der Programmierung im Allgemeinen und der Objektorientierung im Speziellen. Die Programmierung ist ein kreativer Prozess, der eine strukturierte Vorgehensweise und die Beachtung einiger Regeln erfordert – aus der Sicht mancher Designer sicher eine große Herausforderung. Dieses Buch schlägt eine Brücke zwischen den Programmierern und den Designern und macht aus beiden gleichwertige Entwickler. ActionScript wird dafür in der kompletten Breite mit der notwendigen Tiefe behandelt – und das aus allen Blickwinkeln. Dieses Buch erläutert sowohl Konzepte der Programmierung in der Sprache der Designer als auch die Elemente der Flash-Technologie und von ActionScript in der Sprache der Programmierer. Mit Hilfe dieser Kenntnisse stellt der virtuose Umgang mit ActionScript kein Problem mehr dar. Danksagung Für die gute Zusammenarbeit bei der Erstellung dieses Buches bedanke ich mich bei allen Beteiligten, insbesondere bei all denen, die mehr dazu beigetragen haben, als es ihre beruflichen Verpflichtungen erfordern. Hervorheben möchte ich hier die zahlreichen aktiven Mitglieder des Flashforums (http:// www.flashforum.de). Ein ganz besonderer Dank gilt den »Reviewern« (Korrekturlesern) dieses Buches, die viele Anregungen gegeben haben, um das Buch 10 Vorwort besser zu machen. Hervorheben möchte ich dabei Peter Schreiber, Marc Thiele und Saban Ünlü, die dieses Buches gegengelesen und auf fachliche Fehler untersucht haben. Für meine kostenintensive Ausbildung, die mir überhaupt erst das Schreiben eines Buches ermöglicht, danke ich allen Steuerzahlern und meinen Eltern, die den Rest bezahlen mussten. Meinen Eltern danke ich auch für ihre Geduld bei meiner Erziehung, die ohne ihre elterliche Liebe und eine große Portion Leidensfähigkeit kaum möglich gewesen wäre. Das größte Leid während der Entstehung dieses Buches musste aber meine Frau Sandra erfahren. Ohne ihre Fürsorge hätte ich wahrscheinlich nicht einmal mehr die Zeit zum Essen und Schlafen gefunden. Sascha Wolter, im Oktober 2004 Über Sascha Wolter Sascha Wolter (http://www.saschawolter.de) berät seit 1995 zahlreiche Unternehmen, Zeitschriften und Fernsehsender in Fragen zur Anwendungsentwicklung für On- und Offline-Medien. International ist er freiberuflich als Autor, Softwarearchitekt, Entwickler, Projektleiter, Referent und Trainer tätig. Seine Bücher und Artikel zählen zu den meistgelesenen Publikationen. Als Gründer der Macromedia User Group und des bestbesuchten deutschen Forums unter http://www.flashforum.de engagiert sich Sascha auch für die Belange der Anwender. Websites und weitere Informationen Ursprünglich als Hobby von mir gestartet, hat sich das Flashforum (http://www. flashforum.de) zum größten deutschsprachigen Forum rund um Flash entwickelt und bietet somit eine optimale Ergänzung zu diesem Buch. Über 40 000 Entwickler tauschen unter dieser Adresse ihr Wissen und helfen sich gegenseitig. Mittlerweile hat das immerhin zu über 600 000 Beiträgen geführt, die durchschnittlich 3 000 000 Mal im Monat abgerufen werden. Sollten Sie direkt mit mir in Kontakt treten wollen oder einfach nur weitere Informationen zu mir, meinen Projekten und meinen Seminaren benötigen, dann zögern Sie nicht, mich unter http://www.saschawolter.de zu besuchen. Dort finden Sie übrigens nicht nur Seminarangebote zu Flash und ActionScript, sondern weitere interessante Neuigkeiten rund um diese Technologien und zu diesem Buch. Websites und weitere Informationen 11 Über dieses Buch In diesem Buch lernen Sie alles, was Sie brauchen, um mit der zu Flash gehörenden Programmiersprache ActionScript zu arbeiten. Sein Ziel ist, Ihnen nicht nur zu erklären, wie sich ActionScript verhält, sondern auch zu vermitteln, warum die Dinge in Flash so sind, wie sie sind. Falls Sie ein Programmierer sind, profitieren Sie nicht nur von den Praxisbeispielen, sondern in erster Linie von den hier erläuterten Konzepten. Diese Buch zeigt Ihnen die Unterschiede zu anderen Programmierwelten: Denn die einzige Schwierigkeit für Programmierer besteht in der Regel darin, sich mit den Metaphern (z. B. Zeitleiste) und dem Dokumenten-Objektmodell (u. a. Movieclips) eines »Autorensystems« wie Flash zu arrangieren und die vorhandenen Kenntnisse auf ActionScript zu übertragen! Falls Sie noch keine Programmiererfahrung haben, stellt Sie das Erlernen von ActionScript ebenfalls vor keine unüberwindlichen Hindernisse: Sie benötigen nur ein wenig Disziplin. Diese ist erforderlich, weil der Computer überhaupt keine eigene Intelligenz besitzt, die ihm hilft, Zusammenhänge aus dem Kontext zu erschließen. Aus diesem Grunde muss jede Anweisung wie in einem Kochrezept ganz genau und vollständig angegeben werden. Und auch bei Kochrezepten ist es verheerend, wenn Dinge als bekannt vorausgesetzt werden oder aus dem Zusammenhang erschlossen werden müssen: Bei der Anleitung zu den ersten Fertigpizzas wurde z. B. vergessen, dass vor dem Backen die Folie entfernt werden muss … Egal ob Sie Programmierer, Designer oder eher Konzeptioner sind: Sie werden anhand der Beispiele anspruchsvolle Erfahrungen mit ActionScript sammeln und schnell eigene Skripte schreiben. An vielen Stellen versucht dieses Buch außerdem einen Blick über den Tellerrand hinaus zu erlauben und wertvolle Tipps aus der Praxis für anspruchsvolle Projekte zu vermitteln! Dieses Buch möchte mehr sein als ein einmaliges Lesevergnügen und Sie ständig bei Ihrer Arbeit mit Flash und ActionScript tatkräftig unterstützen. Darum ist es sowohl gleichzeitig als Lern-, Lehr- wie auch als Nachschlagewerk zu nutzen! Aber es darf auch nicht verschwiegen werden, was dieses Buch nicht leistet: Zum einen hat es nicht den Anspruch auf Vollständigkeit und zum anderen kann nicht zu jedem erdenklichen Anwendungsfall oder Thema eine Lösung geboten werden. Für die Vollständigkeit lege ich Ihnen die im Lieferumfang von Flash enthaltene Referenz ans Herz, die deutlich besser als ihr Ruf ist und fast alle Befehle ausreichend erklärt (was darüber hinaus geht, finden Sie in diesem Buch). Und für die Vielzahl anwendungsbezogener Probleme schauen Sie doch einmal auf der Website http://www.flashforum.de, vorbei, auf der bereits Tausende von Lösungen verfügbar sind und täglich neue hinzukommen. 12 Vorwort 5 Regeln Syntax und Semantik Die Syntax legt die grammatikalischen Regeln fest, die für die einzelnen »Zeilen« in einem Programm gelten. Die Semantik beschreibt, was das dann letztendlich bedeutet. Wie jede Sprache besitzt auch eine Programmiersprache einige Regeln und Konzepte, an die es sich zu halten gilt. Die Semantik (Bedeutung) der einzelnen Bestandteile einer Programmiersprache wird erst durch Syntax (Grammatik) zu einem großem zusammenhängenden Ganzen – zu einem lauffähigen Programm. Im Gegensatz zu realen Sprachen bieten Programmiersprachen weniger Freiraum in den Formulierungen: Sie müssen sich nur an die syntaktischen Regeln halten! Da die Regeln aber deutlich überschaubarer als im realen Leben sind, ist das normalerweise kein allzu großes Problem. Und selbst der Teil der Semantik ist im Gegensatz zu echten Sprachen eher primitiv. Mit einem guten Dutzend der vielleicht 400 Befehle in dem »Flash-Vokabelheft« lösen Sie bereits eine Vielzahl der üblichen Aufgaben. Verglichen mit dem Wortschatz gesprochener Sprachen eine lächerliche Menge. Und solange Sie sich immer nur bewusst machen, dass der Computer nicht weiß, was Sie erreichen möchten, und deshalb alles ganz genau erklärt bekommen will, ist Programmieren (eigentlich) kein Problem. Im Wesentlichen beschreibt ActionScript nämlich nur, welche Objekte es in Flash gibt, und bietet Ihnen die Möglichkeit, diese Objekte und deren Zustände abhängig von Ereignissen durch Anweisungen zu verändern. In der realen Welt gibt es z. B. ein Auto, das sich nicht selten vor einer roten Ampel in einem stehenden Zustand befindet. Sobald nun das Ereignis eintritt, dass die Ampel auf Grün umschaltet, wird Gas gegeben und durch diese Aktion der Zustand des Fahrzeugs von stehend in fahrend geändert: wenn (ampelWirdGrün) { gibGas(); } Neben der Kenntnis über die Bedeutung (Semantik) der von Flash verarbeiteten Objekte, Zustände, Aktionen und Ereignisse benötigen Sie noch Wissen über die Art und Weise, in der diese Elemente angegeben werden dürfen. Mit dieser Syntax, die den Aufbau eines Skripts beschreibt, beschäftigt sich dieses Kapitel. 104 Regeln 5.1 Syntax überprüfen Es schadet nicht, wenn Sie Ihr Skript schon während der Arbeit auf Fehler überprüfen und die Option Syntax prüfen im ActionScript-Editor wählen. Bei Änderungen an Ihrem Skript ist es leichter, die Fehler zu beseitigen, wenn Flash diese unmittelbar meldet und Sie nicht bis zum nächsten Testlauf warten. Haben Sie erst einmal eine große Menge an Änderungen durchgeführt oder umfangreichen neuen Programmcode erstellt, dann ist die Isolation eines Fehlers deutlich schwieriger. Normalmodus in Flash MX Im Normalmodus von Flash MX ist die Option Syntax prüfen nur selten notwendig, da Flash in der Regel automatisch eine Syntaxprüfung durchführt. Zum Leidwesen fortgeschrittener Entwickler schränkt der Normalmodus jedoch gleichzeitig die Erstellung des Programmcodes stark ein. Und seit Flash MX 2004 steht dieser Modus ohnehin nicht mehr zur Verfügung. 5.2 Programm, Skript und Ereignisprozeduren Abbildung 5.1 Der Aufbau eines Programms lässt sich auch mit einem Buch vergleichen. Ein Buch besteht aus vielen Kapiteln, die aus vielen Absätzen bestehen. Und jeder Absatz besteht aus Sätzen, die eine Aneinanderreihung von Wörtern darstellen. Ein Programm verhält sich sehr ähnlich dazu. Ereignisse Jedes in ActionScript erstellte Programm besteht aus mindestens einem Skript. Ein Skript ist der Programmcode, der auf einem Schlüsselbild oder einer Instanz (bzw. auf einem Objekt) platziert wird. Somit können jedes Schlüsselbild und jede Instanz genau ein Skript besitzen. Jedes Skript besteht wiederum aus zahlreichen Anweisungen, die wiederum in Ereignisprozeduren zusammengefasst sind. Diese Ereignisprozeduren oder Handler (engl. Bearbeiter) kümmern sich um mögliche Ereignisse. Denn in Flash ist die Abarbeitung der Anweisungen Programm, Skript und Ereignisprozeduren Siehe Kapitel 12, »Ereignisse« 105 immer von Ereignissen abhängig. Dabei stehen Ihnen zwei Orte zur Platzierung dieser Skripte zur Verfügung: Schlüsselbilder und Objekte wie Movieclips, Schaltflächen und Komponenten. Schlüsselbilder Abbildung 5.2 Schlüsselbild mit Aktionen Wenn Sie Ihre Arbeit mit Flash beginnen, dann stoßen Sie als Erstes auf die Zeitleiste, die aus Bildern und Schlüsselbildern besteht! Die Zeitleiste lässt sich über den ActionScript-Editor einfach mit Anweisungen versehen, indem an der gewünschten Stelle ein Schlüsselbild eingefügt und markiert wird. Flash hebt mit Programmierung versehene Schlüsselbilder durch ein kleines »a« in der Zeitleiste hervor! Da Skripte in Schlüsselbildern mit dem Anzeigen eines Bildes nur ein Ereignis kennen, sind Bildskripte nicht in Ereignisprozeduren unterteilt. Es fehlt also eine on- oder onClipEvent-Anweisung, die bei den im nächsten Abschnitt erwähnten Instanzaktionen zwingend notwendig ist! Die einzelnen Aktionen in einem Schlüsselbild verhalten sich wie die Regieanweisungen in einem Drehbuch. Unmittelbar bevor ein Bild angezeigt werden soll (Ereignis), führt Flash die in einem Bild enthaltenen Anweisungen aus. Wenn z. B. das Ende Ihres Films erreicht wird, dann soll gestoppt werden. Dafür 106 Regeln benötigen Sie einfach nur die Aktion stop(); in einem Schlüsselbild am Ende Ihres Films. // Sobald der Abspielkopf in dieses Bild wechselt (Ereignis), stoppe das Abspielen (Aktion) stop(); Bildaktionen laufen nicht? Bildaktionen werden in der Entwicklungsumgebung nur dann ausgeführt, wenn Sie im Menü Steuerung • Bildaktionen aktivieren einschalten. Und selbst dann führt Flash nur einen Teil der Aktionen aus. Besser ist es, die Flash-Anwendung gleich zu testen (Steuerung • Film testen), denn dann funktionieren die Aktionen. Reihenfolge von Bildaktionen Bildaktionen werden immer dann ausgeführt, wenn der Abspielkopf das entsprechende Schlüsselbild erreicht. Um hier ganz genau zu sein: Die Aktionen in einem Bild werden ausgeführt, bevor Flash das Bild darstellt! Dabei beginnt Flash mit der Abarbeitung der Aktionen in der obersten Ebene und wandert dann Ebene für Ebene von oben nach unten. Wenn wir dieses Verhalten noch ein kleines bisschen technischer beschreiben, dann sind wir der eigentlichen Funktionsweise von Flash schon sehr nahe! Ihre Anwendung ist nämlich an dieser Stelle ein Objekt. Und dieses Objekt ändert ständig seinen Zustand, indem es ein Bild nach dem anderen anzeigt. Und in jedem Bild geben Sie einem Objekt verschiedene Verhalten. Wie schon gesagt, wenn sich das Objekt im letzten Bild befindet, könnte es z. B. die Bildwechsel durch ein stop() anhalten. Oder um ein Beispiel aus der realen Welt zu nehmen: Auch Menschen verändern ihre Zustände (z. B. ihr Alter oder ihre Gesundheit) und davon abhängig manchmal ihr Verhalten – insbesondere sobald in ihrer Zeitleiste ein entscheidendes Ereignis eintritt. Objekte Ein Flash-Film ist ein Objekt, das aus weiteren Objekten wie Schaltflächen und Movieclips besteht. Dabei sind die Schaltflächen eine etwas eigenwillige Sonderform, die seit Flash MX glücklicherweise durch Movieclips ersetzt werden können. Den in einer Anwendung verwendeten Movieclips und Schaltflächen weisen Sie Anweisungen zu, indem Sie diese auswählen und dann den ActionScript-Editor verwenden. Programm, Skript und Ereignisprozeduren 107 Abbildung 5.3 Schaltfläche mit Aktionen Objekte sind unabhängig! Wenn Sie die Zeitleiste Ihrer Anwendung durch eine Anweisung in einem Bild beeinflussen, dann hat dies keine Wirkung auf die in diesem Bild angezeigten Objekte. Diese arbeiten unabhängig weiter und müssen explizit durch ActionScript angesprochen werden. Sowohl Schaltflächen als auch Movieclips entfalten ihre Wirkung, sobald sie in einer Flash-Anwendung auftauchen, d. h., sobald der Abspielkopf einen Bereich der Zeitleiste erreicht, indem Schaltflächen-Instanzen oder Movieclip-Instanzen enthalten sind. Dabei erhält jede Instanz ihre eigenen Befehle. Gerne wird dabei vergessen, alle Skripte auf allen Instanzen in unterschiedlichen Schlüsselbildern zu pflegen! Die Skripte auf einer Instanz wurden bis Flash 5 als Objektaktionen bezeichnet. Seit Flash MX sind die Begriffe Instanzaktionen, Instanzskripte oder Objektaktionen bzw. Objektskripte geläufig. Objektskripte verstehen eine ganze Reihe von Ereignissen in der Form bei ereignis führe anweisungen aus. Für Schaltflächen (engl. Button) und seit Flash MX auch für Movieclips sieht eine Ereignisprozedur dann wie folgt aus: on (ereignis) { anweisungen; } 108 Regeln Die Menge der speziell für Movieclips verfügbaren Ereignisprozeduren wird ähnlich verwendet und anstelle des on mit onClipEvent eingeleitet: onClipEvent (ereignis) { anweisungen; } Der Parameter für das Ereignis wird innerhalb runder Klammern unmittelbar im Anschluss an die Schlüsselwörter on bzw. onClipEvent angegeben. Die zu diesem Ereignis gehörenden Anweisungen platzieren Sie innerhalb eines durch geschweifte Klammern gekennzeichneten Blocks. Ob Sie dabei Leerzeichen bzw. Zeilenumbrüche (siehe »Whitespaces« ab Seite 111) zwischen die Klammern und die Schlüsselwörter setzen, hängt von Ihren optischen Vorlieben ab. Flash erkennt anhand der Klammern automatisch, dass ein neuer Bestandteil folgt! Ein Block, der sich auf ein Ereignis bezieht, wird wie bereits weiter oben erwähnt als Handler bezeichnet. Schaltflächen und Movieclips können mehrere solcher Handler in einem Skript beinhalten, die dann abhängig von den eintretenden Ereignissen unabhängig ausgeführt werden. Dabei sollten innerhalb eines Skripts niemals mehrere Handler mit dem gleichen Ereignis verwendet werden. onClipEvent (ereignis1) { anweisungen; } onClipEvent (ereignis2) { anweisungen; } Vermeiden Sie Objektaktionen Bis Flash MX waren die Instanzaktionen der einzige Weg, eine FlashAnwendung auf zahlreiche Ereignisse inklusive vieler Benutzerinteraktionen reagieren zu lassen. Seit Flash MX sind diese Instanzaktionen aber nicht mehr erforderlich. Dies ist auch gut so, denn ein Programm mit zahlreichen, über viele Instanzen verteilten Skripten ist sehr unübersichtlich und führt durch unbeabsichtigte Seiteneffekte immer wieder zu Fehlern. Flash MX bietet so genannte Ereignismethoden (einige wenige davon gibt es bereits in Flash 5) und Listener (siehe Kapitel 12, »Ereignisse«), die – solange Sie nicht für ältere Flash-Versionen entwickeln müssen – den Ereignisprozeduren unbedingt vorgezogen werden sollten: Programm, Skript und Ereignisprozeduren 109 meineInstanz.onMouseUp = function() { trace("Maus losgelassen"); }; Schaltflächen bleibt jedoch der Vorteil, dass sie bereits im Flash 2-Format eingesetzt werden können. 5.3 Bezeichner Jedes Programm in Flash besteht aus einer Vielzahl an Begriffen, die Bezeichner genannt werden. Zahlreiche dieser Bezeichner in ActionScript sind bereits mit einer Bedeutung vorbelegt. Diese so genannten Schlüsselwörter sollten unbedingt genauso geschrieben werden, wie sie definiert sind. Beachten Sie die Großund Kleinschreibung! Groß- und Kleinschreibung Flash verhielt sich bis inklusive Flash MX in den meisten Fällen zwar tolerant, was die Groß- und Kleinschreibung angeht, doch spätestens wenn Schlüsselwörter andere Zeichen enthalten oder durch ein Leerzeichen getrennt werden, geht gar nichts mehr. Und auch bei der Groß- und Kleinschreibung gibt es Schlüsselwörter, mit denen ActionScript nicht zurechtkommt. Und mit Flash MX 2004, unterscheidet Flash wie das Vorbild ECMAScript sowieso grundsätzlich zwischen Groß- und Kleinschreibung. Übrigens: Die genaue Schreibweise eines Schlüsselwortes können Sie sehr gut in der Referenz nachschlagen. gotoAndPlay(10); // ist erlaubt goto and play(10); // funktioniert nicht Erlaubte Zeichen Halten Sie sich unbedingt an Ihre gewählte Schreibweise, auch wenn Sie selber Elemente benennen. Ihre selbst definierten Bezeichner dürfen außerdem nur aus Buchstaben, Zahlen, Dollarzeichen oder dem Unterstrich bestehen. Als erstes Zeichen sind Zahlen darüber hinaus nicht erlaubt. spieler1="Sascha"; // ist erlaubt 1spieler="Sascha"; // funktioniert nicht Klammern Bezeichnern für Befehle, Funktionen und Methoden folgt im Gegensatz zu den Bezeichnern für Eigenschaften oder Variablen eine Klammer, wenn die mit ihnen verbundene Funktionalität abgearbeitet werden soll. Jede Klammer, die geöffnet wird, muss dabei wie in der Mathematik wieder geschlossen werden. 110 Regeln Die Klammer ist in manchen Fällen leer, manchmal enthält sie einen oder mehrere durch Komma getrennte Parameter. Als Faustregel kann man sich merken, dass alle Bezeichner mit Klammern versehen werden müssen, sollten sie nicht als Wertebehälter eingesetzt sein. bezeichner(); bezeichner(parameter); bezeichner(parameter, parameter); Einige Aktionen in ActionScript beeinflussen einen Block von weiteren Aktionen. In diesem Fall folgen der schließenden runden Klammer für die Parameter eine öffnende geschweifte Klammer, dann eine oder mehrere Anweisungen und abschließend wieder eine schließende geschweifte Klammer: bezeichner() { bezeichner(); } Sie dürfen Blöcke aus geschweiften Klammern auch einfach zwischendrin verwenden, da diese eigentlich nichts anderes machen, als Anweisungen zusammenzufassen – ähnlich wie eine Gruppierung beim Design. Öffnende und schließende Klammern finden Es ist nicht immer ganz einfach, zusammengehörende öffnende und schließende Klammern zu finden. Die Tastenkombination (Strg)/ (ï)+(Ä) schafft hier Abhilfe und hebt den Text zwischen runden, eckigen oder geschweiften Klammern hervor. Die in der Flash-Hilfe angegebene Tastenkombination (Strg)/(ï)+(’) funktioniert übrigens nur bei einer angelsächsischen Tastatur. Whitespaces In ActionScript benötigen Sie eine Reihe von Bezeichnern, Operatoren wie Klammern und Trennzeichen wie Kommata oder Semikolons. Zwischen diesen Bestandteilen von ActionScript dürfen Sie so viele Leerzeichen und Zeilenumbrüche (so genannte Whitespaces) platzieren, wie Sie möchten. Achten Sie nur darauf, dass Ihre Skripte weiterhin gut lesbar bleiben. meineInstanz.stop(); // ist erlaubt meineInstanz . stop ( ); // ist erlaubt meine Instanz.stop(); // ist nicht erlaubt, da ein Bezeichner durch ein Whitespace unterbrochen ist Bezeichner 111 function meineFunktion () { // Anweisung } // ist erlaubt function meineFunktion () { // Anweisung } // ist erlaubt function meine Funktion () { // Anweisung } // ist nicht erlaubt, da ein Bezeichner durch ein Whitespace unterbrochen ist Schlüsselwörter Bei der Wahl eines Bezeichners steht Ihnen nicht nur ein beschränkter Zeichensatz zur Verfügung. Außerdem gibt es einige Begriffe, die bereits von Flash reserviert oder in der zugrunde liegenden ECMAScript-Definition als reserviert gekennzeichnet sind. Grundsätzlich sollten Sie aber keine Bezeichner verwenden, die Sprachelementen von ActionScript oder ECMAScript entsprechen. Reservierte Schlüsselwörter Schlüsselwort ECMAScript 3 Flash MX x (nur reserviert) add x and x as x (nur reserviert) x (nur reserviert) Boolean break x x x x (nur reserviert) bytes case x x x catch x x (nur reserviert) x char x (nur reserviert) class x const x (nur reserviert) continue x x x x (nur reserviert) debugger 112 Flash MX 2004 abstract default x x x delete x x x Regeln Schlüsselwort ECMAScript 3 Flash MX Flash MX 2004 do x x x double x (nur reserviert) dynamic x else x x x enum x (nur reserviert) eq x export x (nur reserviert) extends x false x final x (nur reserviert) finally x x x (nur reserviert) float for x x x function x x x ge x get x goto x (nur reserviert) gt x if x x x ifFrameLoaded x implements x import x in x x x instanceof x x x int interface x intrinsic x is x (nur reserviert) it x le x long x (nur reserviert) namespace x (nur reserviert) native x (nur reserviert) ne x Bezeichner 113 Schlüsselwort ECMAScript 3 Flash MX Flash MX 2004 new x x x not x null x on x onClipEvent x or x package x (nur reserviert) private x protected x (nur reserviert) public x return x x set x short x (nur reserviert) static x super x switch x x x synchronized x (nur reserviert) tellTarget x this x x throw x x (nur reserviert) x x throws x (nur reserviert) transient x (nur reserviert) try x x (nur reserviert) x typeof x x x x (nur reserviert) use var x x x void x x x x (nur reserviert) volatile 114 x while x x x with x x x Regeln Vordefinierte Klassen und Komponenten (Flash MX 2004) Klassen- bzw. Komponentenname Klassen- bzw. Komponentenname Accessibility FocusManager Accordion Form Alert Function Array Iterator Binding Key Boolean Label Button List Camera Loader CellRenderer LoadVars CheckBox LocalConnection Collection Log Color Math ComboBox Media ComponentMixins Menu ContextMenu MenuBar ContextMenuItem Microphone CustomActions Mouse CustomFormatter MovieClip CustomValidator MovieClipLoader DataGrid NetConnection DataHolder NetStream DataProvider Number DataSet NumericStepper DataType Object Date PendingCall DateChooser PopUpManager DateField PrintJob Delta ProgressBar DeltaItem RadioButton DeltaPacket RDBMSResolver DepthManager Screen EndPoint ScrollPane Error Selection Bezeichner 115 Klassen- bzw. Komponentenname Klassen- bzw. Komponentenname SharedObject Tree Slide TreeDataProvider SOAPCall TypedValue Sound UIComponent Stage UIEventDispatcher String UIObject StyleManager Video System WebService TextArea WebServiceConnector TextField Window TextFormat XML TextInput XMLConnector TextSnapshot XUpdateResolver TransferObject 5.4 Anweisungen Jedes Skript und jede Ereignisprozedur beinhalten einen Block mit mindestens einer Anweisung. Denn ohne solche Anweisungen würde das Skript keinen Sinn machen: Was nützt die Reaktion auf ein Ereignis ohne anschließende Folgen? Die Anweisungen werden in einem Skript hintereinander angegeben. Dabei kommt es darauf an, die richtigen Anweisungen in der richtigen Reihenfolge anzuwenden. Ein Programm ist also nichts anderes als ein Kochrezept, bei dem ebenfalls nur präzise und in der richtigen Reihenfolge formulierte Schritte zu einem gelungenen Gericht führen. Reihenfolge der Anweisungen Wenn Sie mehrere Anweisungen verwenden, bestimmt die Reihenfolge das resultierende Verhalten. Einzelne Anweisungen können andere Anweisungen im gleichen Bild oder auf derselben Instanz aufheben (wenn z. B. die Anweisungen stop(); und play(); aufeinander folgen, hat nur die letzte Anweisung eine Wirkung). Verwenden Sie aus diesem Grund für Bildskripte nach Möglichkeit immer ausschließlich eine Ebene. So haben Sie die Reihenfolge der Anweisungen besser im »Blick« und verhindern, dass sich mehrere Bildskripte in verschiedenen Ebenen gegenseitig beeinflussen. 116 Regeln Ziehe Hose aus Erledige Geschäft Setze hin Setze hin Erledige Geschäft Ziehe Hose aus Abbildung 5.4 Auf die Reihenfolge kommt es an! Nomenklatur Aktionen, Anweisungen oder Befehle beschreiben alle die Einzelschritte, die der Computer in Ihrem Programm ausführen soll. Aus diesem Grund werden die Begriffe meist synonym verwendet. Semikolon Das Ende einer Anweisung in ActionScript kennzeichnet das Semikolon (der »Strichpunkt«). Verglichen mit einem Buch entspricht das in etwas dem Satzzeichen »Punkt«, der das Ende eines Satzes markiert. anweisung;anweisung;anweisung; In Flash dürfen Sie zwar auch auf das Semikolon verzichten, dann müssen Sie aber einen Zeilenumbruch einfügen. anweisung anweisung Gewöhnen Sie sich darum möglichst an, jede Anweisung mit einem Semikolon zu beenden (einen Zeilenumbruch dürfen Sie trotzdem einfügen). anweisung; anweisung; Übrigens ist auch nur die Angabe des Semikolons als Anweisung erlaubt, um z. B. ein Skript zu formatieren. Sonst macht diese leere Anweisung aber keinen Sinn und wird im Normalmodus des ActionScript-Editors automatisch gelöscht. Anweisungen 117 ; anweisung;;; ; anweisung; Befehle und Methoden Eine Anweisung beinhaltet in vielen Fällen einen Befehl (auch Aktion genannt) oder bei objektorientierter Programmierung die Angabe einer Instanz mit Methode. Grundsätzlich ist ein Befehl in der Form befehl(parameter); aufgebaut. Eine Methode wird wie objekt.methode(parameter); angegeben. Viele Befehle und Methoden benötigen Parameter (auch Argumente genannt). Diese Parameter spezifizieren die Wirkung einer Anweisung genauer. Wenn Sie z. B. eine Aktion verwenden, um in ein spezielles Bild des Films zu springen, dann benötigen Sie die Anweisung (in diesem Fall gotoAndPlay) und ein Ziel (also das Bild, in das gesprungen werden soll). Bei einem Kochrezept ist das ähnlich: Sie benötigen bei einer Anweisung, wie z. B. dem Hinzufügen, die genaue Angabe dessen, was hinzugefügt werden soll (z. B. drei Eier). Methoden Seit Flash 5 gibt es wie bei JavaScript Methoden, die Sie der alten Schreibweise mit den so genannten Aktionen – falls möglich – vorziehen sollten. Anstelle von loadMovie("datei.swf", instanz); geben Sie mit der neuen Schreibweise instanz.loadMovie("datei.swf"); an. Instanznamen Es gibt eine ganze Reihe von Objekttypen, die Sie in ActionScript über Ihren Instanznamen ansprechen. Sollte sich die Instanz an einer anderen Stelle innerhalb des Flash-Dokumenten-Objektmodells befinden (siehe Kapitel 11), dann benötigen Sie den kompletten Pfad bis zu dieser Instanz. Die einzelnen Bestandteile des Pfades werden dabei wie in den meisten anderen Programmiersprachen mit einem Punkt getrennt: movieClipA.movieClipInA.movieClipInAInA.stop(); Dies ist am ehesten mit mittelalterlichen Weisungen zu vergleichen: Sohn des Schusters, repariere meine Schuhe (schuster.sohn.repariere(schuhe);)! In Flash wird die ganze Sache bei größeren Projekten jedoch deutlich umfangreicher: Sohn des Schusters, der wiederum Sohn der Lehrerin ist, die wiederum Tochter des Müllers ist, repariere meine Schuhe (müller.lehrerin.schuster. sohn.repariere(schuhe);). Glücklicherweise geht das Ganze aber dann doch nicht bis zu Adam und Eva zurück … 118 Regeln Funktionen Auf einige Informationen in Flash wird über Funktionen zugegriffen. Beispiele dafür sind die Laufzeit des Films getTimer() und die Versionsnummer des Flash-Players getVersion(): // Zeige die Zeit an, die der Flash-Film bereits läuft trace(getTimer()); Funktionen erkennen Sie immer an der nachfolgenden Klammerung. Im Unterschied zu Variablen sind Funktionen keine Wertebehälter, sondern Maschinen, die einen Wert erst produzieren müssen. Und wie Befehle und Methoden erfordern manche Funktionen Parameter, welche die Produktion beeinflussen. Das ist wie mit einer Brotbackmaschine, die für das fertige Brot eine ganze Reihe von Zutaten benötigt. Sollte eine Funktion zu einem Objekt gehören, dann spricht man auch hier von einer Methode – mit dem Unterschied, dass dies eine Methode ist, die einen Wert liefert. trace(this.getBytesLoaded()); Kontrollstrukturen Den Programmablauf bestimmen neben den Ereignissen die Kontrollstrukturen. Diese bestehen immer aus einem Schlüsselwort, das die Art der Kontrollstruktur kennzeichnet, einem Parameterbereich in runden Klammern und einem Anweisungsblock in geschweiften Klammern. Je nach Kontrollstruktur unterscheidet sich der Aufbau geringfügig. Die grundsätzliche Schreibweise ist aber ähnlich und beinhaltet immer einen Parameter, der eine Bedingung enthält. Diese Bedingung legt fest, ob die Anweisungen ausgeführt werden sollen oder eben nicht. Umgangssprachlich falls (ich.hunger>0) { ich.geheEssen(); } oder in ActionScript if (meineMovieClipInstanz._x<0) { meineMovieClipInstanz._x=550; } Weitere Kontrollstrukturen wie Schleifen und bedingte Anweisungen sind im Kapitel 10, »Kontrollstrukturen« beschrieben. Anweisungen 119 Ausdrücke Anweisungen und Parameter bestehen aus Ausdrücken! Ein Ausdruck verhält sich so ähnlich wie eine mathematische Funktion und besteht aus Operatoren und Operanden. Als Operatoren kennt ActionScript unter anderem die Grundrechenarten und den Zuweisungsoperator = : einzelpreis = gesamtpreis / anzahl; Eigenschaften, Variablen, Funktionen, Methoden und zusammengesetzte Ausdrücke wiederum lassen sich als Bedingungen einsetzen. Diese Bedingungen verwenden Sie in ActionScript kombiniert mit Kontrollstrukturen, um den Ablauf Ihres Skripts zu steuern. Den Ausdrücken ist ab Seite 196 ein eigenes Kapitel gewidmet, in dessen Zusammenhang auch die Kombinationsmöglichkeiten unter Zuhilfenahme von Operatoren beschrieben sind. 120 Regeln Index !#p 138 != 220 !== 221 #b 139 #include 86 #p 138 $version 484 %= 204 && 225 &= 205 ( ) 235 *= 203 ++ 201 += 204 -- 201 -= 205 . 237 /= 203 << 230 <<= 207 <= 214 <> 65 == 219 === 220 >= 216 >> 231 >>= 208 >>> 231 >>>= 208 ? 240 [ ] 235 ^= 206 {} 236 | 234 |= 206 || 227 ~ 230 3D 504 Techniken 505 Zusatzprodukte 506 3D-Optimierung 517 A Abspielen so groß wie möglich 147 Abspielgeschwindigkeit ändern 278 Abspielumgebung 146 Abspielvorgang 131 stoppen 132 Abstrakte Klassen 418 656 Index Abstraktion 78, 339 Accessibility 614 Accordion 430 accProps 363, 367 ActionScript 12 Bezeichner 465 Bildaktion 106 Definition 16 Editor 83 erstellen 82 für Designer 12 für Programmierer 12 Flash 4 48 Importieren und Exportieren 86 Kategorien 94 Konzept 12 Regeln 104 Umstieg 396 Ursprung 44 versteckte Funktionen 589 Zentrieren 548 ActionScript-Assembler 17 ActionScript-Code aufrufen 244 ActionScript-Dateien erstellen 97 Flash MX 2004 Professional 97 Format 460 ActionScript-Editor 31, 82 ein- und ausblenden 84 Optionen 85 Plus-Schaltfläche 94 Referenz 98 Suchen und Ersetzen 87 Voreinstellungen 91 Werkzeugleiste 94 ActionScript-Editor öffnen 35 ActionScript-Objekt 403 ActionScript (Central) 523 ActionScript 2.0 17, 50, 396 externe Dateien 396 getter/setter 420 Instanzen einer Klasse 400 Klassen 396, 397 Konstanten erstellen 166 Schreibweise 400 Typisierung 194, 406 undokumentierte Objekte 590 Vererbung 407 ActionScript 2.0-Einstellungen 401 ActionScript Communications 61 ActionScript Remote 60, 61 ActiveX 552, 562 Eigenschaften 563 Ereignisse 577 Methoden 568 ActiveX-Eigenschaften AlignMode 563 BackgroundColor 564 Base 564 BGColor 564 DeviceFont 564 EmbedMovie 565 FrameNum 565 Loop 565 Menu 565 Movie 565 Playing 566 Quality 566 Quality2 566 ReadyState 566 SAlign 566 Scale 567 ScaleMode 567 SWRemote 567 TotalFrames 567 WMode 568 ActiveX-Ereignisse FSCommand 577 OnProgress 578 OnReadyStateChange 578 ActiveX-Methoden Back 568 CurrentFrame 568 FlashVersion 569 Forward 569 FrameLoaded 569 GetVariable 569 GotoFrame 570 IsPlaying 570 LoadMovie 570 Pan 570 PercentLoaded 571 Play 571 Rewind 571 SetVariable 571 SetZoomRect 572 Stop 572 StopPlay 572 TCallFrame 572 TCallLabel 573 TCurrentFrame 573 TCurrentLabel 573 TGetProperty 574 TGetPropertyNum 575 TGotoFrame 575 TGotoLabel 575 TPlay 575 TSetProperty 576 TSetPropertyNum 576 TStopPlay 576 Zoom 577 ActiveX-Steuerung 277, 563 add 65, 239 Addition 209 Additionszuweisung 170, 204 addListener 325 addProperty 166, 383, 419 Aftershock 481 Agenten-Manager (Central) 521 Aktionen 46, 83, 124 Alternativen 125 Aufbau 127 Drucken 124 einfügen 93 Sound-Steuerung 144 Steuerung 127 über Werkzeugleiste einfügen 94 zielgerichtet einsetzen 280 zuweisen 83 aktiver Bereich Ereignis 318 Alert 430 Algorithmus 72, 124 Aliastext-Funktion 604 allowDomain 307 allowInsecureDomain 307 allowScale 146 allTransitionsInDone 449 allTransitionsOutDone 449 alpha 364 Alphakanäle 549 Alphawert 364 Als Datei exportieren 89 Analyse 454 and 65, 226 Anführungszeichen 178 Animation 38 Ankerpunkt 377 Anonyme Funktionen 254 anpassen 99 Ansichtsoptionen 85 Anti-Aliasing 134 Anweisungen 75, 94, 109, 116, 124 als neue Methode 385 Bedinungen 259 Befehle 118 gruppieren 237 Methoden 118 Reihenfolge 116 Anwendung aufrufen 148 Anwendungs-SWF-Datei 521 Anwendungsentwicklung Modus 51 Anzeige verknüpfen 447 AOL 480 Argumente 118 arguments-Array 251 Arithmetische Operatoren 197, 209 Array 190, 344, 614 Eigenschaften 614 Methoden 614 Array-Initialisierung 235 Array-Objekt Sortierfunktion 254 Array-Zugriff 235 AsBroadcaster 328 Methoden 615 ash Communication Server MX 59 ASnative 592 ASO 403 ASO-Dateien 608 Verzeichnis 403 Assembler 337 Asteroid blaster 595 attachAudio 501 attachMovie 342, 369, 437 Audioquelle ansteuern 501 Audiostream 489 Ausdruck 120, 196, 197 auf Gleichheit prüfen 263 negieren 224 wahr? 228 Ausgabe verhindern 138 Ausgabefenster 33 Ausgabegröße 139 Ausnahmebehandlung 269 Auswertung 240 Auto-Format 85, 88 Auto-Format-Optionen 88, 179 automatische Typkonvertierung 183 Axometrie 517 B Bandbreite 28 barrierefreier Zugang 489 Barrierefreiheit 363, 367 Bedienfeld Aktionen 83 bedingt 240 Bedingte Anweisung 259 else 260 if 259 bedingte Ausdrücke 240 Bedingung 200, 212 Beenden im Webbrowser 150 beginFill 374, 379 beginGradientFill 374, 381 Begrenzungsbox Bild 139 Begrenzungsbox Film 139 Begrenzungsbox Max. 139 Behaviour 46, 446 Benutzerführung 492 Benutzeroberfläche Steuerelemente 430 Benutzeroberflächen-Komponenten 430 Beschleunigung 56 Bewegung 37, 389 Interaktion 502 Programmiert 38 Bewegungs-Tweening 37 Bewegungsmelder 307 Bezeichner 73, 110, 342 definiert 110 Klammern 110 Schlüsselwörter 112 Bezeichnernamen unzulässig 167 Bézierkurven 377 bframe 139 Bildaktion 107 Reihenfolge 107 Bildbezeichnungen 129 Bilder Aktionen 106 ins vorige wechseln 245 laden 364 wechseln 245 Bildnummer 129 Bildschirm Ereignisse 449 Bildschirmschoner 149, 474 Bildschirmschoner-Generatoren 475 Bildschirm anzeigen 447 Bildschirm ausblenden 447 Bildwechsel 290 Ereignis 312 Bild ins vorhergehende wechseln 132 binäre Berechnungen 228 Binärzahlen 187 Bindable 444 Index 657 Bindungen 435 Bit-Komplement 230 Bitmap 509 drucken 137 bitweises Oder 234 bitweises Und Flash 4 232 bitweises XOder 233 bitweise AND-Zuweisung 170 bitweise Oder-Zuweisung 206 bitweise Operatoren 228 bitweise OR-Zuweisung 170 bitweise Und-Zuweisung 205 bitweise Verschiebung 230 nach links 207 nach rechts 208 bitweise Verschiebung nach links und Zuweisung 170 bitweise XOder-Zuweisung 206 bitweise XOR-Zuweisung 170 Blackbox 339 Blackbox-Prinzip 78 blank 152 bmax 139 bmovie 139 Boolean 173, 174, 188 Konstruktor 615 Methoden 615 Boolean-Objekt 174 Boolesche Werte 174 gegenteilig 224 break 263, 268 Breakthrough 596 broadcasting 327 Browser-Kompatibilität 554 Browsernavigation 29 Brute Force-Methode 478 Bühne 343 Größe verändern 333 Button 362, 430 Eigenschaften 615 Ereignismethoden 616 Methoden 616 Bytecode 17, 409 optimieren 472 C call 65 callee 252 caller 252 Camera Eigenschaften 617 Methoden 616 Camera-Objekt 502 capabilities-Objekt 489 Cascading Style Sheets (CSS) 544 658 Index CBT (Computer Based Training) 552 Center in Browser 547 Central-Erweiterungen 524 Central API 527 Central Player 520 Central Player versus Flash Player 524 Central Shell 520 Central Software Development Kit (SDK) 522 changed 294 ChangeEvent 444 CheckBox 428, 430 chr 65 class 398 Classes-Verzeichnis 424 CLASSID 529 clear 374 clientseitiges ActionScript 17 CODEBASE 529 Codedesign 454 Codefragmente 102 Codehinweise 469 anpassen 469 erzwingen 88 Codehinweise anzeigen 85 Codehinweise zeigen 87 ColdFusion 59 Collection 444 Color 344, 617 ComboBox 428, 430 Components V2 439 constructor 591 ContextMenu 618 ContextMenu-Instanz Ereignis 321 ContextMenuItem 603, 618 ContextMenuItem-Instanz Ereignis 321 ContextMenu 603 continue 268 Controller verknüpfen 447 Cookie-Klasse 424 Cookie-Objekte 590 core 424 Coreobjects 181 createClassObject 438 createEmptyMovieClip 342, 369 createObject 438 createTextField 369 CSS-basierte Stile 437 CuePoint-Navigation für benanntes Bild 447 CuePoint-Navigation für Folie 447 currentframe 364 curveTo 374 curveTo-Methode 377 CustomActions 619 D Darstellungsqualität 368 Wechseln 246 DataGrid 431 DataHolder 432 DataSet 432 Data Components 430, 432 Date 619 DateChooser 431 DateField 431 Dateien Strukturieren 463 Dateiendungen 17 Daten Aufbau und Struktur 164 laden 156 laden, Ereignis 309 Datenkomponenten 430 Datenquellen aktualisieren 432 laden 430 Datenquelle auslösen 448 Datenstrukturen 73, 164 Datentyp 162, 172 bestimmen 238 in Objekt umwandeln 185 in Wahrheitswert umwandeln 184 in Zahl umwandeln 184 in Zeichenkette umwandeln 185 Daten speichern 589 Datumswähler 431 Debug-Optionen 85 Debugger 82 Debugger-Version 490 Debugger (Central) 522 delete 171 delete Objektzuweisung aufheben 238 depricated 62 DevNet 648 DHTML 550 Distance 515 Division 211 Rest 211 Divisionszuweisung 170, 203 Dokumentation 607 Dokumenteigenschaften 155 Dokumenten-Objektmodell 276 doppeltes Gleich 202 do while-Schleife 266 Drag and Drop 497 Drahtgittermodell 513 draw 449 Dreamweaver 102, 481, 528 Osterei 593 Dreidimensional transformieren 515 droptarget 364 Druckbereich 140 Drucken 139 Aktionen 136 als Bitmap 143 Bildes so groß wie möglich 139 Bild im Verhältnis zum Dokument 139 Mehrseitige Dokumente 140 vektororientiert 141 verhindern 138 Druckfunktion 455 duplicateMovieClip 135, 342, 369 dynamic 422 Dynamisch 421 dynamische Klassen Vererbung 423 E Easter Eggs 593 ECMAScript 17, 51 Unterschiede zu ActionScript 53 ECMAScript 4 50, 396 und Java 54 Editor 102 Alternativen 457 externen einbinden 103 Eigenschaften 73 Bezeichner 465 Deklaration öffentlich/privat 416 löschen 238 selbst definiert 382 Variablen 164 zugreifen 346 Eigenständige Anwendungen 474 erstellen 474 Einfache Ausdrücke 196 else 260 else if 262 EMBED 528, 529 enabled 366 endFill 375, 379 Endlosschleife 264 enterFrame 300 Entwicklungs-Bedienfelder 32, 83 Entwicklungsumgebung 17, 57, 58, 82, 457 Enumeration 620 eq 65, 222 Ereignismethoden 109, 282, 301 polymorph 301 unterstützte Flash-Version 302 Vor- und Nachteile 285 Ereignismethoden, Flash 5 Vor- und Nachteile 286 Ereignisorientierte Programmiersprache 282 Ereignisorientierte Programmierung 76 Ereignisprozeduren 105, 282, 294 für Movieclips 295 für Schaltflächen 295 unterstützte Flash-Version 295 Vor- und Nachteile 285 Ereignisreihenfolge bildbasiert 288 bildunabhängig 290 Ereignisse 105, 282, 296 benutzerabhängig 300 benutzerunabhängig 300 delegieren 608 erkennen 282 Methode aufrufen 301 Parameter 109 Reaktion 282 Reihenfolge 288 vordefiniert 283 Error 620 Erweitern 57 Erweiterungen verwalten 427 Esc-Tastenkombinationen 89 Escape-Sequenzen 179 EVA 73 eval 162, 163 eval-Funktion 53 Event 443 eventhandler 282, 294 Evolution 78, 351 exec 146 Expertenmodus 32 explizite Typkonvertierungen 182 extends 408 Extension Managers 427 externe Anwendung starten 146 F Factory 414 Factory-Methode 418 Fähigkeiten als globale Funktion 385 selbst definiert 382 false 165, 174 Farbsteuerung 344 Fehlerbehandlung zur Laufzeit 269 Fehlerbehebungen 604 Fehlertyp 270 Fenster schließen 557 File 620 Film-Explorer 82 FLA 18 Flash 364, 589 Alternativen 58 Geheimnisse 588 undokumentiert 588 Flash-Anwendung ansprechen 307 drucken 137 kombinieren 557 steuern 554 Ziel 279 Flash-Anwendung ansprechen Ereignis 307 Flash-Dateiendungen 18 Flash-Erkennung 478 Flash-Erweiterungen 548 Flash-Film abspielen 566 Abspielstatus 570 ActionScript aufrufen 572 ActiveX-Adresse 531 Adresse festlegen 534, 537 Ausschnitt vergrößern 572 Basisverzeichnis 564 Bildanzahl bestimmen 567 Bildanzeige 565 Bildbezeichnung angeben 573 Bildnummer auslesen 568 Bildnummer ermitteln 573 bildschirmfüllend 555 Bildzeiger ermitteln 575 Bildzeiger setzen 570, 575 Breite festlegen 539 Darstellungsqualität 535, 566 Eigenschaft ermitteln 574 einbetten 565 Fenstermodus 568 Film-ID 533, 534 Geräteschriftart 564 Geräteschriften 532 Hintergrundfarbe 531, 564 Höhe bestimmen 533 HTML-Zugriff 531 im Textfluss 530 in Ebene laden 570 in Frames 544, 557 in Schleife 534 Java starten 538 Kontextmenü 534 Kontextmenü anzeigen 565 Ladestatus 571 Ladezustand 566 mit Tabulatorverlassen 537 platzieren 536, 563, 566 Index 659 Player-Version bestimmen 569 Plug-in-Adresse 535 Ränder 543 relative Adresse 531 Sequenz starten 575 Sequenz stoppen 576 skalieren 537 Skalierung 567 starten 571 Startmodus 535 stoppen 572 URL bestimmen 565 Variablenwert bestimmen 569 Variablenwert setzen 571 Variablen erzeugen 532 veröffentlichen 528 verschieben 570 zentrieren 546, 548 zurücksetzen 568, 571 Flash-Layer 549 Flash-Versionen Anweisungen 63 Umstieg 61 FlashAPI.zip 581 Flashdetection 478 Auswahlmethode 479 erweitern 487 JavaScript 479 mit Skript 479 ohne Skript 481 Systemeinstellungen 489 testen 486 FlashStudio Pro 474 Flash 4 66 Flash 4-Datei importieren 67 Flash 4-Film Bezeichner mit Sonderzeichen 66 Bildrate 66 Goto-Aktion 66 Scroll 67 Systemressourcen 66 Textauswahl-Zeiger 66 Flash 5 Gültigkeitsbereich 165 Flash Asset Xtra 277 Flash box 595 Flash Communication Server MX 61, 490 Flash Event Model 286 Flash Exchange 427 Flash für Programmierer 79 Flash mit FSCommand 558 Flash MX 598 zu Flash MX 2004 599 660 Index Flash MX 2004 neue Funktionen 56, 57, 58 Version 7.2 604 Flash MX Professional 2004 neue Funktionen 56, 57, 58 Flash Open File Format 27 Flash Player 18, 19, 58, 277 Betriebssysteme 19 Betriebssystem ermitteln 244 Drucken 136 entfernen 486 mit JavaScript erkennen 479 Verbreitung 26 Version bestimmen 569 Version ermitteln 244 Zeit ermitteln 244 Flash Player-Datei 17 entfernen 159 Flash Player 4-Datei in Flash Player 5 66 Flash Player 6 396 Flash Player Java Edition 579 Konstanten 582 Konstruktor 582 Methoden 583 Referenz 582 Flasm 472 FLEM 286 Flex 45, 194 FLfile-Objekt Statische Methoden 609 Float 174, 187 focusEnabled 366 focusIn 449 focusrect 364, 367 Fokus 335, 449 Ereignis 321 Folien Ereignisse 449 FontName 621 for-Schleife 266 Form-Tweening 37 Formen füllen 378 Formular 431 Formulareingabe überprüfen 308, 329, 334 Formularüberprüfungen 321 Fortschrittsbalken 431 for in-Schleife 268 Frames 544 framesloaded 141, 364 Framework 440 Frei transformieren 506 fscommand 146, 277, 553 fscommand allowScale 147 fscommand exec 148 Einschränkungen 148 fscommand fullScreen 149 fscommand quit 149 fscommand showMenu 150 fscommand trapAllKeys 151 FullScreen 146, 555 Füllung 374 einfarbig 379 Function 246, 621 FunctionArguments 621 Funktionen 75, 119, 242 als Methode 247 aufrufen 247 erstellen 246 ohne Namen 254 selbst definiert 246 vordefiniert 242 zeitgesteuert aufrufen 292 Funktionsdeklaration 246 Funktionsobjekt 256 G Ganzzahlen 174 Garbage Collection 172 Gary’s bike jump 595 Gary’s car jump 594 ge 65, 218 gelbes Rechteck 364 Geräteentwicklung 58 geschweifte Klammer 111 GET-Methode 152 getBounds 369, 523 getBytesLoaded 369 getBytesTotal 370 getDepth 370 getInstanceAtDepth 370 getNextHighestDepth 370 getSWFVersion 370 Getter 419 Getter-/Setter-Methoden 419 Getter-Methode 420 Getter/Setter 254 getTextSnapshot 370 getTimer 119 getURL 147, 151, 370, 553 Methoden 152 Parameter 152 getVersion 119 get URL 63 GIF-Unterstützung 527 gleich 219 Gleichheitsoperator 202 Gleichheitszeichen 168 gleich für Strings Flash 4 222 Gleitkommazahlen 174 GLIC 440 global 164, 171, 367 Globales Objekt 343 Verfügbarkeit 599 Globale Eigenschaften 94, 367 Globale Funktionen 94, 243 Globale Variablen 171 globalToLocal 371 Goldrush 594 goto 127 GotoAndPlay 128, 371, 447 GotoAndStop 129, 371 GotoFrame 557 Go to and Play 63 Go to Next Frame 63 Grafiken mit ActionScript erzeugen 374 Grafik laden 447 Groß- und Kleinschreibung 53, 110 größer als 215 Flash 4 218 größer als oder gleich 216 größer oder gleich Flash 4 218 gt 65, 218 Gültigkeitsbereich 163, 276, 295, 399 H Handcursor 367 Handler 105, 109 Hauptfilm 156 Height 555 height 364 hexadezimale Schreibweise 177 hide 449 highquality 65 Hintergrundfarbe ändern 278 Hintergrundmusik 145 hitArea 366 hitTest 371 Hochkommata 178 HTML 528 ALIGN 530 ALLOWSCRIPTACCESS 531 automatisch erzeugen 558 BASE 531 BGCOLOR 531 CLASSID 532 CODEBASE 531 DEVICEFONT 532 EMBED 529 EMBED 528 FLASHVARS 532 Frames 544 HEIGHT 533 ID 533 LEFTMARGIN 543 LOOP 534 MARGINHEIGHT 543 MARGINWIDTH 543 MENU 534 MOVIE 534 NAME 534 Noframes 544 OBJECT 528 Object 529 PLAY 535 PLUGINSPACE 535 QUALITY 535 Ränder 543 SALIGN 536 SCALE 537 SEAMLESSTABBING 537 SRC 537 SWLIVECONNECT 538 SWREMOTE 538 Tabellen 547 Tags 528 TOPMARGIN 543 Vorlage 540 WIDTH 539 WMODE 539 Zentrieren 546 HTML-Hilfe 528 HTML-Vorlagen 528, 540 HTML-Vorlagenvariablen 542 Hyperlinks 147 I IconFile 444 if 259 ifFrameLoaded 53, 63, 65 Imperative Programmierung 74, 337 Implementierung 72 Implements 411 implizite Typkonvertierung 182 importierte Klasse 405 Include 89 Include-Anweisungen 458 indexOf 493 Infinity 166, 176 initClip 293, 391 Inline-Schreibweise 255 Inspectable 443 Inspectable-Tag Attribute 445 InspectableList 443 Installation Badge 526 Instance 181 instanceof 222 Instanz 341, 350 aktiver Bereich, Ereignis 310 Eigenschaften hinzufügen 382 Eigenschaft 165 erzeugen 342 Fähigkeiten hinzufügen 386 finden 128 klonen 342 Skripte 108 Status verändern, Ereignis 322 unsichtbar 344 verliert Fokus, Ereignis 314 von Prototyp 222 Instanzaktionen 108 Instanznamen 96, 118 Instanzskripte 108 Instanzvariablen 382 Instanz als Menüelement Ereignisse 298 Instanz erzeugen Ereignis 315 int 65 Integer 174, 186 Integrierte Klassen 94 Interaktion Bewegung 502 Interaktionsformen 492 Interfaces 409 erstellen 410 Internet-Adressen 649 Internet Explorer 480 Flash anzeigen 528 Intervall löschen 244 Intrinsic 424 Intrinsic-Klassen 609 isFinite 177 Isometrie 517 iterative Sprache 76 J Java 18, 54, 396, 456, 552, 578 Application 581 Referenz 582 JavaDoc 471 JavaScript 51, 396, 529, 552 aufrufen 553 erstellen 558 Referenz 561 JavaScript API 609 JavaScript Flash API 610 Java Applet 579 Java Player für Flash 579 JPEG-Bilder laden 153 laden, Aktionen 146 Index 661 K Kamera 307, 502 Zugriff 489 Kantenglätten 134 Kernobjekte 181 Key 621 Key-Klasse 417 Key-Objekt 313, 494 keyDown 449 Keyframe 31 keyPress-Ereignis Funktionstasten 297 keyUp 449 Klammern 111, 235 Klangsteuerung 344 Klassen 341, 350, 397 deklarieren 405 global 397 Konstruktur 398 Objektorientierung 340 selbst definiert 398 trennen 404 Vordefiniert 115 Klassenpfad 92, 401, 404 kleiner als 213 Flash 4 217 kleiner als oder gleich 214 kleiner oder gleich Flash 4 217 Kombinationsfeld 430 Kommandozeile 492 Kompilierte Movieclips 434 Kompilierung 194 Komplexe Datentypen 172, 181 Komponenten 392, 426, 605 Anpassung 437 Bezugsquellen 427 einbinden 433 einstellen 435 erstellen 440 erstellen, ActionScript 2 442 erstellen ActionScript 1 441 Erweiterung 439 Flash MX 428 hinzufügen 428 installieren 427 konfigurieren 435 Live-Vorschau 434 Parameter verändern, Ereignis 324 Programmierte Verwendung 437 Standard- und Professional-Version 429 Vordefiniert 115 Vorgefertigt 426 zweite Generation 439 662 Index Komponenten-Inspektor 435 Komponentendefinition 443 Komponentenparameter 443 Konfigurationsdateien Flash MX 2004 100 Konfigurationsordner 99, 606 Flash MX 99 Flash MX 2004, Version 7.2 100 Konkatenation 209 Konsole (Central) 521 Konstanten 94, 165 erstellen 166 Konstruktor aufrufen Flash 5 356 Kontextmenü 146, 366 erstellen 603 im Webbrowser 151 konfigurierbar 602 Kontrolle 57 Kontrollkästchen 428, 430 Kontrollstruktur 76, 119, 258 Schleifen 264 Konzeption 454 Kurven 374 zeichnen 377 Kurzreferenz 612 L Label 431 Ladekontrolle 461 Ladevorgang kontrollieren 461 Ladevorgang abgeschlossen Ereignis 315 Laufleisten 428, 432 Laufzeitumgebungen 18 Laufzeit 194 Lautstärke ermitteln 501 Lautstärkeregelung 144 le 65, 217 Leerzeichen 111 length 65 level 276, 281 level0 156, 278 Pfad 364 leveln 364 Line 515 lineStyle 375 lineTo 375 lineTo-Methode 376 Linien 376 Linientrick 374, 375 Linkage 250 Links 648 Linux Flashdetection 483 List 431 ListBox 428 Listener 109, 282, 325 selbstdefiniert 328 simulieren 326 unterstützte Flash-Version 326 Vor- und Nachteile 287 Liste 190, 428 sortieren 254 Live-Vorschau aktivieren 434 Livedocs 593 load 449 Loader 431 loadMovie 153, 278, 371 loadMovieNum 124, 155, 278 loadVariables 156, 371 loadVariablesNum 159 LoadVars 422, 622 onData 309 LocalConnection 557, 623 localToGlobal 372 Locationbar 556 lockroot 364 logisches Nicht 224 Flash 4 225 logisches Oder 227 Flash 4 228 logisches Und 225 Flash 4 226 Logische Operatoren 224 Lokaler Cache 527 Lokale Variablen 171 mit var 170 Loop 64 lt 65, 217 Lunar lander 596 M Macintosh Flashdetection 483 Macromedia-Diskussionsforen 648 Macromedia Central 520 Macromedia Dashboard 590 Macromedia Exchange 548 Macromedia Flash File Format (SWF) SDK License 27 Macromedia Generator 541 main 312 mainloop 312 Maschinensprache 337 Math 623 Math-Klasse 413, 417 Math-Objekt 343 mathematische Operationen 343 mathematische Operatoren 209 Maus bewegen 332 Interaktion 496 vertikale Position 366 Maus-Objekt 592 Mausposition 497 Sound 497 Mausradunterstützung 602 Mausrad 333, 602 Maustaste loslassen 319 Maustaste drücken Ereignis 316 Maustaste loslassen Ereignis 317 Mausverfolger 496 Mauszeiger 319, 343 Ereignis 320 selbst definiert 343 Maus bewegen Ereignis 317 Maus folgen 41 maxscroll 65 mbchr 65 mblength 65 mbord 65 mbsubstring 65 MD5 527 MediaController 432 MediaDisplay 432 MediaPlayback 432 Media Components 430, 432 Medienkomponenten 430 Mehrbenutzeranwendungen 25 Mehrfachvererbung 409 mehrzeiligen Anzeige 431 Menu 366, 431 MenuBar 431 Menubar 556 Menüleiste 431 Metadaten interpretieren 444 Metadaten-Tags 443 Methoden 73, 127, 128, 242 Deklaration öffentlich/privat 416 einem Objekt zuordnen 248 zeitgesteuert aufrufen 292 zugreifen 346 Microphone 624 Microphone-Objekt 501 Mikrofone 307, 500 Zugriff 489 Mmfdata 590 Mnemonik 337 Module 460 Modulo 211 Modulo-Zuweisung 170 Modulozuweisung 204 Mouse 625 Mouse-Objekt 343 mouseDown 449 mouseDownSomewhere 449 mouseMove 300, 449 mouseOut 449 mouseOver 449 mouseUp 449 mouseUpSomewhere 449 move 449 moveTo 375 movieAboutInfo 539 Movieclip 39, 42, 96, 107, 276, 342, 362, 625 aktiver Bereich 366 aktuelles Bild 364 an Mauszeiger h‰ngen 246 Benennung 363 Bezeichnung 365 Bilder 365 Breite 366 Button 366 Drehung 365 drucken 138 duplizieren 244 durch Methode verkleinern 248 Eigenschaften 363 Eigenschaft setzen 246 Eingabefokus 366 entfernen 135 Ereignisprozedur 108 Ereignisse 448 erstellen 38 Erweiterungen 387 erzeugen 342 Fähigkeiten 368 Fähigkeiten hinzufügen 386 Funktion 278 globale Eigenschaften 367 Größenvergleich 253 Höhe 364, 366 Inhalt löschen 246 in Bild wechseln 128 leer 362 löschen 136 mit ActionScript beeinflussen 96 mit Button-Verhalten 367 mit der größeren Fläche ermitteln 253 nicht sichtbar 362 sichtbar 365 steuern 276 Stufen 278 Variablen 245 vertikale Position 366 Wert ermitteln 244 ziehen 447 zum Drucken laden 141 zusätzliche Eigenschaften 383 Movieclip-Instanz entfernen, Ereignis 323 Pfad 365 vervielfältigen 135 Movieclip-Klassen 390 Movieclip-Methoden 368, 369 Movieclip-Steuerung Aktionen 127 Movieclip.prototype 383, 386 MovieClipLoader 628 Movieclip duplizieren 447 Movieclip Eigenschaften hinzufügen 383 movieCopyrightInfo 539 Multiplikation 211 Multiplikationszuweisung 170, 203 N Nachrichten 282 verschicken 282 Nachrichten (Central) 521 name 365 NaN 166, 176 ne 65, 222 NetConnection 628 Netscape Navigator 480 Flash anzeigen 529 NetStream 629 new 237 new-Operator 350 newline 179 nextFrame 130, 372 nextScene 131 Nicht mehr verwendet 94 Noframes 544 Normalmodus 32, 105 not 65, 225 Not a Number 176 Null 173, 180 null XE 165 Num Stufen als Ziel angeben 138 Number 173, 174, 189, 629 Globale Variablen 177 Number-Objekt 178 NumericStepper 431 nummerische Werte 431 O Oberklasse 353 OBJECT 528 Index 663 Object 184, 191, 529, 630 ObjectID 630 Objektaktionen 108, 109 Objekte 73, 107, 108, 181, 341 Anwendungsspezifisch 181 Klassen 344 Verschachteln 276 ziehen 133 Objekterstellung 336 Objekte bewegen mehrere 41 Objektinitialisierung 236, 345 Objektinstanz 341 erzeugen 237 Objektorientierte Programmierung 76 Objektorientierung 41, 336, 338 Begrifflichkeiten 341 Konzepte 78 Leistungsfähigkeit 80 Metaphern 78 Philosophie 338 prototypenbasiert 591 Objektskripte 108 Objekttyp mehrere Vorkommen 350 Objektzugriff 237 Objekt zuweisen 237 offener Standard 27 öffentlich oder privat 412 Ohne Rand 543 oktale Schreibweise 177 OLE/OCX-Steuerungen 562 on 295, 296 Werte als Ergebnis 296 onActivity 307 onChanged 308, 329 onClipEvent 109, 295, 299 onClipEvent (data) 299 onClipEvent (enterFrame) 299 onClipEvent (keyDown) 299 onClipEvent (keyUp) 299 onClipEvent (load) 299 onClipEvent (mouseDown) 300 onClipEvent (mouseMove) 300 onClipEvent (mouseUp) 300 onClipEvent (unload) 299 onClose 308 onConnect 309 onData 309 onDragOut 310 onDragOver 311 onEnterFrame 288, 312, 328 onID3 313 onKeyDown 313, 329 onKeyUp 313, 330 664 Index onKillFocus 314 onLoad 290, 315 onMouseDown 316, 332 onMouseMove 317, 332 onMouseUp 317, 332 onMouseWheel 333 onPress 318 onRelease 318, 498 onReleaseOutside 319 onResize (Stage) 333 onRollOut 319 onRollOver 320 onScroller 320 onScroller(target) 334 onSelect 321 onSetFocus 321 onSetFocus (Selection) 335 onSoundComplete 322 onStatus 322 onSync 323 onUnload 323 onUpdate 324 onXML 324 on (dragOut) 296 on (dragOver) 296 on (keyPress) 297 on (press) 297 on (release) 297 on (releaseOutside) 297 on (rollOut) 298 on (rollOver) 298 OOP 336 OpenGL 512 Operanden 196, 197 Operatoren 94, 169, 196 Kategorien 198 Reihenfolge 198 Optimierung 472 Optionsfelder 428, 431 Optionsschaltflächen 430 or 65, 228 ord 65 Ostereier 593 Spielesammlung 595 owner 467 P Packages 403 import 405 Verzeichnis 404 Pakete 403 Parallelprojektion 517 PARAM-Tag 529 Parameter übergeben 249 parent 152, 280, 365 Parenthesis 235 parseFloat 187 parseInt 186 Perspektiven 505 perspektivische Darstellung 504 Pfade 280 absolut 280 Darstellung 96 Platzhalter 163 play 372, 484 Plug-ins 25, 277 Verbreitung 26 Pods (Central) 521 Polymorphie 410 Polymorphismus 301 Position auf der Bühne 387 POST-Methode 152 Prä- und Post-Dekrement 201 Prä- und Post-Inkrement 201 Preloader 483 prevFrame 132, 372 prevScene 132 PrimalScript 102 primitive Datentypen 172 print 141 printAsBitmap 143 printAsBitmapNum 144 PrintJob 631 PrintJob-Klasse 140 printNum 142 private 412 Probleme lösen in Teilproblemen 71 product.xml 522, 524 Produkt-ID (Central) 522 Professionelle Videobearbeitung 57 Programmcode-Dokumentation Werkzeuge 472 Programmcode von FLA-Datei trennen 458 Programmiermodelle 77, 336 Programmierrichtlinien 454 Programmiersprachen 77 Konzepte 70 progress 450 ProgressBar 431 Projekt in Module unterteilen 147 proto 356, 359, 400 proto-chain 356 Protokolle 153 Prototyp Vorkommen 181 Prototyp-Eigenschaft 397 Prototype 256, 346, 347, 356, 456, 591 Prototypen-Objekt 347 Prototypenkette 356 Methoden/Eigenschaften 358 Pro und Kontra Flash 24 public 410, 412 Punkte 96 PushButton 428 Q quality 368 Quicksort 511 quit 146 R RadioButton 428, 431 Rahmenlos 543 random 65 Raster 250 räumliche Darstellung 504 RDBMSResolver 433 Rechteck 367 Redaktionssysteme 29 Referenz 85, 98, 110, 612 Referenzdatentypen 173 Refresh-Tag 482 registerClass 390, 441 Reguläre Ausdrücke 527 Reihenfolge 198 Rekursion 264 remote shared object Ereignis 323 removeListener 325 removeMovieClip 135, 372 Reservierte Schlüsselwörter 112 Resizable 556 resize 450 return 253 reveal 450 revealChild 450 Rich Client 16 Rollbalken 428, 432, 497 root 280, 365 rotation 365 Rückgabewerte 253 Rückrufmethode 282 S Schablone 341 Schaltflächen 367, 430 Ereignisprozedur 108 Ereignisse 448 mit Druckfunktion 140 zum Laden der Daten 158 Schaltflächenverhalten 364 Schatten 505 Schema 436 Schleife 258, 264 beenden 268 do while 266 Endlosschleife 264 for 266 for in 268 while 265 Schlüsselbilder 106 a 33, 106 auswählen 31 Schlüsselwörter 110, 112, 493 Schnittstellen 340, 409 deklarieren 410 Vererben 412 zu Datenquellen 456 Schrägstriche 96 Schrägstrichsyntax 53 Schriften schärfen 603 Scite 102 Scope 163, 276, 295 ScreenX 556 ScreenY 556 Scripte Farbeinstellungen 92 scroll 65 Scrollbalken-Komponente 605 ScrollBar 428, 497 ScrollPan 428 ScrollPane 431 Selbstdefinierte Objekte 345 Selection 631 self 152 Semantik 104 Semikolon 117 Senden Aktion 244 Serverseitiges ActionScript 17, 59 set 162 setInterval 292 Anwendung 292 setMask 372 Setter 419 Setter-Methode 420 SetVariable 557 Set Property 64 Set Variable 64 SharedObject 631 Shockmachine 567 Shockwave Remote 538, 567 showMenu 146 Sicherheit 29 Signaturen 243, 410 Singleton 416 Singleton-Entwurfsmuster 417 skalieren 146, 505 im Webbrowser 148 Skins 437 Skript Drucken 89 exportieren 89 fixieren 85 importieren 89 Platzierung 105 Skript-Editor 97 Skript-Navigator 84, 93 Skriptobjekt hinzufügen 85 Slot Machine 278 Smart-Filmsequenzen 426 Smart Clips 426 Sniffer 481 Socket-Server Verbindungsaufbau, Ereignis 309 Socket-Verbindung neue Daten, Ereignis 324 Sound 344, 632 Puffer 368 stoppen 124, 145, 246 Sound-Instanz erzeugen 344 ID3-Informationen, Ereignis 313 Sound-Player erstellen 144 Sound-Steuerung Aktionen 144 Soundeingabe 501 Sound abspielen 447 Ereignis 322 Sound aus Bibliothek laden 447 Sound stoppen 448 Spezialisierung 351 Spiegeln 389 Spiele Steuerung 494 Sprachbestandteile 93 Kategorien 94 Stage 150, 633 Stage-Objekt 343, 523 Stand-alone-Player 277 fscommands 146 Steuerung, Aktionen 146 Stand-alone-Projektor 277 beenden 146, 149 Kontextmenü 150 Standard- und ProfessionalVersion 55 Standardkomponenten 430 Standardschaltfläche 428 startDrag 133, 373, 498 static 413 Statisch 413 Statische Eigenschaften Index 665 öffentlich oder privat 415 statische Klasse 416, 459 Status 556 Sternchen 405 Steuerpunkt 377 Steuerung per Tastatur 494 stop 107, 132, 373 stop(); 107 stopAllSounds 64, 124, 145 stopDrag 134, 373, 498 Strichfarbe 376 Strichpunkt 117 Strichstärke 376 Strichtyp 375 striktes Gleich 220 striktes Ungleich 221 strikte Gleichheit 180 String 173, 178, 189, 633 String-Objekt 180 Stringverkettung Flash 4 239 Stufen 276 Inhalt löschen 246 style 544 Subclass 353 Subpackages 405 substring 65 Subtraktionszuweisung 170, 205 Subtraktion 210 Suchmaschinen 28 super 356, 409 super-Operator 355 Superclass 353 SVG 25 swapDepths 136, 373, 510 SWC 434 SWF 17, 18 analysieren 473 SWF-Datei 277 laden 153 laden, Aktionen 146 nachladen 124 umwandeln 601 SWF-Export Werkzeuge 59 SWFStudio 474 Swift 3D 508 Swift 3D Xpress 508 Switcher 487 switch 263 Symboldefinition Eigenschaften aufnehmen 382 Fähigkeiten aufnehmen 386 Symbole 39 Syntax 104 666 Index überprüfen 105 Syntaxfarbkodierung 92 System 634 System.capabilities 634 System.security 635 Systemeinstellungen ermitteln 489 Systemsprache 490 Szene 130 in vorige wechseln 245 wechseln 245 T tabChildren 366 Tabellen 547 tabEnabled 366 tabIndex 366 Tabulatorreihenfolge 366 Taobot 518 target 365 Tastatur Interaktion 492 Tastatureingaben 313 Tastatureingabe ermitteln 494 Taste drücken 313, 329 Ereignis 313 loslassen, Listener 330 Tastenkombinationen anpassen 83 Taste loslassen Ereignis 313 Teilaufgaben 339 tellTarget 53, 65, 127, 276 Text 158 ausgeben 30 laden 158 laden, Aktionen 146 TextArea 431 textbasierter Inhalt laden 310 Textblock ausgeben 34 Textblock einfügen 34 Textfeld 362, 589 ändern 329 ändern und Aktionen 294 Inhalt ändern, Ereignis 308 scrollen, Ereignis 320 TextField 362, 635 TextField.StyleSheet 637 TextFormat 637 TextInput 432 TextSnapshot 638 TGotoLabel 557 Thema 437 this 165, 281, 346, 383 throw 271 Tiefe 509 toggleHighQuality 65, 134 Toggle High Quality 64 toLowerCase 493 Ton abspielen 489 Interaktion 500 steuern 432 Tooltipps 527 top 152 toplevel 612 Eigenschaften 612 Methoden 612 Methoden für die Entwicklungsumgebung 614 Toplevel-Funktionen 243, 244 totalframes 365 trace 33, 183 Trace-Aktionen 523 trace-Anweisung 33 trackAsMenu 367 Trackballs 500 Transformieren† 505 Transparenz 364, 376, 539 trapAllKeys 146, 151 Tree 432 true 165, 174 try-catch-finally 270 TSetProperty 557 Tweening 37 Typbestimmung 239 Typen festlegen 192 typeof 172, 238 typeof-Operator 181 Typfehler zur Laufzeit ermitteln 194 Typisierung 51, 192, 421, 466 ActionScript 2 406 Codehinweise 194 Typprüfung 461 typsichere Programmierung 192 Typumwandlung 182 Typumwandlungsfunktionen 184 U UIScrollBar 432 UI Components 428, 430 Flash MX 428 Kompatibilität 429, 433 unäre Operatoren 197 Und 226 undefined 165, 173, 180 Undefiniert 180 undokumentierte Klassen 424 Unendlichkeit 176 ungleich 213, 220 Flash 4 222 Unicode 310 Unicode-Format 460 Unicode-Textformat 92 unload 450 unloadMovie 64, 153, 159, 278, 373 unloadMovieNum 155, 160 Unterklasse 353 Unterschied ActionScript 1 und 2 396 Unterstrich 363 updateAfterEvent 291 Updates 82 URI 639 URL 365 aufrufen 151, 244 aufrufen, Aktionen 146 useHandCursor 367 UTF-8 310, 460 V valueOf 373 var 164, 192, 398 Variablen 73, 162 Bereich 163 Bestandteile 73 definieren 382 dividieren 203 Eigenschaft 164 Einsatzzweck 163 global 164 Inhalt löschen 180 lokal 164 löschen 171, 238 mit set deklarieren 166 mit Wert addieren 204 mit Wert multiplizieren 203 mit Zuweisungsoperator = 168 Suffix 466 Typumwandung 182 Typ ermitteln 172 Typ festlegen 192 Wert subtrahieren 205 Variablenbezeichner 168 dynamisch ermitteln 162 Variablen auflisten 174, 183, 345 VBScript 559 veraltet 62 Vererbung 78, 350, 354 ActionScript 2 407 Eigenschaften 355 Fähigkeiten 353 klassische Schreibweise 407 Vergleichsoperatoren 212 Verhalten 46, 446 anpassen 450 anwenden 446 vorgefertigt 124 Verhaltensweisen 447 Verknüpfungsnamen 250 Verlauf 374, 379 Farbe 380 Größe 380 Richtung 380 Veröffentlichen 528 Einstellungen 523 Versionen 44 Versionen im Vergleich 56 Versionsmanagement 463 Versionsmanager 463 Versionsüberprüfung 478 Version 7.2 604 Fehlerkorrektur 605 Verzeichnisstruktur 463 Vezerrung 506 Video 502, 639 steuern 430, 432 Video ausblenden 448 Video unterbrechen 448 visible 365 Visual Basic 563 Visual C++ 563 Visual Studio 563 void 239 Vollbildmodus 146, 149, 447, 555 Voreinstellungen 91 vorhergehenden Szene 132 Vorlagen 341, 352, 396, 528, 540 Variable 541 Vorlagenvariablen 541 vorzeichenlose bitweise Verschiebung 208, 231 W Wahrheitswert 174, 188 Webbrowser 36 Webcams 502 WebServiceConnector 433 WebServiceConnector-Komponente 430 Webservices 527 Wert 162 endlich 177 setzen 163 um 1 erhöhen 201 um 1 verringern 201 Wertebehälter 162 Wertebereich 163 while-Schleife 265 Whitespaces 111 Width 365, 556 Wiederverwendbare Elemente 426 Window 432 window.close 150 Windows Flashdetection 483 Windows XP Service Pack 2 530 Wireframe 513 With-Anweisung 54 WLAN 520 wmode 549 X XML 639 XML-Dokumente 25 XML-Objekte 590 XML-RPC 527 XMLConnector-Komponente 430 XMLNode 640 XMLSocket 641 XMLSocket-Instanz Verbindung beenden, Ereignis 308 XMLUI 641 xmouse 365 xscale 366 XUL 452 Y ymouse 366 yscale 366 Yugop 497 Z z-Achse 510 z-Reihenfolge 511 Zahl 174, 176, 189 Automatisches Runden 176 endlich 245 Formate 175 Globale Variablen 177 größte darstellbare 175 in Ganzzahl konvertieren 245 kleinste darstellbare 175 Zahl-Datentyp 175 Zehnerpotenzen 177 Zeichen erlaubt 110 Zeichenkette 178, 189 in Ganzzahl umwandeln 186 in Gleitkommazahl umwandeln 187 in URL-Schreibweise konvertieren 244 Index 667 in Zahl konvertieren 245 Zeichenkodierung 310 zeichnen 374 Zeichnungsmethoden 368, 374 Zeilennummern anzeigen 85, 87 Zeilenumbruch 111, 179 Zeitleiste 106, 280 abspielen 245 steuern 128 stoppen 246 Zeitleisten-Steuerung Aktionen 127 668 Index Zentrieren mit ActionScript 548 mit HTML 546 Ziehen 498 Ziel Angabe in Flash 4 und 5 281 drucken 245 Pfad 280 Zieleditor 96 Zielpfad einfügen 85, 95, 128 Zufallszahl 245 Zugriff verhindern 413 Zusammengesetzte Ausdrücke 197 Zusammengesetzte Zuweisung 200 Zustand 79, 279 Zustandsänderungen 339 Zuweisung 163, 170, 202 Zuweisungsoperatoren 36, 168, 197, 200 Zweidimensional 509 Zweidimensionale Objekte 509 Zwischenergebnisse 33