AS Step by Step

Hi,

bitte erstelle nicht 4 Postings hintereinander - es gibt hier im Forum die Möglichkeit, eigene Beiträge zu editieren! :eek:

Gruß
.
 
Tobias, ich hab Dein FadingImages2 adaptiert und versuche nun die Bilder über das XML-File einzulesen - dabei habe ich den Code eines schon funktionierenden Beispiels eingefügt - leider bringe ich es so nicht zum laufen - ich hab bestimmt eine Variable nicht gesetzt bzw. umbenannt!
was mich auch stört, ist daß ich am Anfang nur das Logo sehe, dann dauert es einige Sekunden bis das erste Bild einfaded! Wenn das erste Bild schon gleich da wäre, dann paßt es...
wie kann man da richtig rangehen - BITTE um Unterstützung - DANKE
:confused:
Code:
var xm = new XML();
xm.ignoreWhite = true;

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

xm.onLoad = function() {
	parse(this.childNodes);
}

xm.load("FadingImages2.xml");

function parse(obj) {
	for (var i=0; i<obj.length; i++) {
		img[i] = this.createEmptyMovieClip("img" + i, i);
		img[i].pic = img[i].createEmptyMovieClip("pic", 1);
		img[i]._x = -5000;
		img[i].pic.loadMovie(obj[i].attributes.src);
		img[i].onEnterFrame = function() {
			if (this.pic._width > 0 && this.pic._height > 0) {
				delete this.onEnterFrame;
				nextLoaded();
			}
		}
	}
}

var loaded = 0;			// zeigt an, wie viele Bilder schon geladen wurden
var dec = 25;			// Abbremsungsfaktor für das Überblenden
var currentImage = -1;	// aktuelles Bild
var interval = 3750; 	// Zeitspanne zwischen den Bildern (hier: mehr als 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[i]._x = 0;
	//img[currentImage]._x = Stage.width/2-img[currentImage]._width/2;
	img[i]._y = 0;
	//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;
			}
		}
	};
};
 
Hi,

Du bringst da einige Sachen durcheinander: z.B. wird der MovieClipLoader überflüssig, wenn Du die Bilder per onEnterFrame vorlädst.

Bitte poste Deine komplette Datei (und die XML-Datei), dann kann ich - sobald ich dazu komme - mal schauen, was sich machen lässt.

Gruß
.
 
Hi Tobias,

so, hier ist nun die Datei (gleicher Code wie zuvor komplett gepostet)...
das XML-file ging eigenartigerweise nicht zum hochladen...

Tutorial_FadingImages_XML
Code:
<img src="slideshow/img_0705_01.jpg" />
<img src="slideshow/img_0705_02.jpg" />
<img src="slideshow/img_0705_03.jpg" />

DANKE für DEINE Unterstützung - ich hoffe, dass dieses Beispiel vielen Flash & AS-Neulingen eine große Hilfe sein wird um tiefer in AS einzutauchen...

:)
 

Anhänge

  • Tutorial_FadingImages_XML.fla
    38,5 KB · Aufrufe: 44
Zurück