preloader für mehrere swfs

Status
Nicht offen für weitere Antworten.

tschitscho

Mitglied
Ich brauch einen kleinen einfachen preloader.
Ich habe viele Varianten über sie Suche gefunden, doch irgendwie funktionieren die nicht so wie ich möchte.
Ich habe 36 kleine swf's, alle so um 60kb, die ich gerne alle auf einmal vorladen möchte.
Kann mir jemand helfen?
 
Hi,

Wie werden Deine Clips denn geladen? Stehen schon Container mit entsprechenden Koordinaten zur Verfügung? Spontan würde ich sagen: Erstelle Dir einen flexiblen Preloader und instanziere ihn (z.B. in einer Schleife) so oft, wie Du ihn brauchst. Ich kann hier schlecht einfach ein Script posten, da das u.U. nicht Deinen Anforderungen entspricht, aber wenn Du ein paar Infos mehr geben, oder Deine Datei posten könntest, ginge das sicher fix.

Gruß

.
 
Danke für die schnelle Antwort.

Die swf's sind alle einzeln. Sie werden über html aufgerufen, also kein Container.

Ich möchte die Dinger gerne auf der Startseite in den Cache laden, und wenn der Benutzer dann irgendwo auf der Webseite diese kleine swf's aufruft, dass diese gleich ablaufen.
 
Hi,

klar, das ist einfach: Setze auf die Startseite ein kleines (oder unsichtbares) SWF, das alle benötigten Filme einlädt (dann sind sich auch im Cache verfügbbar). Wenn Du z.B. einen Ladebalken oder eine Prozentanzeige für alle Unterfilme willst, wird es um ein paar Zeilen länger... ich könnte hier was posten, aber ein paar Infos vorab wären gut:

- sind die Unterfilme irgendwie durchnummeriert (z.B. film1.swf, film2.swf ...)?

- kann man die Dateinamen andernfalls in eine HTML, XML- oder Textdatei packen, um diese auszulesen?

- Brauchst Du einen Ladebalken?

Gruß

.
 
ja genau an sowas hab ich auch gedacht, nur binich Flashtechnisch nicht sehr begabt.
Ein kleiner Ladebalken wär schon was tolles.
Die swf's sind nicht durchnummeriert, aber ich kann sie in einem Textfile speichern.
Das ganze sähe dann etwa so aus:
Code:
pics/portraits/morph/hb_hb.swf; pics/portraits/morph/hb_hm.swf; pics/portraits/morph/hb_mm.swf
 
Hi,

ich hab mal eben was zusammengeschrieben (ich habe es mit 3 Clips getestet, und es funktioniert - wenn Probleme auftauchen, meld Dich einfach noch mal):
PHP:
var lv = new LoadVars();

lv.load("subclips.txt");
var count = 0;
var cname = new Array();
var loaded = new Array();
var total_all = 0;
var loaded_all = 0;
var precent = 0;
var container = new Array();

lv.onLoad = function() {
	while(eval("this.clip"+count) != undefined) {
		cname[count] = eval("this.clip"+count);
		count ++;
	}
	loadThem();
}

function loadThem() {
	for (var i=0; i<count; i++) {
		container[i] = this.createEmptyMovieClip("container" + i, i);
		container[i].loadMovie(cname[i]);
	}
	this.onEnterFrame = function() { // Auf Größeninformationen warten
		var init = true;
		for (var i=0; i<count; i++) {
			if (!(container[i].getBytesTotal() > 0 && container[i].getBytesTotal() > 0)) {
				init = false;
			}
			if (init == true) startProgress(); // Ladefortschrittt überwachen
		}
	}
}

function startProgress() {
	delete this.onEnterFrame;
	total_all = 0;
	for (var i=0; i<count; i++) {
		total_all += container[i].getBytesTotal();
	}
	this.onEnterFrame = function() {
		loaded_all = 0;
		for (var i=0; i<count; i++) {
			loaded_all += container[i].getBytesLoaded();
		}
		percent = loaded_all * 100 / total_all;
		// in percent sollte die Gesamtprozentzahl stehen
		trace(int(percent));
		if (percent >= 100) {
			// Beenden des Ladevorgangs
			delete this.onEnterFrame;
		}
	}
}
Die Clips müssen in der Textdatei "subclips.txt" als URL-String kodiert sein:

clip0=images/sonstwas.swf&clip1=images/nachwas.swf&clip2=inages/dasletzte.swf


Gruß

.
 
nun ja, ich kann dir nicht genau sagen obs funktioniert...
die swfs werden irgendwie geladen und das erste wird dann immer angezeigt.
Ladebalken ist irgendwie keiner da.
 
Ja nee, is klar :) ich habe ja auch keinen Ladebalken eingebaut (ein bisschen Arbeit wollte ich Dir schon überlassen). Das Anzeigen der Clips verhinderst Du, indem Du die "container" unsichtbar schaltest:
PHP:
container[i] = this.createEmptyMovieClip("container" + i, i); 
container[i].loadMovie(cname[i]);
container[i]._visible = false;
In dieser Zeile:
PHP:
// in percent sollte die Gesamtprozentzahl stehen
kannst Du z.B. einen Ladebalken anzeigen lassen. Die Variable "percent" enthält den Prozentwert der geladenen Daten, Absolutwerte bekommst Du aus den Variablen "loaded_all" und "total_all".

Gruß

.
 
Gut, dass ich heute meine Spendierhosen anhabe (siehe Anhang). ;)

Gruß

EDIT: auf Wunsch auch noch mal als Flash-MX
.
 

Anhänge

  • multiloader.zip
    7,3 KB · Aufrufe: 262
  • multiloader_mx.zip
    5,7 KB · Aufrufe: 231
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Zurück