Know-how für Kreative

Inhaltsverzeichnis
1 Erste Schritte
2 Versionen
3 Einführung in die Programmierung
4 Die Entwicklungsumgebung
5 Regeln
6 Anweisungen und Aktionen
7 Werte und Datentypen
8 Ausdrücke und Operatoren
9 Funktionen
10 Kontrollstrukturen
11 Dokumenten-Objektmodell und Gültigkeitsbereich (Scope)
12 Ereignisse
13 Objekterstellung
14 Vererbung
15 Movieclips
16 ActionScript 2.0
17 Komponenten
18 Codedesign und Konzeption
19 Flashdetection
20 Aussergewoehnliche Benutzerfuehrung
21 D mit Flash
22 Macromedia Central
23 HTML
24 JavaScript, ActiveX und Java
25 Flash undokumentiert
26 Vergangenheit, Gegenwart und Zukunft
27 Kurzreferenz
28 Buchtipps
29 Links
30 Die CD-ROM zum Buch
Index
Download: - ZIP, ca. 9,8 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Design / <openbook> / ActionScript | vor >>
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/) Objektorientierung und Codedesign mit Flash MX 2004
ActionScript 1 und 2 672 S., mit CD, Referenzkarte, 44,90 Euro Galileo Design ISBN 3-89842-221-6 |
| Kapitel 2 Versionen
|  | 2.1 Ursprung
|  |  | 2.1.1 Aktionen
|  |  | 2.1.2 ActionScript
|  |  | 2.1.3 ActionScript 2
|  |  | 2.1.4 JavaScript und ECMAScript
|  |  | 2.1.5 Java und ECMAScript 4
|  | 2.2 Alternativen und Ausblick
|  |  | 2.2.1 Standard- und Professional-Version
|  |  | 2.2.2 Alternativen zu Flash
|  |  | 2.2.3 Serverseitiges ActionScript
|  | 2.3 Umstieg
|  |  | 2.3.1 Altes ActionScript in neuen Flash-Versionen
|  |  | 2.3.2 Problemkind Flash 4
# Kapitel 2 Versionen #### Vergangenheit und Zukunft Woher kommt ActionScript, wo befindet sich ActionScript, und wohin geht ActionScript? ActionScript ist eine Programmiersprache, die nicht nur einen großen Sprachumfang besitzt, sondern auch eine umfangreiche Entwicklung hinter sich hat. Die Kenntnis der Entwicklung von Flash und ActionScript hilft, Zusammenhänge leichter zu erfassen und die Programmierung besser zu verstehen: Viele eigenartig anmutende Konzepte lassen sich aufgrund des Ursprungs leichter begreifen. Außerdem stehen je nach Version der Entwicklungsumgebung (z.B. Flash MX 2004) und Laufzeitumgebung (z.B. Flash Player 7) unterschiedliche Möglichkeiten zur Verfügung, die es bei einem Umstieg zu berücksichtigen gilt. ActionScript wird mittlerweile aber nicht mehr nur ausschließlich in Flash eingesetzt. Auch andere Programme verwenden diese Sprache in einer ähnlichen, wenn nicht sogar nahezu identischen Form. ## 2.1 Ursprung ##### Siehe Abwärtskompatibilität ab Seite 62 Um die Gegenwart besser zu verstehen und die Zukunft einschätzen zu können, ist es von Vorteil, die Vergangenheit zu kennen. Das gilt auch für ActionScript. Nicht nur das Erlernen und Begreifen wird enorm erleichtert, sondern auch die Entscheidung für eine Flash-Version, von denen es bekanntlich mittlerweile eine ganze Reihe gibt. Je geringer die gewählte Version ist, desto mehr Anwender erreichen Sie. Umgekehrt stehen Ihnen mit einer älteren Flash-Version aber auch weniger Möglichkeiten zur Verfügung. Die Programmiersprache ActionScript besitzt nicht nur einen, sondern gleich zwei Vorfahren: sozusagen Vater und Mutter. Wer jetzt der Vater und wer die Mutter ist, darüber kann man sich streiten, aber es steht fest, dass ActionScript aus den ursprünglichen Verhalten in Flash (den Aktionen) und ECMAScript (ein offizieller Standard für Skriptsprachen wie JavaScript und JScript) hervorgegangen ist. Mit Flash MX 2004 gesellt sich sogar noch ein Bruder namens ActionScript 2 hinzu, der sich weitestgehend an ECMAScript 4 orientiert, das von ECMAScript und Java abgeleitet ist.

Tabelle 2.1 Historie von ActionScript

Jahr | Ereignis
1995 | Die erste Version von JavaScript ist unter dem Namen LiveScript in einer Beta-Version von Netscape Navigator 2 enthalten.
1995 | In der finalen Version vom Netscape Navigator 2 ist LiveScript in JavaScript umbenannt.
1996 | Microsoft reagiert auf JavaScript mit der Einführung des weitgehend identischen JScript im Internet Explorer 3.
1996 | Die Arbeit an ECMAScript startet auf der Basis von JavaScript und JScript.
1997 | Macromedia veröffentlicht Flash 2, das Aktionen genannte Programmiermöglichkeiten bietet.
1997 | Serverseitiges JavaScript wird von Netscape eingeführt.
1997 | Die erste Version von ECMAScript wird veröffentlicht.
1998 | Macromedia veröffentlicht Flash 3 mit geringfügig erweiterten Aktionen.
1998 | Die zweite Version von ECMAScript wird veröffentlicht.
1999 | Macromedia veröffentlicht Flash 4, das die zu Perl und JavaScript ähnliche Programmiersprache namens ActionScript beinhaltet.
1999 | Die dritte Version von ECMAScript wird veröffentlicht.
2000 | Macromedia veröffentlicht Flash 5, das die Programmiersprache ActionScript auf der Basis von ECMAScript enthält.
2002 | Adobe veröffentlicht LiveMotion 2, das auf der Basis von ECMAScript eine mit ActionScript kompatible Sprache namens LiveMotion JavaScript verwendet.
2002 | Macromedia veröffentlicht Flash MX, das eine erweiterte Version von ActionScript enthält.
2002 | Macromedia führt serverseitiges ActionScript in Produkte wie z.B. ColdFusion MX ein.
2003 | Flash MX 2004 erscheint. Neben ActionScript gibt es nun auch eine Java-ähnliche Programmiermöglichkeit namens ActionScript 2, die auf ECMAScript 4 basiert.
2004 | Mit Flex bringt Macromedia einen Präsentationsserver auf den Markt, der auf der Basis von XML- und ActionScript 2-Dokumenten Flash-Anwendungen serverseitig generiert.
### 2.1.1 Aktionen ##### Flash 2 Bei den Aktionen handelt es sich um Verhalten (engl. Behaviours), die bereits seit Flash 2 verfügbar sind. Es gibt u.a. Verhalten, um zu einer anderen Webseite zu verzweigen oder das Abspielen des Films zu steuern. Diese Verhalten haben den Vorteil, dass ihr Einsatz nur weniger Kenntnisse bedarf. Alle notwendigen Angaben, die so genannten Parameter oder Argumente für ein Verhalten, werden in einer Art Formular eingetragen. Hier klicken, um das Bild zu Vergrößern Abbildung 2.1 Die Oberfläche von Flash 2 ##### Flash 3 Flash 3 ist nur geringfügig im Sprachumfang erweitert. Die wichtigste Änderung ist die Einführung von ersten Objekten namens Movieclips (auch Filmsequenzen genannt). Erst in Flash 4 hat sich die Programmiersprache von Flash grundlegend geändert. Die Idee und die Vorteile der Aktionen sind aber auch noch in Flash MX enthalten. Hier klicken, um das Bild zu Vergrößern Abbildung 2.2 Die Oberfläche von Flash 3 ### 2.1.2 ActionScript Hier klicken, um das Bild zu Vergrößern Abbildung 2.3 Die Oberfläche von Flash 4 ##### Flash 4 Seit Flash 4 bezeichnet Macromedia die Sammlung verschiedener Aktionen als ActionScript. In Flash 4 entspricht ActionScript am ehesten einer Mischung aus der von Larry Wall erfundenen Sprache Perl (http://www.wall.org/~larry/perl.html) und dem von Brendan Eich bei Netscape entworfenen JavaScript (http://developer.netscape.com/tech/javascript/index.html). Die Eingabe ist in Flash 4 zwar nur über »Zusammenklicken« und nicht mit Hilfe eines Texteditors möglich, trotzdem führte Macromedia in Flash 4 bereits wesentliche Elemente einer Programmiersprache ein. Dazu zählen Variablen zur Speicherung von Werten und Kontrollstrukturen, um den Ablauf eines Programms zu steuern. ##### ActionScript-Editor verbessern In Flash 4 und den vorhergehenden Versionen war der Editor zum Erstellen der Skripte recht unkomfortabel. Aus diesem Grund gibt es einige Hilfsmittel, um die Erstellung von Aktionen zu erleichtern, wie die folgende Tabelle zeigt.

Tabelle 2.2 Hilfsmittel zur Erstellung von ActionScripts in Flash 4

Produkt | Hersteller | URL | Preis | Bemerkung
Fast! | Grooveware Multimedia | http://www.swifftools.com/stools/ | Beta | Externer Editor. Wurde seit April 2000 nicht mehr weiterentwickelt.
FlaSE | Martin Fleck | http://www.flashtool.de/ | DM 29,00 | Externer Editor. Wird nicht mehr angeboten.
»Boblgum Patch« | »Boblgum« | http://www.mysterion.de | kostenlos | Vergrößert das ActionScript-Fenster. Wird nicht mehr angeboten.
##### Flash 5 Seit Flash 5 sind diese Hilfsmittel nicht mehr notwendig. Zusätzlich gibt es erste Bestrebungen, andere Editoren wie z.B. Dreamweaver oder Homesite für die Erstellung von ActionScripts zu erweitern. Nun handelt es sich bei ActionScript erstmals um eine »vollwertige« Programmiersprache ähnlich JavaScript inklusive aller hierfür erforderlichen Elemente (siehe »JavaScript und ECMAScript«, Seite 51). Der Begriff »Aktion« umfasst nicht mehr nur die vorgefertigten Verhalten, sondern eine ganze Menge an Befehlen und Anweisungen. Wie bei höheren Programmiersprachen üblich dürfen Befehle direkt in einem Editor eingegeben werden. Weiterhin steht ein intuitiver Modus für Einsteiger zur Verfügung. Hier klicken, um das Bild zu Vergrößern Abbildung 2.4 Die Oberfläche von Flash 5 Hier klicken, um das Bild zu Vergrößern Abbildung 2.5 Die Oberfläche von Flash MX In Flash MX verbesserte Macromedia die Arbeitsumgebung, die Hilfefunktionen, den Editor und den Debugger. Neben diesen »oberflächlichen« Weiterentwicklungen hat Macromedia auch an der Programmiersprache gefeilt. Abgesehen von einem enormen Funktionszuwachs ist die Sprache konsistenter und somit auch leichter zu erlernen. Ein Beispiel dafür sind die Movieclips, die sich jetzt universell als Schaltflächen einsetzen lassen, und ein überarbeitetes Ereignismodell. ### 2.1.3 ActionScript 2 ##### Die Spezifikation von ECMAScript 4 Die wesentlichsten Änderungen bezüglich ActionScript in Flash MX 2004 sind sicherlich die aus ECMAScript 4 entliehenen Strukturen und die Typisierung. Aber keine Sorge, die ursprüngliche Art der Programmierung funktioniert weiterhin. Hier klicken, um das Bild zu Vergrößern Abbildung 2.6 Flash MX 2004 (hier die Startseite der Professional-Version von Flash) Bei ECMAScript 4 handelt es sich ähnlich wie bei ECMAScript 3 (ECMA-262) um den Versuch, eine Programmiersprache zu standardisieren. In diesem Fall sind die Ideen der Java-Welt entliehen und sprechen so klassische Programmierer an. Die Strukturen umfassen deshalb Elemente aus der Objektorientierung (Klassen, Schnittstellen usw.) und die Möglichkeit, Typen für Variablen festzulegen. Beides hält den Programmcode modularer und leichter wartbar. Ein Muss für große und teamorientierte Projekte. Macromedia bezeichnet diese neue Art und Weise der Programmierung als ActionScript 2.0. Das Erstellen von »richtigen« Klassendateien beschränkt sich dabei jedoch auf die Professional-Variante von Flash und ist nicht in der Standard-Version enthalten. Neben den syntaktischen Veränderungen erschlägt Flash den Programmierer mit vielen neuen Objekten, die jedes für sich mit neuen Eigenschaften, Methoden und Ereignissen daherkommen. Außerdem bietet Macromedia – ebenfalls auf die Pro-Version beschränkt – zwei neue Modi für die Anwendungsentwicklung: Wer sich schon immer nicht mit der Zeitleiste anfreunden konnte, der darf sich jetzt über eine Diashow- und eine Formular-Metapher freuen. Gerade Letztere sollte Programmierern sehr entgegenkommen, da sie an bekannte Frameworks erinnert. ##### Typisierung ActionScript ist normalerweise alles andere als typsicher. D.h., in einer Variablen kann letztendlich jeder Datentyp von einer Zahl über eine Zeichenkette bis hin zu einem Objekt oder einer Funktion stecken. Bei sehr kleinen Projekten beschleunigt diese Flexibilität den Entwicklungsprozess zwar noch, doch bei großen Projekten führt dies eher zu Fehlern und Problemen. Deshalb ist es von Vorteil, wenn Sie den Typ einer Variablen zu Beginn festlegen und Flash – sollte einmal aus Versehen ein falscher Datentyp verwendet werden – Typfehler meldet, bevor diese eine Auswirkung auf andere Anweisungen und Berechnungen haben: var zahl:Number; // Folgende Anweisung ist nicht möglich zahl = "einszweidrei"; ### 2.1.4 JavaScript und ECMAScript ActionScript orientiert sich seit Flash 5 an dem ECMA 262-Standard (dem so genannten ECMAScript). Dabei handelt es sich um eine von der ECMA (European Computer Manufacturers Association) verfasste und offen gelegte Spezifikation (http://www.ecma.ch), die von Skriptsprachen wie JavaScript und JScript (Microsofts JavaScript-Variante) abgeleitet ist. Die Beschreibung des ECMA 262-Standards finden Sie auch auf der CD-ROM zum Buch. Bereits in Flash 5 konnte Macromedia einen großen Teil des ECMA 262-Standards umsetzen, auch wenn noch genügend Unterschiede existieren. Das führt dazu, dass sich das ebenfalls mit ECMAScript verwandte JavaScript und ActionScript sehr stark ähneln. Teilweise lassen sich sogar ganze JavaScripts eins zu eins nach Flash übertragen. Den aktuellen Wochentag ermitteln Sie in JavaScript innerhalb eines HTML-Dokumentes z.B. mit dem folgenden Script. ##### Beispiele\01_ Grundlagen\JavaScript gleich ActionScript
    <html>
    <head>
    <title>Wochentag</title>
    <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1">
    </head>
    <script language="JavaScript">
    function ermittleWochentag (datum) {
       var tage=["Sonntag", "Montag", "Dienstag", "Mittwoch",
    "Donnerstag", "Freitag", "Samstag"];
       return tage[datum.getDay()];
    }
    </script>
    <body>
       <p>
          <script language="JavaScript">
             document.write(ermittleWochentag(new Date()));
          </script>
       </p>
    </body>
    </html>
In einem Flash-Film mit dynamischem Textblock sieht ein vergleichbares Skript zur Ermittlung des Wochentages wie folgt aus:
    function ermittleWochentag (datum) {

       var tage=["Sonntag", "Montag", "Dienstag", "Mittwoch",
    "Donnerstag", "Freitag", "Samstag"];
       return tage[datum.getDay()];
    }
    wochentag=ermittleWochentag(new Date());
Die Kompatibilität zu ECMAScript konnte Macromedia mit Flash MX im Vergleich zu Flash 5 noch steigern, auch wenn nicht alle Vorgaben der ECMA erfüllt werden. Eine Liste der Unterschiede finden Sie in der folgenden Tabelle »Unterschiede zwischen ActionScript (Flash MX) und ECMAScript«. Das Beachten dieser Unterschiede hilft, unangenehme Überraschungen zu vermeiden.

Tabelle 2.3 Unterschiede zwischen ActionScript und ECMAScript

| ActionScript versus ECMAScript | Bemerkung
Ausnahmebehandlung | ActionScript bietet keine Möglichkeit, Ausnahmen (engl. Exceptions) zu behandeln, und auch das Fehlermanagement ist sehr beschränkt. ECMAScript bietet Fehlerobjekte und Anweisungen für die Ausnahmebehandlung wie try. | Mögliche Ausnahmesituationen einer Anwendung müssen im Vorfeld sehr genau erarbeitet und dann im Programm vermieden werden.
Browserspezifische Anweisungen und Objekte | ActionScript und ECMAScript unterstützen im Gegensatz zu JavaScript keine browserspezifischen Anweisungen und Objekte wie Document und Window. | Das Objektmodell der unterschiedlichen ECMAScript-Implementationen wie ActionScript und JavaScript unterscheidet sich je nach Einsatzgebiet.
eval-Funktion | Um den Flash Player klein zu halten, hat Macromedia auf die vollständige Implementierung der eval-Funktion aus ECMAScript verzichtet. Diese Funktion wertet in ActionScript nur Bezeichner aus und gibt deren Inhalt als Ergebnis zurück. | In Flash 5 darf eval auf der linken Seite einer Zuweisung verwendet werden. Seit Flash MX ist das nicht mehr möglich.
Flash-spezifische Anweisungen und Objekte | ActionScript unterstützt eine Reihe von Flash-spezifischen Anweisungen und Objekten wie z.B. Movieclips. Anwendungsspezifische Objekte sind in ECMAScript nicht enthalten. | Das Objektmodell der unterschiedlichen ECMAScript-Implementationen wie ActionScript und JavaScript unterscheidet sich je nach Einsatzgebiet.
Groß- und Kleinschreibung | ActionScript unterscheidet wie ECMAScript bei Schlüsselwörtern Groß- und Kleinschreibung (ECMAScript ist case-sensitiv); Bezeichner unterscheiden sich hinsichtlich der Groß- und Kleinschreibung im Gegensatz zu ECMAScript jedoch nicht. | Halten Sie sich in ActionScript an die Vorgaben bei der Groß- und Kleinschreibung von Schlüsselwörtern und Bezeichnern.
ifFrameLoaded | Die ifFrameLoaded-Anweisung wird von ECMAScript nicht unterstützt. | Verwenden Sie anstelle von ifFrameLoaded eine Kombination aus der Eigenschaft _framesloaded und der if-Anweisung;
Reguläre Ausdrücke | Um den Flash Player klein zu halten, hat Macromedia auf die Implementierung des RegExp-Objektes aus ECMAScript für reguläre Ausdrücke verzichtet. | Ein Objekt für reguläre Ausdrücke kann bei Bedarf zusätzlich im Programm definiert werden.
Schrägstrichsyntax | Aus Kompatibilitätsgründen können Objektpfade in Flash auch durch die so genannte Schrägstrichsyntax angegeben werden, die von ECMAScript nicht unterstützt wird. | Verwenden Sie falls möglich die seit Flash 5 verfügbare Punktsyntax.
tellTarget | Die tellTarget-Anweisung wird von ECMAScript nicht unterstützt. | Verwenden Sie falls möglich anstelle von tellTarget z.B. die seit Flash 5 verfügbare with-Anweisung.
Umwandlung einer Zeichenkette in einen booleschen Wert | ActionScript konvertiert eine Zeichenkette (String) bei der Umwandlung in einen booleschen Wert (Boolean) zuerst in eine Zahl und erst dann in einen booleschen Wert. Dies führt dazu, dass eine Zeichenkette, die in den Wert 0 umgewandelt werden kann, als Ergebnis false ergibt, andernfalls ist das Ergebnis true; ECMAScript gibt bei Zeichenketten mit einer Länge größer null true und sonst false zurück. |
Umwandlung eines undefinierten Werts in eine Zahl | ActionScript konvertiert undefinierte Objekte (undefined) aus Gründen der Kompatibilität zu Flash 4 bei der Umwandlung in eine Zahl in den Wert 0; ECMAScript gibt NaN zurück. |
Umwandlung eines undefinierten Werts in eine Zeichenkette | ActionScript konvertiert undefinierte Objekte (undefined) aus Gründen der Kompatibilität zu Flash 4 bei der Umwandlung in eine Zeichenkette in eine leere Zeichenkette ""; ECMAScript gibt undefined zurück. |
With-Anweisung | ActionScript erlaubt maximal acht ineinander geschachtelte with-Anweisungen. In ECMAScript dürfen beliebig viele with-Anweisungen verschachtelt werden. | Vermeiden Sie ineinander geschachtelte with-Anweisungen, und verwenden Sie an deren Stellen z.B. Variablen mit den Zeigern auf die Objekte.
Funktionskonstruktor | ActionScript bietet zwar wie ECMAScript ein Funktionsobjekt, dieses besitzt aber keinen Konstruktor. | Verwenden Sie zum Erstellen einer Funktion die »normale« Funktionsdeklaration bzw. die Inline-Schreibweise (siehe Kapitel 9, Fuktionen).
### 2.1.5 Java und ECMAScript 4 Die Programmierung mit ActionScript 2.0 basiert auf dem ECMAScript 4-Entwurf (ECMA TC39-TG1), den Sie auch unter http://www.mozilla.org/js/language/es4/index.html finden. Bitte beachten Sie, dass ECMAScript 4 noch nicht fertig ist und sich noch ändern kann. Aus diesem Grund entspricht ActionScript 2 nicht exakt diesem Standard, sondern orientiert sich nur an diesem. ##### Der traditionelle Weg Auch wenn die Programmierung mit ActionScript 2.0 der seit Flash MX 2004 empfohlene Weg der Anwendungsentwicklung ist, darf weiterhin mit ActionScript 1.0 gearbeitet werden. Zur Pflege vorhandener Projekte ist dies oft unerlässlich. Bei eher gestalterisch orientierten Filmen, die viel Gebrauch von der Zeitleiste machen, ist dies – sofern wenige Benutzerinteraktionen vorhanden sind – ebenfalls durchaus vertretbar. Und aufgrund der weitestgehend identischen Arbeitsweise der beiden ActionScript-Versionen sind gute Kenntnisse in ActionScript 1.0 eine optimale Grundlage für die Arbeit mit ActionScript 2.0. Manch ein eigentümliches Verhalten der zweiten ActionScript-Version lässt sich ohnehin erst mit diesem Wissen verstehen. ActionScript 2.0 wird bereits ab dem Flash Player 6 unterstützt. Der Umfang der neuen Sprachelemente in ActionScript 2.0 ist zwar im Vergleich zu ActionScript 1.0 nur klein, die Änderungen haben aber eine große Auswirkung auf den eigentlichen Entwicklungsprozess:
| class
| extends
| implements
| interface
| dynamic
| static
| public
| private
| get
| set
| import
Dabei fällt auf, dass diese Sprachelemente weitestgehend aus der Java-Welt entliehen sind und auch meist so wie dort funktionieren. Kein Wunder, schließlich orientiert sich auch ECMAScript 4 an Java. Und so wie jede »vernünftige« Programmiersprache aus Informatikersicht betrachtet beispielsweise typsicher ist, haben die Macromedia-Leute in San Francisco auch diesen Entwicklerwunsch erfüllt. Im Übrigen unterstützt ActionScript 2.0 alle Sprachelemente von ActionScript 1.0.
<< zurück | <top> | vor >>
Zum Katalog
ActionScript 1 und 2 bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| Einstieg in ActionScript
| Einstieg in Flash 8
| Flash 8 und PHP
| Flash 8-Tutorials
| Dreamweaver 8
| Webseiten programmieren und gestalten
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Design]
Galileo Press GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de