currMovie, Transitions, Levels

harrry

Erfahrenes Mitglied
hallo, vielleicht kann mir jemand bei dieser sache kurz helfen?

es geht um dieses bekannte transition-script: unter zuhilfenahme von "currMovie" wird zuerst das outro des aktuell geladenen, 1. movies gespielt und dann erst das nächste angewählte movie 2 geladen und abgespielt.

mit "loadMovie" in einen container-clip klappt das auch, aber ich hätte die zugeladenen movies gerne auf levels, dh. geladen mit "loadMovieNum".

so sähe das von mir veränderte script aus, aber leider klappts nicht: es wird anstelle des 2. films immer wieder derselbe, 1. film geladen.

dieses script ist auf button 1:

on (release) {
if (_root.currMovie == undefined) {
_root.currMovie = "section1";
loadMovieNum("section1.swf", 1);
} else if (_root.currMovie != "section1") {
if (_level1._currentframe >= _level1.midframe) {
_root.currMovie = "section1";
_level1.play();
}
}
}

und dieses auf button 2:

on (release) {
if (_root.currMovie == undefined) {
_root.currMovie = "section2";
loadMovieNum("section2.swf", 1);
} else if (_root.currMovie != "section2") {
if (_level1._currentframe >= _level1.midframe) {
_root.currMovie = "section2";
_level1.play();
}
}
}

was mach ich falsch
 
Hi und willkommen im Forum,

bitte achte auf unsere Netiquette (insbesondere in Bezug auf Groß- und Kleinschreibung) und setze Scriptauszüge in Code- oder PHP-Tags.

Es sieht so aus, als hättest Du da eine Kombination aus dynamischen Inhalten mit AS und Zeitleistenanimationen - eine Kombination, die ich (erst Recht mit Levelzuordnungen) generell für ungünstig, da schwer zu debuggen und zu handeln, halte.

Was spielt sich denn auf den einzelnen Frames der Zeitleiste ab (und was ist .midframe)? Was genau spricht gegen Container?

Ein solchens "Transition"-Script lässt sich auch ohne Zeitleiste relativ unkompliziert realisieren. Schau z.B. einmal hier (klick) - oder poste Deine Datei, damit wir uns ein Bild von der Gesamtsituation machen können.

Gruß
.
 
Hallo Datic,

Danke für Deinen Willkommensgruß.

Habe Deinen Link studiert, es ist aber leider nicht ganz das, was ich brauche, da es mir nicht nur um Ein- oder Ausblenden geht, sondern um eine komplette Auf- und Abbau-Animation. Und sowas geht - zumindest mit meinem Wissenstand - nur per Zeitleiste.

Und: ich würde meine Dateien ja gerne hochladen - aber wie, wenn keine ".flas" erlaubt sind? Wie soll man sonst nachvollziehen, was sich auf der Zeitleiste befindet?

Schon im Voraus mal herzlichen Dank für die Hilfe.

Harrry
 
Hi,

Es spielt eigentlich keine Rolle, ob die Animationen zum Ein- und Ausblenden in den nachgeladenen Filmen existieren, oder im Hauptfilm untergebracht sind.
Ich würde am Ende der Animationen zum Ausblenden eine Funktion auf _root aufrufen, die den jeweils nächsten Film lädt. - Du hast am Ende der beiden "Unterfilme" das entsprechende loadMovie-Kommando direkt eingebaut (müsste übrigens auch ein loadMovieNum sein). Das Problem ist, soweit ich es sehe, dass Du von in einen Level geladenen Dateien keinen Zugriff auf Variablen und Funktionen auf _root hast; trace(_root.currMovie) gab jedenfalls immer "undefined" aus. Ich kenne mich mit diesen Levels nicht besonders aus, vielleicht gibt es da eine Möglichkeit ... aber mit einem Container geht das bestimmt und ebenso einfach:
PHP:
// Auf der Hauptzeitleiste:
_root.currMovie = "section1";

var container = this.createEmptyMovieClip("container", 100);
container.loadMovie(_root.currMovie+".swf");

// Auf den Buttons dann:
on (release) {
	if (_root.currMovie == undefined) {
		_root.currMovie = "section1";
		_root.container.loadMovie("section1.swf");
	} else if (_root.currMovie != "section1") {
		if (container._currentframe >= container.midframe) {
			_root.currMovie = "section1";
			container.play();
		}
	}
}

// und im jeweils letzten Bild der beiden "Unterfilme":
_root.container.loadMovie(_root.currMovie+".swf");
stop();

Gruß
.
 
Container sind sicherlich von Feinsten, aber für diese spezielle Sache brauche ich halt levels. Auf jeden Fall herzlichen Dank!
 
Zurück