| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: May 2005
Beiträge: 6
| dynamisches Flashbanner mit Bilder aus XML Datei.
Hallo, ich habe folgendes vor: Ich möchte gern ein Flashbanner in dem jeweils 3 unterschiedliche Bilder (gleiche Größe) die aus einer XML Datei geladen werden nebeneinander in drei Platzhaltern (MC's) anzeigt werden. Dann sollen die Bilder nach ein paar Sekunden wecheln. Die Feinheiten dabei sind, dass nie das selbe Bild zwei mal oder mehr in der Reihe aus 3 Bildern vorkommen darf (also eine Aussortierungfunktion). Nun das Problem: Ich habe soweit das Script schon fertig aber es treten noch ein paar Probleme auf. Irgendwann bleibt das Script hängen und der Browser stürzt ab. Auch die Zeitabstände der zu wechselnden Bilder werden mit der Zeit verändert. Gibt es vielleicht noch eine eleganter Variante oder hat jemand eine Seite auf Lager wo so ein Flashbanner läuft? Hier mein AS: Code: delay = 3000;
//------------------------
function loadXML(loaded) {
if (loaded) {
xmlNode = this.firstChild;
image = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
}
firstImage();
} else {
content = "file not loaded!";
}
}
xmlData = new XML();
function XMLloading() {
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("images.xml");
p = 0;
}
XMLloading();
this.onEnterFrame = function() {
filesize = picture.getBytesTotal();
loaded = picture.getBytesLoaded();
preloader._visible = true;
if (loaded != filesize) {
preloader.preload_bar._xscale = 100*loaded/filesize;
} else {
preloader._visible = false;
if (picture1._alpha<100) {
picture1._alpha += 10;
}
if (picture2._alpha<100) {
picture2._alpha += 10;
}
if (picture3._alpha<100) {
picture3._alpha += 10;
}
}
};
function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
function nextImage() {
if (p<(total-1)) {
p++;
if (loaded == filesize) {
picture1._alpha = 0;
picture1.loadMovie(image[randRange(0,image.length-1)], 1);
picture2._alpha = 0;
picture2.loadMovie(image[randRange(0,image.length-1)], 1);
picture3._alpha = 0;
picture3.loadMovie(image[randRange(0,image.length-1)], 1);
slideshow();
}
}
}
function firstImage() {
if (loaded == filesize) {
picture1._alpha = 0;
zufallsbild = randRange(0,image.length-1);
picture1.loadMovie(image[zufallsbild], 1);
image.splice(zufallsbild,1);
picture2._alpha = 0;
zufallsbild = randRange(0,image.length-1);
picture2.loadMovie(image[zufallsbild], 1);
image.splice(zufallsbild,1);
picture3._alpha = 0;
zufallsbild = randRange(0,image.length-1);
picture3.loadMovie(image[zufallsbild], 1);
slideshow();
}
}
function slideshow() {
myInterval = setInterval(pause_slideshow, delay);
function pause_slideshow() {
clearInterval(myInterval);
XMLloading(xmlData);
firstImage();
}
} Vielen Dank schon im vorraus. Christian |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |