Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions ActionScript - Wikipedia

ActionScript

aus Wikipedia, der freien Enzyklopädie

ActionScript (kurz: AS) ist eine proprietäre Scriptsprache des US-amerikanischen Softwareunternehmen Adobe Systems auf Basis des ECMAScript-Standards (ECMA-262). (Ursprünglich von Firma Macromedia, welche jedoch im Dez. 2005 von Adobe Systems aufgekauft wurde.)

Es handelt sich hierbei um eine programminterne Sprache der Entwicklungsumgebung Adobe 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 97 % (Verbreitungsstatistik) aller Browser über ein Flash-Player-Plugin.

Adobe Flash enthält eine integrierte Entwicklungsumgebung (IDE), die sowohl Scriptentwicklung als auch deren Debuggen unterstützt.

Mittlerweile gibt es auch eine Reihe kommerzieller Tools sowie Open-Source-Bibliotheken z. B. PHP Ming als Ming Plugin von PHP, die es ebenfalls ermöglichen Flash-Filme zu erzeugen. Beispiele : Ming Projectleader Demos


ActionScripts arbeiten stets ereignisorientiert – werden also nur nach einem eingetretenem Ereignis ausgeführt.

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

Inhaltsverzeichnis

[Bearbeiten] Konventionen/Syntax

[Bearbeiten] 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 Browser-Umfeld bekannt ist und dort mit Fenster-, Dokument- und Formular-Objekten arbeitet, arbeitet ActionScript mit MovieClips, Textfeldern und Klängen.

[Bearbeiten] ActionScript 1 Syntax
// Konstruktor-Funktion (in ActionScript 1.0 eine Art Klassenersatz)
function SportTreiben ()
{
 trace ("ich treibe Sport");
 this.aufwaermen ();
}

SportTreiben.prototype.aufwaermen = function ()
{
 trace ("ich wärme mich jetzt auf, mit " + this.addiere (1, 5) + " Liegestuetzen");
};

SportTreiben.prototype.trainiereGolf = function ()
{
 trace ("ich trainiere jetzt Golf");
};

SportTreiben.prototype.addiere = function (a1, a2)
{
 return a1 + a2;
};
// Ausführen
var sport = new SportTreiben ();
/* 
* Ausgabe im Ausgabefenster:
* ich treibe Sport
* ich wärme mich jetzt auf, mit 6 Liegestuetzen 
*/

sport.trainiereGolf ();
/* 
* Ausgabe im Ausgabefenster:
* ich trainiere jetzt Golf 
*/


[Bearbeiten] ActionScript 2

Mit ActionScript 2 (AS2) gibt es seit Flash MX 2004 eine Java-ähnliche Programmiersprache, die sich an einem Entwurf für ECMAScript 4 [1] orientiert. AS2 wird ab der Flash-Player-Version 6.0.65.0 unterstützt.

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.

[Bearbeiten] 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;
   }
}

[Bearbeiten] Anwendung in der *.fla-Datei
// Importieren der Klasse
var sport:SportTreiben = new SportTreiben();

/* 
* Ausgabe im Ausgabefenster:
* ich treibe Sport
* ich wärme mich jetzt auf, mit 6 Liegestuetzen 
*/

sport.trainiereGolf();

/* 
* Ausgabe im Ausgabefenster:
* ich trainiere jetzt Golf 
*/

[Bearbeiten] ActionScript 3

ActionScript 3.0 (kurz AS 3.0) ist eine objektorientierte Programmiersprache, die Verfahren für die Erstellung von Rich Internet Applications implementiert. Bereits frühere Versionen von ActionScript umfassten die nötige Funktionalität und Flexibilität für interaktive Web-Anwendungen. ActionScript 3.0 bietet zahlreiche Verbesserungen, darunter eine optimierte Performance und einen erweiterten Funktionsumfang, welcher die Programmierung hoch komplexer Anwendungen, größerer Datensatzgruppen und objektorientierter, wieder verwendbarer Standard-Code-Elemente vereinfachen soll. Die Skriptsprache beruht auf dem internationalen Standard ECMAScript und ist mit der Spezifikation für ECMAScript konform.

Zusätzlich wurde die grundlegend neue und überarbeitete, ActionScript Virtual Machine (kurz AVM2) eingeführt, die die Leistungsfähigkeit der Vorgängerversion AVM1 übertrifft. Code in ActionScript 3.0 wird bis zu zehn Mal schneller ausgeführt als in einer älteren Version.

Die neue AVM2 ist seit Flash Player 9 enthalten und wird als primäre Virtual Machine bei der Ausführung von ActionScript-Code eingesetzt. Auf Grund der Abwärtskompatibilität zu bestehenden Inhalten unterstützt der Flash Player weiterhin auch die bisher verwendete AVM1.

[Bearbeiten] ActionScript 3 Syntax
package {
 public class SportTreiben
 {
   public 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;
   }
 }
}

[Bearbeiten] Anwendung in der *.fla-Datei
var sport:SportTreiben = new SportTreiben();

/* 
* Ausgabe im Ausgabefenster:
* ich treibe Sport
* ich wärme mich jetzt auf, mit 6 Liegestuetzen 
*/

sport.trainiereGolf();

/* 
* Ausgabe im Ausgabefenster:
* ich trainiere jetzt Golf 
*/

[Bearbeiten] ActionScript 3 Syntax (Klassenerweiterung)
package {
    import flash.events.MouseEvent;
    import flash.display.MovieClip;
    public class Kugel extends MovieClip {
         public function Kugel() {
             trace("Kugel erzeugt: " + this.name);
             this.buttonMode = true;
             this.addEventListener(MouseEvent.CLICK, clickListener);
             this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener);
             this.addEventListener(MouseEvent.MOUSE_UP, mouseUpListener);
         }
         private function clickListener(event:MouseEvent):void {
             trace("Sie haben die Kugel angeclickt!");
         }
         public function mouseDownListener(event:MouseEvent):void {
             this.startDrag();
         }
         public function mouseUpListener(event:MouseEvent):void {
             this.stopDrag();
         }
    }
}

[Bearbeiten] Anwendung in der *.fla-Datei
var kugel1:Kugel = new Kugel();
addChild(kugel1);

[Bearbeiten] Schreibweise

Funktionsnamen und Variablen sollten mit einem kleinen Buchstaben beginnen. Objekte sollten großgeschrieben werden. Der erste Buchstabe jedes Teilwortes sollte in beiden Fällen großgeschrieben werden.

Beispiele:

  • Objekte: ProductInformation, MovieController
  • Variablen: userName, myHtml, rawXml

[Bearbeiten] 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, kann auf die Suffixe verzichtet werden, da der AS-Editor die typisierten Namen interpretieren kann.
Unterstützte Suffixe für die Textvervollständigung
Objekt-Typ Suffix Beispiel
Array _array meinArray_array
Button _btn meinButton_btn
Camera _cam meineCamera_cam
Color _color meinColor_color
ContextMenu _cm meinContextMenu_cm
ContextMenuItem _cmi meinContextMenuItem_cmi
Date _date meinDate_date
Error _err meinError_err
LoadVars _lv meineVar_lv
LoadConnection _lc meinConnection_lc
Microphone _mic meinMicro_mic
MovieClip _mc meinMovieClip_mc
MovieClipLoader _mcl meinLoader_mcl
PrintJob _pj meinPrint_pj
NetConnection _nc meinConnection_nc
NetStream _ns meinStream_ns
SharedObject _so meinObject_so
Sound _sound meinSound_sound
String _str meinString_str
TextField _txt meinTextField_txt
TextFormat _fmt meinFormat_fmt
Video _video meinVideo_video
XML _xml meinXML_xml
XMLNode _xmlnode meinNode_xmlnode
XMLSocket _xmlsocket meinSocket_xmlsocket

[Bearbeiten] 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.
 *
 */

[Bearbeiten] 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

[Bearbeiten] 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 platzieren). 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();
}

[Bearbeiten] Quellen

Die oben genannten Informationen stellen eine Zusammenfassung dieses Artikels dar:

  1. ECMAScript 4 - http://www.mozilla.org/js/language/es4/

[Bearbeiten] Literatur

[Bearbeiten] Siehe auch

b:
Wikibooks
Wikibooks: ActionScript – Lern- und Lehrmaterialien

[Bearbeiten] Weblinks

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu