Flash Movie als Banner (verschiedene Banner --> wie gif)

Habe jetzt nen fertiges Script gefunden.
Jetzt würde ich das gernen noch ein bisschen Anpassen, es wäre nett wenn mir nochmal einer helfen kann.

Erstmal der Code:

Code:
var pic = new Array();
var current = 0;
var loaded = 0;
var IV = 0;
var centerX = 296;
// Mittelpunkt der Bühne!
var centerY = 57.5;
var timeout = 6000;
// Zeit zwischen den Bildern!
var xm = new XML();
xm.ignoreWhite = true;
xm.load("banner.txt");
xm.onLoad = function() {
	parse(this);
};
function parse(obj) {
	for (var i = 0; i<obj.childNodes.length; i++) {
		pic[i] = this.createEmptyMovieClip("pic"+i, i+512);
		pic[i].ct = pic[i].createEmptyMovieClip("ct", 1);
		pic[i]._alpha = 0;
		pic[i].nr = i;
		pic[i]._x = centerX;
		pic[i]._y = centerY;
		pic[i].go = function() {
			// Einblenden
			this.onEnterFrame = function() {
				this._alpha += (100-this._alpha)/6;
				if (this._alpha>=98) {
					this._alpha = 100;
					this._parent.nextPic(this.nr);
					// ruft Funktion zum Anzeigen des
					// nächsten Bildes auf
					delete this.onEnterFrame;
				}
			};
		};
		pic[i].hold = function() {
			// Ausblenden
			this.onEnterFrame = function() {
				this._alpha += (0-this._alpha)/15;
				if (this._alpha<=2) {
					this._alpha = 0;
					delete this.onEnterFrame;
				}
			};
		};
		pic[i].ct.loadMovie(obj.childNodes[i].attributes.picture);
		pic[i].onEnterFrame = function() {
			if (this.ct._width>10 && this.ct._height>10) {
				this.ct._x = -this.ct._width/2;
				this.ct._y = -this.ct._height/2;
				this._parent.nextLoaded();
				delete this.onEnterFrame;
			}
		};
	}
}
function showPic(nr) {
	// Blendet ein Bild ein
	clearInterval(IV);
	if (current != nr) {
		for (var i = 0; i<pic.length; i++) {
			if (nr != i) {
				pic[i].hold();
			} else {
				pic[i].go();
				current = i;
			}
		}
	}
}
function nextLoaded() {
	loaded++;
	if (loaded>=pic.length) {
		randPic();
	}
}
function nextPic(nr) {
	// Blendet ein zufälliges Bild verzögert ein
	clearInterval(IV);
	do {
		var v = int(Math.random()*pic.length);
	} while (v == nr);
	IV = setInterval(function () { showPic(v);}, timeout);
}
function randPic() {
	// Blendet ein zufälliges Bild ein
	clearInterval(IV);
	do {
		var v = int(Math.random()*pic.length);
	} while (v == current);
	showPic(v);
}

Jetzt möchte ich das wenn man das Aufruft nicht erst ein Bild geladen wird, sondern das schon da ist, und dann erst zum nächsten "überfaded". Das hat bestimmt was mit createEmptyMovieClip zu tun, richtig?!

Und dann würde ich gerne die Alphablendungen etwas längr ziehen, also das nicht so abruppt machen. Beispiel gibts hier:

http://icespeedskater.de/fila/

Würde mich über Hilfreiche Tipps freuen.
 
Beim alphaTwean musst du folgendes ändern:

PHP:
this._alpha += (100-this._alpha)/20;
und wenn das erste Bild sichtbar sein soll einfach
unter
PHP:
pic[i]._alpha = 0;
das hier eintragen:
PHP:
pic[0]._alpha = 100;

Habs mal wieder nicht getested aber müsste gehen :)
 
Du kannst auch die Ein- und Ausblend Function im Script durch diese Austauschen.

PHP:
var zeit = 0;
var fade= 5;// Den Wert kannst du jetzt beliebig anpassen
//Die zwei Variabeln  in die erste Scriptzeile Kopieren!

//Ein und Ausblenden ersetzen!
//Einblenden
this.onEnterFrame = function() {
	this._alpha = zeit*fade; 
        zeit++;
	if (this._alpha>100) {
		this._parent.nextPic(this.nr);
		delete this.onEnterFrame;
	}
};

// Ausblenden
this.onEnterFrame = function() {
	this._alpha = zeit*fade
        zeit--;
 
	if (this._alpha<0) {
		delete this.onEnterFrame;
	}
};

Gruß
 
Hi!

Danke für die Antwort, aber leider funktioniert das nicht.

PHP:
//Wenn ich aus
 this._alpha += (100-this._alpha)/6;
//das mache: 
 this._alpha += (100-this._alpha)/20;
Wenn ich dort eine Zahl größer als 6 schreibe, faded er nur noch das erste Bild ein und dann passiert gar nichts mehr, und die Ein- zund Ausblendfunktion hat leider auch nicht geklappt.
Vielleicht lag es auch an mir, du kannst ja sicherheitshalber nochmal das ganze script posten, aber so hat es jedenfalls nciht geklappt.

Wäre nett von du das nochmal probieren würdest.
 
Ersetze doch einfach mal die Einblend und Ausblend function
durch diese:
PHP:
//Einblenden
this.onEnterFrame = function() {
    this._alpha = zeit+=1*fade;
    if (this._alpha>100) {
        this._parent.nextPic(this.nr);
        delete this.onEnterFrame;
    }
};

// Ausblenden
this.onEnterFrame = function() {
    this._alpha = zeit-=1*fade
    if (this._alpha<0) {
        delete this.onEnterFrame;
    }
};

und das ganz oben in den Script kopieren
PHP:
var fade= 5;// Den Wert kannst du jetzt beliebig anpassen
//Die zwei Variabeln  in die erste Scriptzeile Kopieren!

wenn der twean nicht korekt leuft dann schreib noch bei //Ausblenden in die if (über delete) zeit=0;

und bei //Einblenden in die if zeit = 100;


Gruß
 

Neue Beiträge

Zurück