externes Laden mit zufälligem Bild anfangen

gygra

Mitglied
Guten Tach,

ich wurstel mich gerade durch eine Anim, die Bilder aus einem externen Ordner laden soll. Das tut sie auch soweit (danke, Tobias :)). Der Knackpunkt ist nun, dass die Bilder in alphabetischer, bzw numerischer Reihenfolge kommen, was sie auch tun sollen, aber nicht immer bei xyz1 beginnend, sondern eben zufällig, also z.B.: xyz7, xyz8,xyz9,xyz1,xyz2,... .
Auf diese Weise soll etwas Abwechslung in die Sache kommen, bei jedem aktualisieren, oder Neuaufrufen der Seite würde die Anim anders beginnen, you know?

Aber wie und wo baut man da jetzt den Random ein ?

Code:
var images = [];
var path = "images/";
for (var i = 1; i < 7; i++) {
	images.push(path.concat("img", i, ".jpg"));
}//Bilder im Ordner Images dürfen nicht mit 001.jpg bezeichnet sein. Fortlaufende Nummerierung bei 1 beginnend.


var img = new Array(); // Array für die Bild-MCs

var loaded = 0; // zeigt an, wie viele Bilder schon geladen wurden

var dec = 20; // Abbremsungsfaktor für das Überblenden

var currentImage = -1; // aktuelles Bild

var interval = 3000; // Zeitspanne zwischen den Bildern (hier: 3 Sekunden)

var iv = 0; // Intervall-Handler für setIntervall (Pause zwischen den Bildern)

var stime = 0; // Zeit nach dem Einblenden merken

var mcl = new MovieClipLoader(); // MovieClipLoader um die Bilder zu laden

mcl.onLoadInit = function() { // wird aufgerufen, wenn ein Bild geladen wurde
	clearInterval(iv); // Intervall löschen
	if (getTimer() - stime >= interval) { // wenn Intervallzeit schon abgelaufen:
		showNext(); // .. direkt nächstes Bild anzeigen
	} else { // ansonsten:
		iv = setInterval(showNext, interval - (getTimer() - stime)); // Bild nach Restzeitspanne anzeigen
	}
}


for (var i= 0; i<images.length; i++) {
	img[i] = this.createEmptyMovieClip("img" + i, i); // Für jedes Bild einen MC erstellen
	var ct = img[i].createEmptyMovieClip("ct", 1); // ... und dort einen weiteren leeren MC hineinpacken
	img[i]._src = images[i];
	img[i]._visible = false; // Bild erstmal ausblenden
	img[i]._alpha = 0; // und Alphawert auf 0 sethen
}

loadNext();

function loadNext() { // nächstes Bild vorladen
	var d = currentImage + 1;
	if (d > images.length - 1) d = 0;
	mcl.loadClip(img[d]._src, img[d].ct);
}

function showNext() { // nächstes Bild anzeigen
	clearInterval(iv);
	img[currentImage].fade(0, dec);
	currentImage ++;
	if (currentImage > images.length - 1) currentImage = 0;
	img[currentImage].swapDepths(this.getNextHighestDepth());
	img[currentImage]._x = Stage.width / 2 - img[currentImage]._width / 2;
	img[currentImage]._y = Stage.height / 2 - img[currentImage]._height / 2;
	img[currentImage].fade(100, dec);
	stime = getTimer(); // aktuelle Zeit merken
	loadNext(); // und gleich das nächste Bild vorladen
}

MovieClip.prototype.fade = function(d, s) {
	if (d != 0) this._visible = true;
	this.onEnterFrame = function() {
		this._alpha += (d - this._alpha) / s;
		if (Math.abs(d - this._alpha) < 1) {
			delete this.onEnterFrame;
			this._alpha = d;
			if (d == 0) this._visible = false;
		}
	}
}
 
Zurück