Szenen Übergänge

green_phanta

Erfahrenes Mitglied
Hi!

Hat jemand Ahnung wie man Szenen Übergänge machen könnte? Bzw hat jemand Beispiele?
Das wäre glaube ich für ein paar Leute ganz nützlich...


Was mich betrifft such ich was ganz spezielles:
Tobias hat mir zwar schonmal so ein Beispiel gezeigt aber jetzt suche ich doch etwas was eine Spur anders ist:
Ich will eigentlich eine ganz simple Sache haben (ich galube das es simpel ist ;)):
Und zwar eine einfache weiß-Blende (Bild wird auf weiß geblendet und dann wieder herunter)
Doch: Ich will das nicht auf alle Objekte der Bühne anwenden, ist das möglich? Das ist auf dem Grund weil ein paar sachen genau an der sleben Stelle sitzen und die kann man dann gleich stehen lassen das sieht besser aus.

Ist das möglich?



Vielen Dank

greets green
 
Hallo!

Bild wird auf weiß geblendet und dann wieder herunter
Was verstehst du unter einem Bild? Ein Bitmap, ein MovieClip, eine Szene?

Ich will das nicht auf alle Objekte der Bühne anwenden, ist das möglich?
Nun, das kommt ein wenig drauf an. Nach meinem Verständnis kannst du doch alle Elemente deines Projekts, die ausgeblendet werden sollen, in einen MovieClip packen und auf der obersten Ebene dieses MovieClips mit einem Tween dann bei Bedarf eine weisse Fläche einblenden.

Was das mit Szenen zu tun hat, versteh ich nicht und von der Verwendung von Szenen rat ich dir sowieso ab ;).

gruss
 
Also mit "bild" wollte ich nur die Weißblende erklären falles es jemand nicht weiß.

Also es sollte jedoch die ganze Bühne weißgeblendet werden, als Übergang zu nächsten Szene. Ausser ein paar Objekten, welche NICHT überblendet werden sollen.

Ich kann die Objekte leider nicht in einen MC geben die Geblendet werden sollen da das aus technischen Gründen teilweise nicht möglich ist.

Ich weiß, Szenen, ich arbeite auch nicht gerne mit ihnen. Jedoch würde ich nicht wissen wie ich eine Homepage sonst machen könnte.
 
Hallo!

...da das aus technischen Gründen teilweise nicht möglich ist.
Wie auch immer...
Dann erstellst du halt in der Hauptzeitleiste eine Ebene mit der Blende drauf und legst alle Ebenen, auf denen sich Elemente befinden, die ausgeblendet werden sollen, unter die Blende, alle anderen darüber. Nun kannst du die Blende ein- bzw. ausblenden ;).
Wenn das aus technischen Gründen auch nicht geht, seh ich nur noch die Möglichkeit, für alle auszublendenden Elementen eine eigene Blende zu erstellen, sehr aufwändig!

Jedoch würde ich nicht wissen wie ich eine Homepage sonst machen könnte.
Wenn du für jedes Menü eine eigene Zeitleiste haben möchtest, könntest du für jedes Menü eine eigene *.fla erstellen und die Menüs dann in einen Hauptfilm laden. Du könntest auch für jedes Menü einen MovieClip erstellen und die dann aus der Bibliothek attachen. Oder du könntest jedem Menü auf der Hauptzeitleiste eine bestimmte Anzahl Frames zuweisen und mit gotoAndStop navigieren. Das mal so als Denkanstoss.

gruss
 
Zuletzt bearbeitet:
Das mit dem reinladen ist eigentlich eine sehr gute Idee... mhh muss ich mir mal ansehen.

Schau mal ich habe mal von Tobias so eine Blende Bekommen:

PHP:
stop();

var clips = new Array();
for (var i in this) {
	if (typeof(this[i]) == "movieclip") {
		this[i]._cl = new Color(this[i]);
		clips.push(this[i]);
	}
}

var tr = {rb:255, gb:255, bb:255};

for (var i in clips) {
	clips[i]._cl.setTransform(tr);
}	

this.onEnterFrame = function() {
	tr.rb += (0 - tr.rb) / 3;
	tr.gb = tr.bb = tr.rb;
	if (Math.abs(0 - tr.rb) < 1) {
		delete this.onEnterFrame;
		tr.rb = tr.gb = tr.bb = 0;
	}
	for (var i in clips) {
		clips[i]._cl.setTransform(tr);
	}
}


Diese ist auch super aber die blendet nicht auf weiß auf sondern funktioniert so:
Plötzlich ist alles weiß und dann fadet es runter. Wie ein Blitz sozusagen.

Mein Problem ist:
Ich weiß nicht wie ich es umändere das man es auch einfaden kann und ich weiß nicht wie ich einzelne ausnahmen machen kann.

thx


EDIT: Was ich damit sagen wollte, mir wäre eine AS Lösung lieber wenn es mögliche ist....
 
Zuletzt bearbeitet:
Hallo,

mit folgendem Code kannst du die Funktion "blenden" aufrufen, der erste Parameter ist der MovieClip, der geblendet werden soll, als zweiter die Geschwindigkeit (zwischen 0 und 1) und als dritter den Alpha-Modifikator(100 => ausblenden, 0=>einblenden):

Code:
MovieClip.prototype.mc_setTo = function(s:Number, d:Number): Void {
	var u: Number = this.getNextHighestDepth();
	if (!this.mc_setToCT) {
		this.createEmptyMovieClip("mc_setToCT", u);
	}
	//
	var e: Number = 2; 
	var pNr: Number = Math.floor((arguments.length-2)/2);
	var pAll: Array = [];
	//
	for (var i: Number = 0; i < pNr; i++) {
		pAll[i] = {p: arguments[e], t: arguments[e+1]}
		e += 2;
	}
	//
	var i: Number = d;
	this.mc_setToCT.onEnterFrame = function() { 
		if (i>0) {
			i--;
		} else {
			for (var u: Number = 0; u < pAll.length; u++) { 
				var p: String = pAll[u].p;
				var t: Number = pAll[u].t;
				var dif: Number = t-this._parent[p];
				dif *= s;
				this._parent[p] += dif;
				if (this._parent[p] == this[p +"CTRL"]) {
					
					this._parent[p] = pAll[u].t;
					pAll.splice(u, 1);
				} else {
					this[p +"CTRL"] = this._parent[p];
				}
	
			}
			if (pAll.length < 1) {
				delete this.onEnterFrame;
				this.removeMovieClip();
			}
		}
	};
};

function blenden (clip: MovieClip, geschwindigkeit: Number, alpha: Number): Void {
	var u: Number = clip.getNextHighestDepth();
	var ov: MovieClip = clip.createEmptyMovieClip("blende", u);
	var w: Number = clip._width;
	var h: Number = clip._height;
	with (ov) {
		lineStyle(.1, 0x000000, 0);
		moveTo(0,0);
		beginFill(0xffffff);
		lineTo(w, 0);
		lineTo(w, h);
		lineTo(0, h);
		lineTo(0, 0);
		endFill();
	}
	ov._alpha = 100-alpha;
	ov.mc_setTo(geschwindigkeit, 0, "_alpha", alpha);
}

Ein Beispiel:
Code:
blenden(meinMovieClip, .2, 100); // Der MovieClip "meinMovieClip" wird weiss abgeblendet

...mir wäre eine AS Lösung lieber wenn es möglich ist.
Versteh ich gut, aber wäre es dann nicht von Vorteil, wenn du dich mal selbst ein bisschen in die Thematik einarbeiten würdest?

gruss
 
Vielen Dank, genau das habe ich gesucht!!

Ja ich bin eh nicht einer von denen die andere machen lassen.
Ich lerne sehr gerne und spiele mich auch viel damit aber bei solchen langen Codes schaff ich es oft nicht....

Ich kann AS ganz gut lesen aber schreiben ist halt noch eine andere Sacha.

Naja Danke

greets green
 
mhh, noch eine Frage:

Ich kann derzeit ja keine Buttons oder so faden, wegen dieser Zeile:

function blenden (clip: MovieClip, geschwindigkeit: Number, alpha: Number): Void {

Oder?

Wenn nicht ist es auch ok, wollte nur fragen.




Ach ja ich glaube dein Script hat einen kleinen "Bug"
Und zwar, wird die Weiße Fläche ab dem Registrierungspunkt des Objektes erstellt.
Wenn dieser jetzt in der Mitte liegt hat man da ein Problem....
Könnte man in den Script noch schreiben das er den RegistrierungsPunkt automatisch nach links oben verschiebt?
Ach ja und wäre es möglich die Weiße Fläche 2 Pixel größer zu machen als das Objekt?


greets
 
Zuletzt bearbeitet:
Hallo,

wie du richtig erkannt hast, musst du bloss die Variablentyp-Definition entfernen und dann solltest du eigentlich auch Buttons "blenden" können.

Die Ankerpunkt-Geschichte hab ich mit getBounds gelöst, allerdings etwas freihändig, hab grade kein Flash zur Verfügung, ich konnte das Skript also nicht testen:

Code:
function blenden (clip: MovieClip, geschwindigkeit: Number, alpha: Number): Void {
	var u: Number = clip.getNextHighestDepth();
	var ov: MovieClip = clip.createEmptyMovieClip("blende", u);
	var bounds: Object = this.getBounds(clip);
        var x: Number = bounds.xMin-1;
        var y: Number = bounds.yMin-1;
        var w: Number = clip._width+2;
	var h: Number = clip._height+2;
	with (ov) {
		lineStyle(.1, 0x000000, 0);
		moveTo(x,y);
		beginFill(0xffffff);
		lineTo(x+w, y);
		lineTo(x+w, y+h);
		lineTo(x, y+h);
		lineTo(x, y);
		endFill();
	}
	ov._alpha = 100-alpha;
	ov.mc_setTo(geschwindigkeit, 0, "_alpha", alpha);
}

Et voilà!

gruss
 
Zuletzt bearbeitet:
Ok das ist schon sehr gut.
NUR... wenn ich blenden auf test_mc zum Beispiel aufrufen möchte, bei einem press eines Buttons:
PHP:
_root.test.onPress = function() {
blenden(_root.jo, .2, 100);
};

Dann muss ich einmal Klicken, und erst wenn ich dann das zweite mal klicke fadet es... warum?


greets


Ps:
Ich hoffe du bekommst Flash bald wieder ;). Muss ja schrecklich sein für nen Flasher der kein Flash hat^^.
 
Zurück