Zufällige Lichtstreifen erzeugen

hury

Erfahrenes Mitglied
Hallo zusammen,

ich bräuchte etwas Hilfe:
ich habe ein Bild, nämlich dieses hier:
http://www.captured-dreams.de/temp/fron3.jpg

Ich möchte nun in zufälligen zeitlichen Abständen Lichtstreifen erzeugen, die entlang der Scheinwerferlinien verlaufen. Die Positionen kann man ja fest vorgeben. Das Einzige was ich nicht realisieren kann ist halt, dass diese vorgefertigten Lichteranimationen zufällig ausgelöst werden. Wie lässt sich sowas umsetzen? Hoffe es ist einigermaßen verständlich, was ich vor habe.

Grüße
Alex
 
Zuletzt bearbeitet:
Du kannst die verschiedenen Animation, die ja warscheinlich in MovieClips gespeichert sind, so benennen: ani1, an2, ani3, ani4 etc.

Dann lässt du dir eine Zufallszahl ausgeben und hängst diese hinter den "ani"-String.
etwa so:
Code:
var anzahlMCs:Number = 4;
var zufallsZahl:Number = randRange (1, anzahlMCs);
var randMC:MovieClip = this["ani" + zufallsZahl];

// Animation starten
randMC.gotoAndPlay(2);

function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
 
Danke für Deine Antwort, aber ich hab´s noch nicht ganz verstanden:

speichere ich also die einzelnen Animationen in 4 unterschiedliche swf. Dateien und habe eine 5te Datei, die das ActionScript ausführt?

Gruss
Alex
 
Zuletzt bearbeitet:
Du hast ja gesagt, dass die Animation zu zeichnen kein Problem ist. Ich bin desshalb davon ausgegangen, dass du jede Animation bzw. Tween in einem seperatem MovieClip abgelegt hast. Wenn du diese dann auf die Bühne ziehst, gibst du jedem einen Instanznamen, nähmlich Ani1, Ani2, etc.

Gruss
 
Hallo,

es gibt doch noch ein Problem.
Ich hab´s etwas anders als vorgeschlagen gelöst. Und zwar so:

Code:
this.createEmptyMovieClip ("cont", 0);

var anzahlMCs:Number = 4;
var zahl = Math.floor(Math.random(anzahlMCs));
cont.loadMovie(zahl + ".swf")

An sich funktioniert es, jedoch wird jedes mal anscheinend die gleiche Zufallszahl generiert, weil immer 1.swf aufgerufen wird.

Woran kann´s liegen?

Gruss
Alex
 
Hi,

der Math.random-Methode kannst Du keinen Maximalwert übergeben - sie gibt immer eine Zahl zwischen 0 und 1 zurück. Probiers so:
Code:
var zahl = Math.ceil(Math.random() * anzahlMCs);

Gruß
.
 
Hi,

hat geklappt, danke!

Ich hätte noch eine Frage: gibt es einen Befehl, um nach Ende einer der Sequenzen eine bestimmte Zeit nichts zu tun? Sowas wie Sleep(200) oder sowas?
Ich möchte, dass meine Streifen nicht in regelmäßigen Abständen auftauchen, sondern da sollen unbestimmte Pausen dazwischen liegen

Gruss
Alex
 
Zuletzt bearbeitet:
Wenn du getTimer() benutzt, bekommst du die Zeit seit anfang der animation in Millisekunden. Zusammen mit ner onEnterFrame Methode, zb:

lastTimer = getTimer();
zufall = Math.ceil(Math.random() * 7000); // Zufall von 0 bis 7 Sekunden
_root.onEnterFrame = function(){
if (getTimer() - lastTimer > zufall){
//Neuen Lichtstreifen erzeugen, lastTimer aktualisieren und neue zufallszahl abspeichern
}
}

hab das ganze ncith getestet, sollte aber hinkommen.

Marius
 
Zurück