Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-01-2007, 09:17   #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();
	}
}
Im Anhang findet ihr einen Screenshot mit meiner Bühnenaufteilung.

Vielen Dank schon im vorraus.

Christian
Angehängte Grafiken
Dateityp: gif screenshot_flashXML_banner.gif (47,4 KB, 19x aufgerufen)
cthaele ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele