Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: WebStyleBoard. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

1

Mittwoch, 13. Oktober 2004, 12:27

Pause für X Sekunden

Werte WSB-Flasher (und solche, die es werden wollen...)!

Möchte man in einer Flash Animation eine kleine Pause unterbringen, z.B. damit der User Zeit hat, etwas Text zu lesen oder ähnliches, ohne aber die Animation zu unterbrechen, d.h. ohne dass sie durch einen "Weiter"-Button wieder gestartet wird, kommt einem zunächst ein naheliegender Gedanke:

Man legt ja selbst fest, mit wievielen Bildern pro Sekunde die Animation läuft. Bei Animationen für das Internet ist eine Verwendung von 12 Bps recht üblich. Möchte man nun eine Pause von 3 Sekunden benötigt man also 3 x 12 = 36 Bilder "Pause".

Nun kann man einfach 36 Frames in die Animation einfügen und siehe da! Man hat seine Pause. Allerdings ist dies nicht unproblematisch, da:

1. Die Datenmenge unnötig erhöht wird.
2. Die Übersicht in der Zeitleiste darunter leidet.

Um diese Unzulänglichkeiten zu umgehen, kann man sich ein paar Zeilen ActionScript bedienen, die eine echte Pause erzeugen, ohne unnötige Zusatzframes:

Quellcode

1
2
3
4
pauseinterval = setInterval(function() {
Play();
clearInterval(pauseinterval);
}, 3000)


Diese Anweisung bewirkt eine 3 sekündige Pause, die Zeit wird in Millisekunden angegeben.

Die Pause tritt in dem MC auf, in welchen man das ActionScript plaziert. Ein Einsatz auf der Stammebene (_root) ist auch ohne weiteres möglich.

Möchte man mehrere Filme gleichzeitig steuern, ist das ebenfalls kein Problem. Das ganze sieht dann in etwa so aus:

Quellcode

1
2
3
4
5
6
pauseinterval = setInterval(function() {
_root.Play();
_root.mc_1.Play();
_root.mc_2.Play();
clearInterval(pauseinterval);
}, 3000)


Hier wird nach 3 Sekunden Pause:

1. Die Animation auf der Hauptbühne fortgesetzt
2. Die Animation in MovieClip mc_1 fortgesetzt
3. Die Animation in MovieClip mc_2 fortgesetzt

Man hat aber noch weitere Möglichkeiten zur Filmsteuerung. So kann man Animationen nach Beendigung der Pause auch Stoppen oder zu bestimmten Frames springen:

Quellcode

1
2
3
4
5
6
7
pauseinterval = setInterval(function() {
_root.gotoAndPlay(70);
_root.mc_1.gotoAndPlay(23);
_root.mc_2.Stop();
_root.mc_3.gotoAndStop("Ende");
clearInterval(pauseinterval);
}, 3000)


Hierbei wird nach der Pause:

1. Die Animation auf der Hauptbühne ab Frame 70 fortgesetzt
2. Die Animation in MovieClip mc_1 ab Frame 23 fortgesetzt
3. Die Animation in MovieClip mc_2 im aktuellen Frame gestoppt
4. Der Abspielkopf im MovieClip mc_3 springt auf den Frame mit der Bildbezeichnung "Ende" und stoppt.

Wichtig dabei ist, unabhängig davon wieviele MCs gesteuert werden, dass das ActionScript immer in ein leeres Schlüsselbild notiert wird und nicht auf ein Objekt.