Galileo Design < openbook > Galileo Design - Know-how für Kreative.
Know-how für Kreative

 << zurück
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/)
Objektorientierung und Codedesign mit Flash MX 2004
Buch: ActionScript 1 und 2

ActionScript 1 und 2
672 S., mit CD, Referenzkarte, 44,90 Euro
Galileo Design
ISBN 3-89842-221-6
gp Kapitel 2 Versionen
  gp 2.1 Ursprung
    gp 2.1.1 Aktionen
    gp 2.1.2 ActionScript
    gp 2.1.3 ActionScript 2
    gp 2.1.4 JavaScript und ECMAScript
    gp 2.1.5 Java und ECMAScript 4
  gp 2.2 Alternativen und Ausblick
    gp 2.2.1 Standard- und Professional-Version
    gp 2.2.2 Alternativen zu Flash
    gp 2.2.3 Serverseitiges ActionScript
  gp 2.3 Umstieg
    gp 2.3.1 Altes ActionScript in neuen Flash-Versionen
    gp 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.


Galileo Design - Zum Seitenanfang

2.1 Ursprung  downtop

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.


Galileo Design - Zum Seitenanfang

2.1.1 Aktionen  downtop

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.

Abbildung
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.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 2.2   Die Oberfläche von Flash 3


Galileo Design - Zum Seitenanfang

2.1.2 ActionScript  downtop

Abbildung
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.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 2.4   Die Oberfläche von Flash 5

Abbildung
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.


Galileo Design - Zum Seitenanfang

2.1.3 ActionScript 2  downtop

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.

Abbildung
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";


Galileo Design - Zum Seitenanfang

2.1.4 JavaScript und ECMAScript  downtop

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).


Galileo Design - Zum Seitenanfang

2.1.5 Java und ECMAScript 4  toptop

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:

gp  class
gp  extends
gp  implements
gp  interface
gp  dynamic
gp  static
gp  public
gp  private
gp  get
gp  set
gp  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
  
  Zum Katalog
Zum Katalog: ActionScript 1 und 2
ActionScript 1 und 2
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Einstieg in ActionScript - Aktuell zu Flash 8






 Einstieg in ActionScript


Zum Katalog: Einstieg in Flash 8






 Einstieg in Flash 8


Zum Katalog: Flash 8 und PHP






 Flash 8 und PHP


Zum Katalog: Flash 8-Tutorials






 Flash 8-Tutorials


Zum Katalog: Dreamweaver 8






 Dreamweaver 8


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten programmieren und gestalten


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





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