Bildwechseleffekt -- aber wie?

sockefd

Grünschnabel
Hallo

Ich habe auf dieser Seite einen tollen Effekt gesehen. Leider habe ich keinerlei Ahnung, wie man das realisieren könnte. Ich habe hier die Möglichkeit auf Flash 8.0 zuzugreifen. Da ich damit noch nie etwas zu tun hatte, bin ich mir noch nicht einmal sicher, ob das das richtige Programm dafür ist. Wenn ich auf den Effekt (der mit den Hundegesichtern gleich auf der Hauptseite) klicke, dann wird etwas von Flash ausgeworfen. Mit der Suchfunktion bin ich nicht wirklich fündig geworden, zumal ich mir nicht ganz sicher bin, welche Stichworte ich nehmen soll. (Bildereffekt / Banner / Überblendeffekt etc waren nicht das was ich gesucht habe)

Frage: Gibt es irgendwo ein Tutorial das es mir ermöglicht sowas herzustellen?

Gruß Thomas
 
Mit Flash (oder sonst einem Programm, das swf-Dateien erzeugt) ist das gemacht, das stimmt.
Geeignet sind die flasheigenen Ersten Schritte, die flasheigenen Tutorials und ein Blick in die Rubrik 'Flash verwenden', jeweils in der Flashhilfe zu finden, um die Basics in diesem Programm zu erlernen. Denn ein paar Grundkenntnisse dürften auch für diesen Effekt Voraussetzung sein - ein spezielles Tutorial dafür hin oder her.
Danach dürften dir die Stichworte "Masken" und "Tweening" weiterhelfen (und dann auch vertraut sein, so dass sie dir weiterhelfen, was jetzt vielleicht noch nicht der Fall ist), um den Effekt zu realisieren.

Gruß
Rena
 
Danke, damit habe ich doch erstmal was zum Lesen. Jetzt weiss ich wenigstens wo ich schauen muss, denn als ich die Flash-Hilfe das erste Mal aufgemacht habe, war ich etwas erschlagen von der Menge und gefunden habe ich zwar alles mögliche aber nicht diesen Effekt. Ich werde mich jetzt die nächsten Tage mal etwas belesen. Nochmal danke für die schnelle Antwort

Thomas
 
Hi Tobias,

diesen Effekt versuche ich auch schon seit langem nachzubauen, aber auf die Idee mit dem delay bin ich nicht gekommen.
Ich habe heute versucht das Skript welches im Pad liegt mit auf die HZL zu legen damit die gesamte Syntax in einem Frame liegt.
Ich habe es mit prototype versucht aber der Effekt will so nicht
funktionieren. Das Skript läuft bis zur go1 Funktion aber es wird kein FadeIn der Pads ausgeführt.
Was mache ich falsch?

Code:
MovieClip.prototype.go = function() {
	trace(this.delay);
	this._alpha = 0;
	var iv = 0;
	d = 1500;
	this.onEnterFrame = function() {
		if (this.delay != undefined) {
			iv = setInterval(go1, this.delay);
			delete this.onEnterFrame;
		}
	};
	function go1() {
                trace("ok");
		clearInterval(iv);
		iv = setInterval(go2, d);
		this.onEnterFrame = function() {
			this._alpha += (100-this._alpha)/4;
			if (this._alpha>=98) {
				delete this.onEnterFrame;
			}
		};
	}
	function go2() {
		var s = 30;
		this.onEnterFrame = function() {
			this._alpha += (0-this._alpha)/s;
			s += (4-s)/4;
			if (this._alpha<=1) {
				delete this.onEnterFrame;
			}
		};
	}
};
var p = new Array();
var c = 0;
var cols = 10;
var rows = 10;
var vPads = new Array();
for (var x = 0; x<cols; x++) {
	p[x] = new Array();
	for (var y = 0; y<rows; y++) {
		p[x][y] = pads.attachMovie("pad", "p"+c, c);
		c++;
		p[x][y]._width = bild._width/cols;
		p[x][y]._height = bild._height/rows;
		p[x][y]._x = x*p[x][y]._width;
		p[x][y]._y = y*p[x][y]._height;
		p[x][y].delay = x*45+y*50;
		vPads = p[x][y];
		vPads.go();
	}
}

Beste Grüße

EDIT: Hab's hinbekommen.
Man muß den funktionen zusätzlich "this" als parameter mitgeben.
Hab angenommen das man es weglassen kann da man sich ja mit prototype in dem jeweiligen mc befindet.
Code:
MovieClip.prototype.go = function() {
	this._alpha = 0;
	var iv = 0;
	var d = 1500;
	this.onEnterFrame = function() {
		if (this.delay != undefined) {
			iv = setInterval(go1, this.delay, this);
			delete this.onEnterFrame;
		}
	};
	function go1(mc) {
		clearInterval(iv);
		iv = setInterval(go2, d, mc);
		mc.onEnterFrame = function() {
			this._alpha += (100-this._alpha)/4;
			if (this._alpha>=98) {
				delete this.onEnterFrame;
			}
		};
	}
	function go2(mc) {
		var s = 30;
		mc.onEnterFrame = function() {
			this._alpha += (0-this._alpha)/s;
			//s += (4-s)/4;
			if (this._alpha<=1) {
				delete this.onEnterFrame;
			}
		};
	}
};
 
Zuletzt bearbeitet:
Ich bin kein Freund von verschachtelten Funktionen, sondern verlagere Code lieber in verschiedene MovieClips (statte Sie quasi mit einem Verhalten aus) - aber das ist wohl Geschmackssache. ;)

Gruß
.
 
Zurück