2 ActionScript in Flash
Sie werden lernen:
- Wo ist ActionScript möglich?
- Was lässt sich mit ActionScript steuern?
- Wo wird ActionScript programmiert?
- Was bietet das Aktionen-Bedienfeld?
- Wie erhalten Sie Hilfe?
- Welche Voreinstellungen gibt es?
- Wie finden Sie Fehler?
- Welche Unterschiede gibt es zwischen ActionScript 1 und 2?
Donner ist gut und eindrucksvoll, aber die Arbeit leistet der Blitz. – Mark Twain
In diesem Kapitel geht es richtig los: Wir zeigen Ihnen, wann, wie und wo Sie ActionScript (kurz AS) sinnvoll einsetzen. Sie finden außerdem viele Tipps und Tricks, wie Sie mit dem Aktionen-Bedienfeld arbeiten. Das Aktionen-Bedienfeld ist der Editor für ActionScript in der Entwicklungsumgebung Flash. Dort werden Sie sich die meiste Zeit aufhalten, wenn Sie mit diesem Buch arbeiten.
2.1 Wo ist ActionScript möglich?
Merkregel |
»Ohne Ereignis kein ActionScript.« Diese Merkregel hilft Ihnen beim Programmieren. Bevor Sie damit beginnen, sollten Sie immer überlegen, bei welchem Ereignis Ihr Code ausgelöst wird. Allein das Nachdenken darüber beugt vielen Problemen und Fehlern vor. |
Die Frage, wo ActionScript möglich ist, geht eigentlich schon einen Schritt zu weit. Zuerst sollte man sich klarmachen, wann ActionScript möglich ist. Holen wir ein wenig aus: ActionScript ist ereignisorientiert. Das heißt, es kann nur dann ActionScript-Code ausgeführt werden, wenn ein Ereignis eintritt. Ereignisse gibt es natürlich eine ganze Menge und Sie werden viele in diesem Abschnitt kennen lernen. Grundsätzlich aber können Sie sich merken, dass es in Flash zwei Hauptarten von Ereignissen gibt:
1. | Der Nutzer nimmt eine Handlung vor: Er drückt die Maustaste auf einer Schaltfläche, fährt über einen MovieClip, drückt eine Taste auf der Tastatur und vieles mehr – schon haben Sie ein Ereignis. |
2. | Durch das Voranschreiten des Abspielkopfes in der Zeitleiste können ebenfalls Ereignisse ausgelöst werden, wenn beispielsweise der Abspielkopf auf ein Schlüsselbild trifft oder wenn ein MovieClip in einem bestimmten Bild geladen wird. |
Gehen Sie gedanklich einen Schritt weiter: Wenn es diese zwei Arten von Ereignissen gibt, wo können Ereignisse dann auftreten? Es gibt drei Stellen:
- Schlüsselbilder. Sie können in Schlüsselbilder ActionScript-Code schreiben, indem Sie auf das Schlüsselbild in der Zeitleiste klicken und dann in das Aktionen-Bedienfeld wechseln; dort tragen Sie Ihren Code ein. Der Code wird aufgerufen, wenn der Abspielkopf in das Schlüsselbild eintritt. Dieses Ereignis wird nicht explizit in den ActionScript-Code geschrieben, da es ja kein anderes gibt.
Eigene Ebene |
Sie sollten Ihrem ActionScript-Code in der Zeitleiste gewohnheitsmäßig eine eigene Ebene zuweisen, die Sie sinnvollerweise ActionScript nennen. Die Ebene hilft Ihnen, schnell auf den Code zuzugreifen und immer den Überblick zu bewahren. Außerdem können Sie, wenn sich sonst nichts in der Ebene befindet, Schlüsselbilder für den Code in jedem beliebigen Frame der Animation einfügen. |
- Schaltflächen-Symbole. Auf Schaltflächen kann der Nutzer klicken, mit der Maus darüber fahren und vieles mehr. Um eine Schaltfläche mit einem Ereignis zu versehen, klicken Sie auf die Schaltfläche und wechseln Sie dann in das Aktionen-Bedienfeld. Das Ereignis fügen Sie in runden Klammern nach dem Schlüsselwort1 on ein:
on (Ereignis) { Anweisungen; }
- MovieClip-Symbole. MovieClips selbst lösen Ereignisse aus, beispielsweise werden sie geladen. Mit Ereignissen bei MovieClips kann aber auch die Mausbewegung abgefangen werden. Um ein Ereignis zu einem MovieClip hinzuzufügen, klicken Sie den Script an und fügen Sie das Ereignis in runden Klammern nach dem Schlüsselwort onClipEvent ein:
onClipEvent (Ereignis) { Anweisungen; }
MovieClips als Schaltflächen |
Sie können in MovieClips auch die Ereignisse für Schaltflächen verwenden. Sogar die optischen Schaltflächen-Zustände lassen sich mit MovieClips simulieren. Dazu vergeben Sie einfach für die Bilder in der Zeitleiste des MovieClips die Namen der Zustände (_up, _over und _down) als Bildmarkierungen. Der MovieClip zeigt diese Zustände, wenn zusätzlich per ActionScript ein Schaltflächen-Ereignis angegeben ist. |
Steht an einer dieser drei Stellen ActionScript-Code, so ist das eine Aktion; der Begriff also, der dem Aktionen-Bedienfeld seinen Namen gegeben hat. Die Ereignisse für Schaltflächen und MovieClips gibt es seit Flash MX auch in anderer Form, nämlich als Ereignisprozeduren. Sie machen den Code für das Ereignis unabhängig von der Schaltfläche oder dem MovieClip, von dem aus das Ereignis aufgerufen wird. Eine Ereignisprozedur für eine beliebige Schaltfläche können Sie also beispielsweise in das erste Schlüsselbild des Hauptfilms stecken. Welche Vorteile das bringt, erfahren Sie in Kapitel 5, »Einfache Filmsteuerung«, im Abschnitt »Ereignisprozeduren«. Das dortige Beispiel demonstriert, wie Sie Ereignisprozeduren einsetzen; auch in weiteren Beispielen zeigen wir Ihnen Informatives zu diesem Thema. Nichtsdestotrotz bleiben Ereignisprozeduren nur eine andere Form für Schaltflächen- und MovieClip-Ereignisse. Die Ereignisse selbst ändern sich nicht.
Ereignisse für Schaltflächen
Die nachfolgende Tabelle gibt Ihnen einen Überblick über die wichtigsten Ereignisse für Schaltflächen. Natürlich müssen Sie nicht alle Ereignisse kennen, Sie sollten allerdings im Hinterkopf behalten, wie viele Möglichkeiten Sie haben. Denn Sie erinnern sich: »Ohne Ereignis kein ActionScript«.
Ereignis | Beschreibung |
dragOut |
Die linke Maustaste wird auf der Schaltfläche gedrückt, dann festgehalten und der Mauszeiger außerhalb der Schaltfläche gezogen. |
dragOver |
Anschlussereignis zu dragOut. Der Mauszeiger wird bei immer noch gedrückter linker Maustaste wieder zurück über die Schaltfläche gezogen. |
keyPress "Taste" |
Drücken einer Taste auf der Tastatur |
press |
Drücken der linken Maustaste auf der Schaltfläche |
release |
Loslassen der linken Maustaste. Wird meist statt press eingesetzt, wenn für den Drücken-Zustand noch ein anderes Aussehen der Schaltfläche angezeigt werden soll. |
releaseOutside |
Loslassen der linken Maustaste außerhalb der Schaltfläche. Wird oft eingesetzt, da bei schnellem Loslassen der Maustaste und gleichzeitigem Ziehen der Mauszeiger die Schaltfläche schon verlassen hat, obwohl sie noch angeklickt werden soll. |
rollOut |
Der Mauszeiger verlässt die Schaltfläche. |
rollOver |
Der Mauszeiger überquert die Schaltfläche und ruft den Zustand Darüber des Schaltflächen-Symbols auf. |
Tabelle 2.1 Schaltflächenereignisse
Ereignisse für MovieClips
Auch die Ereignisse für MovieClips lassen sich in einer Tabelle zusammenstellen. Wenn Sie die nächsten Kapitel unseres Buches durcharbeiten, werden Sie viele Ereignisse in praktischen Beispielen wiederfinden.
Tabelle 2.2 Ereignisse für MovieClips
Ereignis | Beschreibung |
data |
Daten werden in den Flash-Film geladen. Das können beispielsweise Variablen (mit der MovieClip-Methode loadVariables) oder ein MovieClip sein (loadMovie). |
enterFrame |
Der Abspielkopf betritt ein neues Bild im Film. Dieses Ereignis wird für alle Bilder im MovieClip aufgerufen. Vorsicht: Wenn der Abspielkopf angehalten wird (mit den Methoden Stop oder gotoAndStop), wird das Ereignis für dieses Bild einmal ausgeführt, bevor der Abspielkopf stoppt. |
keyDown |
Drücken einer beliebigen Taste |
keyUp |
Loslassen einer beliebigen Taste |
load |
Ein MovieClip wird geladen. Dies kann durch ActionScript (Duplizieren, Erzeugen, Anhängen) oder durch das Wandern des Abspielkopfs in ein Bild mit neuer Instanz geschehen. Das Ereignis wird auch aufgerufen, wenn Inhalte eines MovieClips mit unloadMovie entfernt werden, da die leere Instanz übrig bleibt, also »geladen« wird. |
unload |
Entladen (Entfernen) eines MovieClips tritt ein, wenn der Clip zu Ende gespielt oder wenn removeMovieClip entfernt wurde. Wenn externe Filme mit unloadMovie entfernt werden, wird das Ereignis ebenfalls aufgerufen. |
mouseDown |
Drücken der Maustaste. Dabei ist es egal, wo sich der Mauszeiger befindet. |
mouseUp |
Loslassen der Maustaste. Der Mauszeiger kann sich auch außerhalb des MovieClips befinden. |
mouseMove |
Bewegen der Maustaste. Der Mauszeiger kann sich auch außerhalb des MovieClips befinden. |
Tabelle 2.2 Ereignisse für MovieClips (Forts.)
Ereignisprozeduren
Der Name der Ereignisprozedur bildet sich immer aus dem Schlüsselwort on und dem Namen des Ereignisses, beginnend mit einem Großbuchstaben. Aus dem Ereignis press wird also onPress.
Alle Ereignisse für Schaltflächen und MovieClips gibt es auch als Ereignisprozeduren. Vorsicht, lassen Sie sich nicht verwirren, denn selbst die MovieClip-Ereignisse werden mit on zu einer Ereignisprozedur: Aus load wird also onLoad. Folglich spielt onClipEvent bei Ereignisprozeduren keine Rolle mehr.
Wo befinden Sie sich?
Sie wissen jetzt, wo Sie ActionScript hinzufügen können. Eine der häufigsten Fehlerquellen entsteht allerdings daraus, dass Code dem falschen Element zugewiesen wird. Meist weiß der Programmierer, was er gemeint hat: Zum Schlüsselbild sollte der Code, aber da war noch ein MovieClip aktiviert, in dem der Code jetzt gelandet ist. Logischerweise erscheint beim Testen des Films eine Fehlermeldung, da der Code kein onClipEvent besitzt. Um solche Fehler zu vermeiden, sollten Sie immer feststellen, wo Sie sich gerade befinden, bevor Sie Code hinzufügen. Dazu müssen Sie nur wenige Punkte beachten:
1. | Die Leiste über der Bühne zeigt, ob Sie sich gerade in einem Symbol befinden und in welcher Szene Sie sind. |
Abbildung 2.1 Hier befinden Sie sich in einem Symbol.
2. | In der Zeitleiste sehen Sie, in welcher Ebene Sie sind. Sie sollten für ActionScript eine eigene leere Ebene anlegen und sinnvoll benennen (in allen Beispielen dieses Buchs heißt sie ActionScript). Sie erkennen an dem kleinen a in einem Schlüsselbild, dass sich dort ActionScript-Code befindet. |
Abbildung 2.2 Das kleine a im ersten Schlüsselbild der Ebene ActionScript zeigt, dass dort ActionScript-Code vorhanden ist.
3. | Achten Sie darauf, ob eine Instanz oder ein anderes Element ausgewählt ist. Für eine Instanz (bei Schaltfläche oder MovieClip) dürfen Sie nämlich Code eingeben, bei allen anderen Elementen im Aktionen-Bedienfeld dagegen nicht. Hier hilft übrigens die eigene ActionScript-Ebene: Da sie leer ist, wurde sicher kein Element ausgewählt, wenn die Ebene aktiviert ist. |
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.