Suche nach als

ActionScript

Auf dieser Seite:

Programmieren in Flash

Um eine Flash Animation interaktiv zu starten, um Benutzereingaben zu verwerten und für den Zugriff auf eine Datenbank müssen Steuerbefehle und anderer Code eingefügt werden. In Flash gibt es dazu die Sprache ActinScript (AS3 nun in der Version 3), sie erinnert stark an JavaScript, ist auch objektorientiert und lehnt sich an die DOM3-Ereignisspezifikation des W3C an.

Action Script 3 (AS3)

Code Ebene

ActionScript Code kann direkt in Bilder (Frames) in der Zeitleiste abgelegt werden (oder in einer externen actionscript.as Datei). Es empfiehlt sich die oberste Ebene ausschliesslich für Code zu reservieren (keine Objekte in diese Ebene platzieren) und die Ebenen z.B. 'Aktionen' zu nennen. Beim Abspielen der Datei wird eine Aktion immer dann ausgeführt, wenn der Zeiger auf das Bild mit der Aktion trifft. Ein Bild mit Code ist in der Zeitleiste durch ein kleines a gekennzeichnet:

AS in Frame

Buttons

Symbol Button

Button erstellen

Ein Button-Symbol ist eine eigene Animation mit 4 Bildern entsprechend den drei Mausaktionen und dem sensitiven Bereich (onMouseOver, onMouseDown, onMouseUp und Aktiv) und beliebig vielen Ebenen.

Instanzname

Instanznamen

Ich habe vier Buttons vorbereitet. Jeder Button hat als Eigenschaft einen Instanznamen (z.B. 'btn_play') und für jeden Instanznamen gibt es einen Eventlistener (horch mal ob ich angeklickt wurde), der dann die entsprechende Funktion auslöst. Die Funktionen für den Start und den Play Button ist kurz:

// start Button
btn_play.addEventListener(MouseEvent.CLICK,play_movie);
 function play_movie(eventObject:MouseEvent):void {
  play();
 }

// stopp Button
btn_stopp.addEventListener(MouseEvent.CLICK,stop_movie);
 function stop_movie(eventObject:MouseEvent):void {
  stop();
 }

Die Funktion für den Tempo Button beeinflusst direkt die Framerate der Bühne, indem sie die Eigenschaft 'frameRate' des Objektes 'Stage' auf eine andere Zahl setzt:

// tempo Button
btn_tempo.addEventListener(MouseEvent.CLICK,tempo);
 function tempo(event:MouseEvent):void {
  if (stage.frameRate == 12) {
  stage.frameRate = 90;
 } else if (stage.frameRate == 90) {
  stage.frameRate = 12;
 }
}

Die Funktion für den Rewinde Button ist wieder einfach, sie springt auf das erste Bild und wartet dort:

// rewinde Button
btn_rewinde.addEventListener(MouseEvent.CLICK,rewinde);
 function rewinde(event:MouseEvent):void {
  gotoAndStop(1);
 }

Falls man nicht via Rewinde gekommen ist, sondern von irgendwoher aus dem www, will ich auch erst mal warten bis einer Play klickt, darum schreibe ich ganz am Ende des Codes:
stop(); Aller andere Code in diesem Bild muss vor diesem stop(); stehen - da folgende Scriptteile nicht ausgeführt würden, würden die Buttons nicht funktionieren!

Syntax überprüfen und Auto-Format

Die ActionScripts schreibe ich in die Ebene 'Aktionen'. Das dortige, ansonsten leere Schlüsselbild dauer bis zum Ende der ganzen Animation, ist also immer aktiv. Ich öffne das Fenster 'Aktionen' und gebe Code ein.
Kommentare in Actionscript sind wie die bei JavaScript und PHP:
// Kommentarzeile
/* Kommentarblock */

Scriptfenster

Zum Schluss: Ein Klick auf das Zeichen für Syntax überprüfen Syntax und noch einer auf das Zeichen für Auto-Format Auto-Format macht alles richtig und sauber, ich kann die Animation nun veröffentlichen und Testen.

Vor und zurück

Statt ein riesen Flash mit langen Zeitleisten, vielen Ebenen und massenhaft Szenen, kann ich die Szenen als Movieclip Symbole in die Bibliothek legen. Ich habe dann eine Hauptszeene, in deren einzelne Schlüsselbilder (keyframes) lade ich je ein Movieclip. Die Hauptszeene ist kein Trickfilm mehr, sondern reiht die Clips statisch wie Buchseiten aneinander. Zur Steuerung brauche ich dann Buttons, welche zu Inhaltsverzeichnis und Kapiteln springen und solche, die zu den Frames vor und zurück blättern:

// next Button
btn_next.addEventListener(MouseEvent.CLICK, next_frame);
 function next_frame(event:MouseEvent):void { 
  if (this.currentFrame!=this.totalFrames) { 
    gotoAndStop(this.currentFrame+1); 
  } 
 }
// prev Button
btn_prev.addEventListener(MouseEvent.CLICK, prev_frame);
 function prev_frame(event:MouseEvent):void { 
  if (this.currentFrame!=1) { 
    gotoAndStop(this.currentFrame-1); 
  } 
 }

(Diese Seite verdankt viel der Website: www.webmasterpro.de)


Valid XHTML 1.0 Check den Code.

CD authoring >> << Flash:
Ich bin hier: > Andere Sprachen Lehrling >>> ActionScript
 
HTML und XHTML | CSS | JavaScript und DHTML | PHP und MySQL | Andere Sprachen
Letzter Update: 18.07.2010