Alle SWFs vorladen

emonem

Erfahrenes Mitglied
Hi,

ich bauche mal euren Rat.
Ich baue eine Page in der die einzelnen swf`'s per loadMovie Methode in einem container im Hauptfilm reingeladen werden sobald man auf einen link klickt .
Ist ja die übliche vorgehensweise so zu arbeiten.
Nun gut, jetzt möchte ich aber das alle swf's vorher mit einem preloader vorgeladen werden und danach
der Film ganz normal abläuft ohne aber das ich später was zusätzlich nachladen muß.

GIbt es dafür ein spezeillen Preloader der mir die ganzen Filme in meinem Cache speichert
oder muß man dafür die swf's in mehrer container_mc's legen, so das sich zb über
container1_mc._visible=true; die sichtbarkeit ein/auschalten läßt und man darauf zugreifen kann.

Oder funktioniert soetwas ganz anders?
Wie würde so ein Preloader aussehen der mir alle swf's vorläd?
Mein Preloader läd mir nur meinen Hauptfilm.

Hoffe auf Hilfe.

Danke und Gruß
 
Ich bin jetzt etwas weitergekommen und
habe meinen standartpreloader so umgebaut das er nun die swf's in den entsprechende container_mc's vorläd und sobald alles geladen ist spielt sich der gesamte Film ab.

Hier ist mein Skript:
PHP:
stop();
_root.container1_mc.loadMovie("test.swf");
_root.container2_mc.loadMovie("test2.swf");
_root.onEnterFrame = function() {
	totalBytes = _root.container1_mc.getBytesTotal()/1024;
	totalBytes2 = _root.container2_mc.getBytesTotal()/1024;
	loadedBytes = _root.container1_mc.getBytesLoaded()/1024;
	loadedBytes2 = _root.container2_mc.getBytesLoaded()/1024;
	mytotalBytes = totalBytes+totalBytes2;
	myloadedBytes = loadedBytes+loadedBytes2;
	percent = Math.round(myloadedBytes*100/mytotalBytes);
	_root.container2_mc._visible = false;
	_root.container1_mc._visible = false;
	if (mytotalBytes>1 && mytotalBytes == myloadedBytes) {
		gotoAndPlay("start");
		delete this.onEnterFrame;
	}
};

Gibts es eine möglichkeit das man das Skript vereinfachen kann.
Wenn ich jetzt 10 swf Dateien vorladen will ist es wahrscheinlich sehr unprofessionel
wenn ich zB totalBytes von 1 - 10 usw. durchnummerieren müßte.
Ist der einsatz einer Schleife da nicht günstiger? Bin mit meinen AS Kenntnissen
leider noch nicht soweit.

Ein weiteres Problem bei dem Skript ist das es zwar die größe der zu laden swf Dateien
berechnet und vorläd aber es wird die größe des Hauptfilmes beim preloading nicht einberechnet. Was müßte ich im AS code ergänzen?

Ich habe den Preloader mal hochgeladen. link
 
Danke,

ich hab jetzt einen Multiloader (multiloader v5) von dir hier im Forum gefunden.
und ich hab die notwendigen sachen im deinem Skript angepaßt.
Soweit geht alles, der loader läd mir meine swf's vor und springt danach von Frame 1 auf
2 in dem meine Buttons liegen.

Soweit ich es verstanden habe sind die geladenen swf's in einem array gespeichert, aber wie greif ich denn jetzt auf diese zu?
Wie ist das Actionscript wenn ich jetzt mit Button1_btn film1.swf angezeigt haben will?

Ich wollte mal nachschauen ob auf deiner HP eine Anleitung dafür ist aber ich komm
nicht auf deine HP. Bekomme jedesmal die Meldung das die Seite Plugin v.7 benötigt.
Ich hab 9 installiert.
 
Wie ist das Actionscript wenn ich jetzt mit Button1_btn film1.swf angezeigt haben will?
Die Clips befinden sich zunächst einmal im Browsercache. Ein erneutes Einladen per loadMovie sollte genügen.

Ansonsten liegen die Clips in
Code:
loader.file[index].holder.clip
und können so positioniert und sichtbar geschaltet werden. Ein Ansprechen über den Multiloader setzt allerdings voraus, dass sich die Instanz von "multiloader" (loader) auch noch in Frame 2 Deiner Hauptzeitleiste befindet (ich würde Dir generell empfehlen, auf eine Hauptzeitleiste zu verzichten).

Ich werde mich wohl mal daran machen, eine Version zu schreiben, der Du die Referenzen für die Zielclips selbst übergeben kannst - wenn ich soweit bin, kann ich hier ein Updata posten.

Gruß
.
 
Wäre das einladen der zuvor geladenen Filme über die Buttons so richtig:
PHP:
button1_btn.onPress = function() {
	container_mc.loadMovie(_root.clips[0]);
};

button2_btn.onPress = function() {
	container_mc.loadMovie(_root.clips[1]);
};

Was wäre wenn man den Browsercache deaktiviert hat?
Mal angenommen ich würde 5Mb vorladen, müßten diese swfs später
bei deaktiviertem Cache trotzdem nochmal geladen werden?
 
Hi,

auf die Cacheeinstellungen hast Du natürlich keinen Einfluss - diesse Methode ist daher nur für wenige bzw. kleine Files sicher anzuraten.

Anbei eine aktuelle Version, der Du einen Container übergeben kannst, in den die Clips eingeladen werden. Nach dem Laden wird der Funktion "onFinished" ein assoziatives Array mit den MCs zurückgegeben. So hast Du halbwegs komfortabel Zugriff auf die eingeladenen Clips.

Gruß
.
 

Anhänge

Zurück