... wie kann ich folgenden Code ändern, dass mir Flash die Bilder dynamisch einliest, welche sich gemeinsam mit der Flashdatei in einem Ordner befinden. Möchte nicht für 100 Bilder die Dateinamen definieren
Zusätzlich möchte ich dass von Anfang an direkt ein Bild angezeigt wird und nicht zuerst eine leere Zeichenfläche zu sehen ist.
PHP-Code:
var images = new Array("bild1.jpg", "bild2.jpg", "bild3.jpg"); // Array mit den Bildpfaden
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 = 8000; // 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;
}
}
}