syntax-web.de - flash tutorial zufallseffekte

Flash Tutorial Zufallseffekte

Einer der erstaunlichsten, am interessantesten Effekte in Flash ist der Effekt, bei dem zufällig nach einer zufälligen Wartezeit etwas passiert.

Ich sah sowas damals bei "Der Bauer" und hab ein Weilchen daran rumgetüftelt, bis ich herausfand, wie so etwas funktioniert. Mein erster Fehlansatz war, Flash für eine zufällige Zeit anzuhalten; das Problem daran ist, dass Flash immer laufen muß, da der Flash-Film ansonsten den Client ziemlich ausbremst.

Das Tutorial bezieht sich auf Flash 5 (englische Version), da dies die einzige Version ist, die ich habe (es wird sich wohl keiner bereit finden mir eine legale Lizenz der aktuellen Version zu schenken...). Es wird angenommen, daß Grundkenntnisse in Flash vorhanden sind.

Vorbereitung

Als erstes benötigen wir für unser Beispiel ein Bild. Ich nehme zum Beispiel dieses hier:

Vorgehensweise in Flash

Schritt 1

Flash öffnen, es müßte nun ein neuer Film (Movie 1.fla) geöffnet sein.

-> rechtsklick auf die Bühne (Stage) im Kontext-Menü auf "Movie Properties..."

Breite und Höhe auf 200 Pixel einstellen (Größe des Beispiel-Bildes)

Film Einstellungen

Schritt 2

Im Menü unter "File" "Import" auswählen und das Beispiel-Bild laden.

Das Beispiel-Bild ist nun geladen und selektiert.

Schritt 3

"F8" drücken; folgender Dialog erscheint:

Neues Symbol

wie angezeigt ausfüllen.

Schritt 4

Symbol "keyboard" auf der Bühne ausrichten, mittels des Info-Panels:

Info-Panel

Jetzt ist es an der Zeit unser Projekt zu speichern. Z.B. als "flashing_keyboard.fla"

Schritt 5

Jetzt erstellen wir bei folgenden Frames Key-Frames:

10, 11, 13
20, 21, 23
30, 31, 33
40, 41, 43
50, 51, 53
60, 61

Frame 61 benennen wir 'x'.
Die Frames 1, 11, 21, 31, 41, 51 benennen wir 's0' bis 's5'.
Vor und hinter den "3er Frames" erstellen wir Motion-Tweens.

Die Zeitleiste müßte jetzt in etwa so aussehen:

Zeitleiste

Zwischenspeichern!

Schritt 6

an den "3er Frames" werden jetzt die Effekte eingestellt z.B.:

Frame 13: Effect Brightness: 100%

Frame 23: Effect Advanced:
Red = (-100% x R ) + 255
Green = (100% x G ) + 0
Blue = (100% x B ) + 0
Alpha = (100% x A ) + 0

Frame 33: Effect Advanced:
Red = (100% x R ) + 0
Green = (-100% x G ) + 255
Blue = (100% x B ) + 0
Alpha = (100% x A ) + 0

Frame 43: Effect Advanced:
Red = (100% x R ) + 0
Green = (100% x G ) + 0
Blue = (-100% x B ) + 255
Alpha = (100% x A ) + 0

Frame 53: Effect Advanced:
Red = (-100% x R ) + 255
Green = (-100% x G ) + 255
Blue = (-100% x B ) + 255
Alpha = (100% x A ) + 0

Das Ergebnis bis hierher sieht dann wie oben aus.

Allerdings läßt sich hier noch kein Zufallseffekt ausmachen...

Zwischenspeichern!

Schritt 7

In die Frames 10, 20, 30, 40, 50, 60 folgenden ActionScript-Code einfügen:

gotoAndPlay ("x");

In Frame 61 ('x') folgenden ActionScript-Code einfügen:

function randomPlay(maxNum, arrFrameNames)
{
  var zufall = random(maxNum);

  if (zufall >= arrFrameNames.length)
  {
     gotoAndPlay(arrFrameNames[0]);
  }
  else
  {
     gotoAndPlay(arrFrameNames[zufall]);
  }
}

var arr = new Array();

arr[0] = "s0";
arr[1] = "s1";
arr[2] = "s2";
arr[3] = "s3";
arr[4] = "s4";
arr[5] = "s5";

randomPlay(10, arr);

je Größer die erste Zahl in der Funktion "randomPlay" ist, um so unwahrscheinlicher wird es, das ein Effekt gewählt wird; d.H. die Wartezeit zwischen den einzelnen Effekten steigt.

Fertig.

Ergebnis

randomPlay(10, arr) randomPlay(100, arr)

Die fertige Flash-Quelldatei zum herunterladen.