Zum Inhalt springen

„ActionScript“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
wikilinks
 
(239 dazwischenliegende Versionen von mehr als 100 Benutzern, die nicht angezeigt werden)
Zeile 1: Zeile 1:
{{Infobox Programmiersprache
'''ActionScript''' (kurz: ''AS'') ist eine proprietäre Scriptsprache des US-amerikanischen Softwareunternehmen [[Adobe Systems]] auf Basis des [[ECMAScript]]-Standards ([[Ecma|ECMA]]-262).
|Logo = [[Datei:Farm-Fresh page white actionscript.png]]
(Ursprünglich von Firma [[Macromedia]], welche jedoch im Dez. 2005 von [[Adobe Systems]] aufgekauft wurde.)
|Name = ActionScript
|Paradigma = [[Objektorientierte Programmierung|objektorientiert]]
|Entwickler = [[Adobe Inc.]] (früher [[Macromedia]])
|Designer = Gary Grossman
|AktuelleVersion = 3.0
|AktuelleVersionFreigabeDatum = 27. Juni 2006
|Typisierung = [[Starke Typisierung|stark]], [[Statische Typisierung|statisch]]
|Beeinflusst_von = [[JavaScript]], [[Java (Programmiersprache)|Java]]
|Beeinflusste = [[Haxe (Programmiersprache)|Haxe]]
|Betriebssystem = [[Plattformunabhängigkeit|plattformunabhängig]]
|Website = [http://help.adobe.com/de_DE/as3/learn/ help.adobe.com/de_DE/as3/learn]
}}


'''ActionScript''' ('''AS''') ist eine [[Programmiersprache]] des US-amerikanischen Softwareunternehmens [[Adobe Inc.]] auf Basis des [[JavaScript|ECMAScript]]-Standards ([[Ecma International|ECMA]]-262) für Programme, die für [[Adobe Flash]], [[Adobe Flex|Flex]] oder [[Adobe Integrated Runtime|Air]] entwickelt werden. Durch die Klassenbibliotheken von Adobe ermöglicht ActionScript einen programmierten Zugriff auf die grafischen und technischen Möglichkeiten der Flash-Umgebung. Es lassen sich [[Rich Internet Application]]s, Desktop-Anwendungen (Adobe Air) und Apps für [[Apple iOS]], [[Android (Betriebssystem)|Android]] und [[Blackberry OS]] erstellen. Die Sprache wurde ursprünglich von [[Macromedia]] entwickelt, das im Dezember 2005 von Adobe Systems übernommen wurde.
Es handelt sich hierbei um eine programminterne Sprache der Entwicklungsumgebung [[Macromedia Flash]], die vom sogenannten Flash-Player (eigenständig oder als [[Browser-Plugin]]) beim Abspielen eines Films interpretiert wird. Der ActionScript-Code kann sowohl in die FLA-Dateien integriert werden, als auch als externe Textdatei bei Erstellung einer SWF-Datei nachgeladen werden. Laut einer Statistik von Macromedia verfügen über 95 % aller Browser über ein Flash-Player-Plugin.


== Funktion ==
Macromedia Flash enthält eine [[integrierte Entwicklungsumgebung]] (IDE), die sowohl [[Script]]entwicklung als auch deren [[Debuggen]] unterstützt. Mittlerweile gibt es auch eine Reihe kommerzieller Tools sowie [[Open Source|Open-Source]]-Bibliotheken (z. B. Ming bei [[PHP]]), die es ebenfalls ermöglichen Flash-Filme mit ActionScript zu erzeugen.
Während ursprünglich [[Adobe Flash]] die einzige [[Integrierte Entwicklungsumgebung|integrierte Entwicklungsumgebung (IDE)]] für die ActionScript-Programmierung darstellte, wird die Sprache mittlerweile von zahlreichen Entwicklungsumgebungen unterstützt. Zu ihnen zählen das frei verfügbare [[FlashDevelop]] sowie die proprietären Programme ''FDT'' und [[IntelliJ IDEA]]. Adobe bietet zur Entwicklung von ActionScript-basierten Applikationen [[Adobe Flash Builder]] an, welches auf [[Eclipse (IDE)|Eclipse]] basiert und sowohl allein lauffähig ist, als auch mit einem Plugin ausgeliefert wird, das alternativ zur Benutzung des Programms selbst in eine bestehende Eclipse-Entwicklungsumgebung integriert werden kann. Anwendungen wie [[Ming (Softwarebibliothek)|Ming]] und [[OpenLaszlo]] ermöglichen die serverseitige Erstellung von ''SWF-Dateien''.


== Versionen ==
ActionScripts arbeiten stets ereignisorientiert – werden also nur nach einem eingetretenem Ereignis ausgeführt.
; ActionScript 1: wurde 1999 in der Version 4 des Flash Players eingeführt, der damals von Macromedia entwickelt wurde. ActionScript 1 beherrschte nur rudimentäre Steuerungsfunktionen, um eine Präsentation interaktiv gestalten zu können. Objektorientierung ist in ActionScript 1 als prototypisierte Objektorientierung verfügbar.


; ActionScript 2: ist eine zur Vorgängerversion kompatible objektorientiertere Erweiterung der Sprache, die mit Flash MX 2004 und dem Flash Player 7 vorgestellt wurde. Die [[Prototypenbasierte Programmierung|prototypisierte]] Objektorientierung aus der ersten Version wurde mit einer neuen Syntax gekapselt, die Syntax- und [[Programmierparadigma|Programmierparadigmen]] aus Java und C++ übernahm und klassenbasierte Entwicklung ermöglichte. Die Prototypkette ist jedoch erhalten geblieben und am Vererbungsmechanismus hat sich in dieser Version nichts geändert.
Einige Ereignisse, die ausgewertet werden können:
* Schlüsselbilder – Sobald der Player ein bestimmtes Schlüsselbild abspielt
* Schaltflächen-Symbole – Der Nutzer fährt mit der Maus über eine Schaltfläche oder klickt diese an
* MovieClip-Symbole – Eingebettete MovieClips lösen selbst Ereignisse aus


Seit der Einführung von ActionScript 3 wurde die API von ActionScript 1 und 2 nicht mehr weiterentwickelt, wird für die [[Abwärtskompatibilität]] jedoch auch noch in aktuellen Versionen des Flash Players unterstützt. Flex- und AIR-Anwendungen können ausschließlich in ActionScript 3 entwickelt werden.
== Konventionen/Syntax ==
=== ActionScript ===
Da ActionScript sowie auch [[JavaScript]] auf dem ECMAScript-Standard aufbauen, bestehen Ähnlichkeiten in der Syntax zwischen den beiden Sprachen.
Trotzdem unterscheiden sich beide jedoch grundlegend: Während JavaScript hauptsächlich aus dem [[Webbrowser|Browser]]-Umfeld bekannt ist und dort mit Fenster-, Dokument- und Formular-[[Objekt (objektorientierte Programmierung)|Objekt]]en arbeitet, arbeitet ActionScript mit MovieClips, [[Textfeld]]ern und Klängen.


; ActionScript 3: wurde 2006 mit dem Flash Player 9 eingeführt und ermöglicht eine [[Klasse (Objektorientierung)|klassenbasierte]] [[Objektorientierung]]. Diese Version stellt somit eine große, nichtkompatible Erweiterung der Sprache dar, die auf Entwürfen zu ECMAScript 4 beruht. U. a. unterstützt AS3 die [[Typisierung (Informatik)|Typisierung]] zur Laufzeit. Gerade diese großen Änderungen führten zum Abbruch der Entwicklung von ECMAScript 4.0, sodass ActionScript 3 ein isolierter Vertreter dieses Sprachentwurfs ist.
=== ActionScript 2 ===
Mit ActionScript 2 (AS2) gibt es seit Flash MX 2004 eine [[Java (Programmiersprache)|Java]]-ähnliche Programmiersprache, die sich an einem Entwurf für ECMAScript 4 <ref> ECMAScript 4 - http://www.mozilla.org/js/language/es4/</ref> orientiert. AS2 wird ab der Flash-Player-Version 6.0.65.0 unterstützt.


== Erweiterbarkeit ==
Der Unterschied der beiden Skriptversionen liegt vor allem darin, dass AS2 ausschließlich in externen Dateien beschränkt ist, die von Flash automatisch erkannt werden. Innerhalb dieser ActionScript-Dateien darf jeweils nur eine Klasse definiert werden. Eine mehrfach Vererbung oder die Bildung von abstrakten Klassen ist in ActionScript 2.0 nicht möglich.
Über die Objektorientierung kann auf Basis von ActionScript über quelloffene Klassenpakete und binäre Klassenbibliotheken erweiterte Funktionalität bereitgestellt werden. Diese können in Flash- oder Flex-Projekte eingebunden werden. Bei den Klassenbibliotheken handelt es sich um ZIP-Archive mit der [[Dateinamenserweiterung|Dateiendung]] SWC, die neben ActionScript-Code alle Datenformate enthalten können, die auch in SWFs eingebettet werden können. Auf diese Weise können in diesen Dateien neben ActionScript-Logik auch als Komponenten (konfigurierbare GUI-Elemente für Flash oder Flex) gestaltete Elemente weitergegeben werden.


Neben den umfangreichen Klassenbibliotheken, die Adobe mit dem proprietären [[Adobe Flash]] oder dem freien ''Flex SDK'' ausliefert, gibt es eine Vielzahl freier, kostenloser oder kommerzieller Angebote anderer Entwickler und Firmen. Sie erweitern den Funktionsumfang der Kernsprache zum Teil erheblich und stellen auf Basis der Grundfunktionen von Sprache und Plattform Features, wie z.&nbsp;B. Tweening- oder 3D-Funktionalitäten, zur Verfügung.
===== ActionScript 2 Syntax =====
// Adressierung der Klasse
'''import''' tld.domain.projekt.*;
'''class''' SportTreiben
{
'''function''' SportTreiben()
{
'''trace'''("ich treibe Sport");
// ein Aufruf einer internen Funktion
aufwaermen();
}
// ein Aufruf der nur innerhalb der Klasse gilt wird mit "private" gekennzeichnet
'''private function''' aufwaermen():'''Void'''
{
'''trace'''("ich wärme mich jetzt auf, mit " + addiere (1, 5) + " Liegestuetzen");
}
// ein Aufruf der auch von außerhalb erfolgen kann, wird mit "public" gekennzeichnet
// Methoden ohne Rückgabewert sind vom Typ Void, auch leer bezeichnet
'''public function''' trainiereGolf():'''Void'''
{
'''trace'''("ich trainiere jetzt Golf");
}
// Parametertypen werden mittels : vom Parameternamen getrennt
// der Rückgabetypus der Methode wird hinter der ) Klammer, ebenfalls nach einem : definiert
'''private function''' addiere (a1:'''Number''', a2:'''Number'''):'''Number'''
{
// der Rückgabewert vom Typ Number wird mittels return übergeben
'''return''' a1 + a2;
}
}


== Laufzeitumgebung ==
===== Anwendung in der *.fla-Datei =====
ActionScript 3 wird in der ActionScript Virtual Machine 2 (AVM2) ausgeführt, während die Vorgängerversionen in der AVM1 ausgeführt werden. Zwischen beiden [[Virtuelle Maschine|virtuellen Maschinen]] ist keine nahtlose oder direkte Kommunikation möglich, so dass ActionScript 1 und 2 getrennt von ActionScript 3 laufen.
// Importieren der Klasse
'''import''' tld.domain.project.*
'''var''' sport:SportTreiben = '''new''' SportTreiben();
/* Ausgabe im Ausgabefenster:
* ich treibe Sport
* ich wärmen mich jetzt auf, mit 6 Liegestuetzen */
sport.trainiereGolf();
/* Ausgabe im Ausgabefenster:
* ich trainiere jetzt Golf */


=== Schreibweise ===
== Siehe auch ==

[[Funktion]]snamen und [[Variablen]] sollten mit einem kleinen Buchstaben beginnen. [[Objekt (objektorientierte Programmierung)|Objekt]]e sollten großgeschrieben werden. Der erste Buchstabe jedes Teilwortes sollte in beiden Fällen großgeschrieben werden.

Beispiele:
* [[Objekt (objektorientierte Programmierung)|Objekt]]e: ProductInformation, MovieController
* [[Variable]]n: userName, myHtml, rawXml

==== Textvervollständigung ====

*Der ActionScript-Editor unterstützt [[Textvervollständigung]] – dies aber nur, wenn sich die Namen an ein bestimmtes Format halten:

*Durch die in AS 2.0 nötig gewordene [[Typisierung (Informatik)|Typisierung]], kann auf die Suffixe verzichtet werden, da der AS-Editor die typisierten Namen interpretieren kann.
{|style="border: 1px solid #CCCCCC;" border="0" cellpadding="2" cellspacing="0"
|+''Unterstützte Suffixe für die Textvervollständigung''
!align="left" height="20" width="140" bgcolor=#E8E8E8|Objekt-Typ
!align="left" width="140" bgcolor=#E8E8E8|Suffix
!align="left" width="170" bgcolor=#E8E8E8|Beispiel
|-
!align="left" bgcolor=#F3F3F3| [[Array]]
|align="left" | _array
|align="left" | meinArray_array
|-
!align="left" bgcolor=#F3F3F3| Button
|align="left" | _btn
|align="left" | meinButton_btn
|-
!align="left" bgcolor=#F3F3F3| Camera
|align="left" | _cam
|align="left" | meineCamera_cam
|-
!align="left" bgcolor=#F3F3F3| Color
|align="left" | _color
|align="left" | meinColor_color
|-
!align="left" bgcolor=#F3F3F3| ContextMenu
|align="left" | _cm
|align="left" | meinContextMenu_cm
|-
!align="left" bgcolor=#F3F3F3| ContextMenuItem
|align="left" | _cmi
|align="left" | meinContextMenuItem_cmi
|-
!align="left" bgcolor=#F3F3F3| Date
|align="left" | _date
|align="left" | meinDate_date
|-
!align="left" bgcolor=#F3F3F3| Error
|align="left" | _err
|align="left" | meinError_err
|-
!align="left" bgcolor=#F3F3F3| LoadVars
|align="left" | _lv
|align="left" | meineVar_lv
|-
!align="left" bgcolor=#F3F3F3| LoadConnection
|align="left" | _lc
|align="left" | meinConnection_lc
|-
!align="left" bgcolor=#F3F3F3| Microphone
|align="left" | _mic
|align="left" | meinMicro_mic
|-
!align="left" bgcolor=#F3F3F3| MovieClip
|align="left" | _mc
|align="left" | meinMovieClip_mc
|-
!align="left" bgcolor=#F3F3F3| MovieClipLoader
|align="left" | _mcl
|align="left" | meinLoader_mcl
|-
!align="left" bgcolor=#F3F3F3| PrintJob
|align="left" | _pj
|align="left" | meinPrint_pj
|-
!align="left" bgcolor=#F3F3F3| NetConnection
|align="left" | _nc
|align="left" | meinConnection_nc
|-
!align="left" bgcolor=#F3F3F3| NetStream
|align="left" | _ns
|align="left" | meinStream_ns
|-
!align="left" bgcolor=#F3F3F3| SharedObject
|align="left" | _so
|align="left" | meinObject_so
|-
!align="left" bgcolor=#F3F3F3| [[Sound]]
|align="left" | _sound
|align="left" | meinSound_sound
|-
!align="left" bgcolor=#F3F3F3| [[String]]
|align="left" | _str
|align="left" | meinString_str
|-
!align="left" bgcolor=#F3F3F3| TextField
|align="left" | _txt
|align="left" | meinTextField_txt
|-
!align="left" bgcolor=#F3F3F3| TextFormat
|align="left" | _fmt
|align="left" | meinFormat_fmt
|-
!align="left" bgcolor=#F3F3F3| Video
|align="left" | _video
|align="left" | meinVideo_video
|-
!align="left" bgcolor=#F3F3F3| [[XML]]
|align="left" | _xml
|align="left" | meinXML_xml
|-
!align="left" bgcolor=#F3F3F3| XMLNode
|align="left" | _xmlnode
|align="left" | meinNode_xmlnode
|-
!align="left" bgcolor=#F3F3F3| XMLSocket
|align="left" | _xmlsocket
|align="left" | meinSocket_xmlsocket
|}

=== Kommentare ===
Es wird allgemein empfohlen, schon während der Entwicklung genügend Kommentare in den Code einzufügen, der die Funktionsweise beschreibt. Ein außenstehender [[Entwickler]] sollte in der Lage sein, sich mithilfe der Kommentare schnell einzuarbeiten und den Code weiterzuentwickeln.

var clicks:Number = 0; // Dies ist ein einzeiliger Kommentar.

/*
* Dies ist ein Kommentar,
* der sich über mehrere Zeilen erstreckt.
*
*/

=== Zugriff auf Variablen ===
this._parent.myVar.blah = 100; // Benutzen Sie relative Bezeichnungen wie diesen
_root.myClip = 200; // Vermeiden Sie absolute Bezeichner wie diesen
_global.myVar = 300; // _global-Variablen sind in allen Movies im Player verfügbar

=== Actions ===
* Wenn immer möglich, sollte der Code an einer Stelle zusammengehalten werden – vorzugsweise im Frame 1 der Zeitleiste (Sollte ein [[Preloader]] verwendet werden, kann es notwendig sein, den Code erst im Frame 2 zu plazieren). Dies macht das Wiederfinden und [[Debugging]] später einfacher.
* Große Code-Blöcke sollten in logische Teile mit Kommentaren segmentiert werden.
* Vermeiden Sie, Code an MovieClips oder Buttons zu binden – hier sollten nur Funktionsaufrufe stehen. Die Funktionen als solche können in einen Frame oder in eine ActionScript-Klasse (*.as-Datei) geschrieben werden.

// CODE IM BUTTON – nicht empfohlen
on (release) {
play();
}

// CODE IM FRAME – Empfehlung
// (der Buttoninstanz muss dazu ein Instanzname gegeben werden
// hier also: myButton_btn)
myButton_btn.onRelease = function() {
play();
}

=== Quellen ===
Die oben genannten Informationen stellen eine Zusammenfassung dieses Artikels:
*[http://www.macromedia.com/devnet/mx/flash/whitepapers/actionscript_standards.pdf ActionScript-Programmierstil-Standards] (PDF, englisch) von Macromedia
<references/>


* [[Apache Flex]]
* [[ECMAScript for XML]] Teil des Spachstandards zu Verarbeitung von XML


== Literatur ==
== Literatur ==
* Michael Weigend: ''Adobe Flash CS5 mit ActionScript 3. Praxiseinstieg''. mitp, 2011, ISBN 978-3826690839.
* Caroline und Matthias Kannengiesser: ''Durchstarten mit Flash 8 - HotStuff''. Franzis, Deutschland 2006, ISBN 3-7723-7580-4
* Christian Dyadio und Bela Halasz: ''Flash 8 Easy''. Markt und Technik, Deutschland 2006, ISBN 3-8272-4040-9
* Tobias Hauser, Armin Kappler und Christian Wenz: ''Das Praxisbuch ActionScript 3''. Galileo Design, 2010, ISBN 978-3836215657.
* Caroline und Matthias Kannengiesser: ''ActionScript Praxisbuch – Studienausgabe''. Franzis, Deutschland 2005, ISBN 3-7723-6645-7
* Colin Moock: ''Essential ActionScript 3.0''. O’Reilly Verlag, 2007, ISBN 978-0596526948.
* Colin Moock: ''ActionScript 3.0 Design Patterns''. O’Reilly Verlag, 2007, ISBN 978-0596528461.
* Caroline und Matthias Kannengiesser: ''Flash MX 2004 - Professional.'' Franzis, Deutschland 2005, ISBN 3-7723-7995-8
* Colin Moock: ''Essential ActionScript 2.0''. O’Reilly Verlag, 2004, ISBN 978-0596006525.
* Sascha Wolter und Marc Thiele: ''Flash MX 2004 - Standard- und Professional-Version'' Galileo Press, Deutschland 2004, ISBN 3-8984-2468-5
* Norbert Busche: ''Das Einsteigerseminar Macromedia Flash MX 2004'' vmi, Deutschland 2004, ISBN 3-8266-7276-3
* Norbert Busche: ''Das Einsteigerseminar Macromedia Flash-MX-2004-Programmierung mit ActionScript 2.0'', vmi, Deutschland 2004, ISBN 3-8266-7277-1
* Colin Moock: ''ActionScript für Flash MX - Das Handbuch'' [[O'Reilly Verlag]] 2003 ISBN 3-89721-354-0 (deutsche Übersetzung)
* Colin Moock: ''ActionScript für Flash MX - Die Referenz'' [[O'Reilly Verlag]] 2003 ISBN 3-89721-355-9 (deutsche Übersetzung)

== Siehe auch ==
{{Wikibooks|ActionScript}}
* [[Macromedia Flex]]


== Weblinks ==
== Weblinks ==
* [http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=Part2_AS2_LangRef_1.html ActionScript 2.0 Referenzhandbuch] (von Adobe)

* [http://livedocs.macromedia.com/flash/8_de/main/wwhelp/wwhimpl/js/html/wwhelp.htm?href=Part4_ASLR2.html ActionScript 2.0 Referenzhandbuch (von Macromedia)] (deutsch)
* [http://help.adobe.com/de_DE/FlashPlatform/reference/actionscript/3/ ActionScript 3.0 Referenzhandbuch] (von Adobe)
* [http://www.wikiflash.de/doku.php ActionScript Dokumentation] (deutsch)
* [http://help.adobe.com/de_DE/ActionScript/3.0_ProgrammingAS3/ ActionScript 3.0 Arbeitshandbuch] (von Adobe)
* [http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions ActionScript 3.0 Coding Conventions] (englisch)
* [http://www.ecma-international.org/publications/standards/Ecma-262.htm ECMAScript-Sprachspezifikation] (englisch)
* [http://www.ecma-international.org/publications/standards/Ecma-262.htm ECMAScript-Sprachspezifikation] (englisch)
* [http://www.flashpower.de/ Codeschnipsel- und Prototype-Archiv] (deutsch)
* [http://www.flashforum.de FlashForum] (Deutschsprachige Flash Usergroup)
* [http://www.kurztutorial.info/actionscript3/inhalt.htm Einführung Actionscript 3.0 ]
* [http://www.flashstar.de/tutlist/ Zahlreiche nützliche Beispiele und Tutorials] (deutsch)
* [http://www.actionscript.org Eine Vielzahl nützlicher Tutorials (von Macromedia)] (englisch)
* [http://www.swftools.org as3compile] freier Compiler für ActionScript 3.0
* [http://ming.sf.net MING: Open-Source-Bibliothek zur Erstellung von Flash und ActionScript] (englisch)
* [http://www.codedrive.com/ CodeDrive] Compiler für ActionScript 3.0
* [http://mtasc.org MTASC: Alternativer ActionScript-2-Compiler] (englisch)
* [http://www.flashforum.de Flashforum: Das größte deutschsprachige Forum zu Flash und ActionScript] (deutsch)


[[Kategorie:Skriptsprache]]
[[Kategorie:Skriptsprache]]
[[Kategorie:JavaScript]]

[[Kategorie:Objektorientierte Programmiersprache]]
[[cs:ActionScript]]
[[en:ActionScript]]
[[es:ActionScript]]
[[fr:ActionScript]]
[[gl:ActionScript]]
[[he:ActionScript]]
[[it:ActionScript]]
[[ja:ActionScript]]
[[nl:ActionScript]]
[[pl:ActionScript]]
[[pt:ActionScript]]
[[ru:ActionScript]]
[[sv:ActionScript]]
[[zh:ActionScript]]

Aktuelle Version vom 11. Mai 2025, 19:25 Uhr

ActionScript
Basisdaten
Paradigmen: objektorientiert
Erscheinungsjahr: 1998
Designer: Gary Grossman
Entwickler: Adobe Inc. (früher Macromedia)
Aktuelle Version: 3.0  (27. Juni 2006)
Typisierung: stark, statisch
Beeinflusst von: JavaScript, Java
Beeinflusste: Haxe
Betriebssystem: plattformunabhängig
help.adobe.com/de_DE/as3/learn

ActionScript (AS) ist eine Programmiersprache des US-amerikanischen Softwareunternehmens Adobe Inc. auf Basis des ECMAScript-Standards (ECMA-262) für Programme, die für Adobe Flash, Flex oder Air entwickelt werden. Durch die Klassenbibliotheken von Adobe ermöglicht ActionScript einen programmierten Zugriff auf die grafischen und technischen Möglichkeiten der Flash-Umgebung. Es lassen sich Rich Internet Applications, Desktop-Anwendungen (Adobe Air) und Apps für Apple iOS, Android und Blackberry OS erstellen. Die Sprache wurde ursprünglich von Macromedia entwickelt, das im Dezember 2005 von Adobe Systems übernommen wurde.

Während ursprünglich Adobe Flash die einzige integrierte Entwicklungsumgebung (IDE) für die ActionScript-Programmierung darstellte, wird die Sprache mittlerweile von zahlreichen Entwicklungsumgebungen unterstützt. Zu ihnen zählen das frei verfügbare FlashDevelop sowie die proprietären Programme FDT und IntelliJ IDEA. Adobe bietet zur Entwicklung von ActionScript-basierten Applikationen Adobe Flash Builder an, welches auf Eclipse basiert und sowohl allein lauffähig ist, als auch mit einem Plugin ausgeliefert wird, das alternativ zur Benutzung des Programms selbst in eine bestehende Eclipse-Entwicklungsumgebung integriert werden kann. Anwendungen wie Ming und OpenLaszlo ermöglichen die serverseitige Erstellung von SWF-Dateien.

ActionScript 1
wurde 1999 in der Version 4 des Flash Players eingeführt, der damals von Macromedia entwickelt wurde. ActionScript 1 beherrschte nur rudimentäre Steuerungsfunktionen, um eine Präsentation interaktiv gestalten zu können. Objektorientierung ist in ActionScript 1 als prototypisierte Objektorientierung verfügbar.
ActionScript 2
ist eine zur Vorgängerversion kompatible objektorientiertere Erweiterung der Sprache, die mit Flash MX 2004 und dem Flash Player 7 vorgestellt wurde. Die prototypisierte Objektorientierung aus der ersten Version wurde mit einer neuen Syntax gekapselt, die Syntax- und Programmierparadigmen aus Java und C++ übernahm und klassenbasierte Entwicklung ermöglichte. Die Prototypkette ist jedoch erhalten geblieben und am Vererbungsmechanismus hat sich in dieser Version nichts geändert.

Seit der Einführung von ActionScript 3 wurde die API von ActionScript 1 und 2 nicht mehr weiterentwickelt, wird für die Abwärtskompatibilität jedoch auch noch in aktuellen Versionen des Flash Players unterstützt. Flex- und AIR-Anwendungen können ausschließlich in ActionScript 3 entwickelt werden.

ActionScript 3
wurde 2006 mit dem Flash Player 9 eingeführt und ermöglicht eine klassenbasierte Objektorientierung. Diese Version stellt somit eine große, nichtkompatible Erweiterung der Sprache dar, die auf Entwürfen zu ECMAScript 4 beruht. U. a. unterstützt AS3 die Typisierung zur Laufzeit. Gerade diese großen Änderungen führten zum Abbruch der Entwicklung von ECMAScript 4.0, sodass ActionScript 3 ein isolierter Vertreter dieses Sprachentwurfs ist.

Erweiterbarkeit

[Bearbeiten | Quelltext bearbeiten]

Über die Objektorientierung kann auf Basis von ActionScript über quelloffene Klassenpakete und binäre Klassenbibliotheken erweiterte Funktionalität bereitgestellt werden. Diese können in Flash- oder Flex-Projekte eingebunden werden. Bei den Klassenbibliotheken handelt es sich um ZIP-Archive mit der Dateiendung SWC, die neben ActionScript-Code alle Datenformate enthalten können, die auch in SWFs eingebettet werden können. Auf diese Weise können in diesen Dateien neben ActionScript-Logik auch als Komponenten (konfigurierbare GUI-Elemente für Flash oder Flex) gestaltete Elemente weitergegeben werden.

Neben den umfangreichen Klassenbibliotheken, die Adobe mit dem proprietären Adobe Flash oder dem freien Flex SDK ausliefert, gibt es eine Vielzahl freier, kostenloser oder kommerzieller Angebote anderer Entwickler und Firmen. Sie erweitern den Funktionsumfang der Kernsprache zum Teil erheblich und stellen auf Basis der Grundfunktionen von Sprache und Plattform Features, wie z. B. Tweening- oder 3D-Funktionalitäten, zur Verfügung.

Laufzeitumgebung

[Bearbeiten | Quelltext bearbeiten]

ActionScript 3 wird in der ActionScript Virtual Machine 2 (AVM2) ausgeführt, während die Vorgängerversionen in der AVM1 ausgeführt werden. Zwischen beiden virtuellen Maschinen ist keine nahtlose oder direkte Kommunikation möglich, so dass ActionScript 1 und 2 getrennt von ActionScript 3 laufen.

  • Michael Weigend: Adobe Flash CS5 mit ActionScript 3. Praxiseinstieg. mitp, 2011, ISBN 978-3826690839.
  • Tobias Hauser, Armin Kappler und Christian Wenz: Das Praxisbuch ActionScript 3. Galileo Design, 2010, ISBN 978-3836215657.
  • Colin Moock: Essential ActionScript 3.0. O’Reilly Verlag, 2007, ISBN 978-0596526948.
  • Colin Moock: ActionScript 3.0 Design Patterns. O’Reilly Verlag, 2007, ISBN 978-0596528461.
  • Colin Moock: Essential ActionScript 2.0. O’Reilly Verlag, 2004, ISBN 978-0596006525.