Script für Preloader anpassen.

Hi,

das war mein erster Prelaoder (1. Szene, 1. Bild, sollte alle Szenen durchladen). Der hat nur solala funktioniert.

Code:
onClipEvent (load) {
	bytesI = _parent.getBytesLoaded();
	zeitF = getTimer()+1000;
}
onClipEvent (enterFrame) {
	zeitA = getTimer();
	prozent = int(_parent.getBytesLoaded()/_parent.getBytesTotal()*100);
	if (zeitA>=zeitF) {
		bytesA = _parent.getBytesLoaded();
		bytesT = bytesA-bytesI;
		tR = int((_parent.getBytesTotal()-_parent.getBytesLoaded())/bytesT);
		sR = tR;
		while (sR>=60) {
			i++;
			sR = sR-60;
		}
		mR = int(tR/60);
		while (mR>=60) {
			i--;
			mR = mR-60;
		}
		hR = int((tr/60)/60);
		sR = sR<10 ? "0"+sR : sR;
		mR = mR<10 ? "0"+mR : mR;
		hR = hR<10 ? "0"+hr : hR;
		tR = (((hR+":")+mR)+":")+sR;
		tit = bT<1000 ? " Bytes" : " kb";
		bytesT = bytesT<1000 ? bytesT : int(bytesT/100)/10;
		zeitF = getTimer()+1000;
		bytesI = _parent.getBytesLoaded();
	}
	speed._height = prozent;
	daten = ((((((((("Percentage: "+prozent+"%")+"<br>Already loaded: ")+int(_parent.getBytesLoaded()/1024))+"kb<br>Total kb: ")+int(_parent.getBytesTotal()/1024))+"kb<br>Speed: ")+bytesT)+tit)+" per seconds<br>Remaining time: ")+tR;
	if (_parent.getBytesTotal() == _parent.getBytesLoaded()) {
		this._visible=false;
		i++;
		if (i>=50) {
			_parent.play();
		}
	}
}

Jetzt habe ich aber einen zweiten Preloader, der externe Inhalte perfekt lädt:

Code:
this._visible=false;
var isloaded = false; // Nichts geladen
var bytesI = 0;
var bytesT = 0;
var hR = 0;
var sR = 0;
var mR = 0;
var hR = 0;
var tR = 0;
var tit = "";
var zeitF = 0;

function loadContent(cont, filename) {
	isloaded = false; // Noch nichts geladen
	_tgt = cont;
	bytesT = 0;
	hR = 0;
	sR = 0;
	mR = 0;
	hR = 0;
	tR = 0;
	bytesI = _tgt.getBytesLoaded();
	zeitF = getTimer() + 1000;
	_tgt.loadMovie(filename); // Laden der Datei
	this.onEnterFrame = function() {
		update();
	}
}

function update() {
	var zeitA = getTimer();
	var prozent = int(_tgt.getBytesLoaded() / _tgt.getBytesTotal() * 100);
	if (zeitA >= zeitF) {
		this._visible = true;
		var bytesA = _tgt.getBytesLoaded();
		bytesT = bytesA - bytesI;
		tR = int((_tgt.getBytesTotal() - _tgt.getBytesLoaded()) / bytesT);
		sR = tR;
		while (sR >= 60) {
			i++;
			sR = sR - 60;
		}
		mR = int(tR / 60);
		while (mR >= 60) {
			i--;
			mR = mR - 60;
		}
		hR = int((tR / 60) /60 );
		sR = (sR < 10)? "0" + sR : sR;
		mR = (mR < 10)? "0" + mR : mR;
		hR = (hR < 10)? "0" + hR : hR;
		tR = (((hR + ":") + mR) + ":") + sR;
		tit = (bT < 1000)? " Bytes" : " kb";
		bytesT = (bytesT < 1000)? bytesT : int(bytesT / 100) /10;
		zeitF = getTimer() + 1000;
		bytesI = _tgt.getBytesLoaded();
	}
	speed._height = prozent;
	daten = ((((((((("Percentage: " + prozent + "%") + "<br>Already loaded: ") + int(_tgt.getBytesLoaded() / 1024)) + "kb<br>Total kb: ") + int(_tgt.getBytesTotal() / 1024)) + "kb<br>Speed: ") + bytesT) + tit ) + " per seconds<br>Remaining time: ") + tR;
	if (_tgt.getBytesTotal() == _tgt.getBytesLoaded()) {
			this._visible = false;
			isloaded = true;
			delete this.onEnterFrame;
	}
}

Ich kann aber den besseren Preloader (der externe Inhalte lädt) leider nicht für den anderen Zweck umbauen (1. Szene, 1. Bild, der alle anderen Szenen laden soll).

Kann mir bitte jemand helfen?

Vielen Dank mal wieder.

Gruß
HE
 
Haarentferner hat gesagt.:
das war mein erster Prelaoder (1. Szene, 1. Bild, sollte alle Szenen durchladen). Der hat nur solala funktioniert.
Was meinst du denn mit "solala"?
Das System der beiden sieht beim Überfliegen ja relativ ähnlich aus.
Wenn du beschreibst, was beim einen tut und beim anderen nur "solala" ist, müßte man nicht im Trüben stochern sondern hätte schon mal einen Ansatz
 
Hi,

... im Prinzip musst Du bei der zweiten Version nur die Funktion loadContent so ändern:
Code:
function loadContent() {
	isloaded = false; // Noch nichts geladen
	_tgt = _root;
	bytesT = 0;
	hR = 0;
	sR = 0;
	mR = 0;
	hR = 0;
	tR = 0;
	bytesI = _root.getBytesLoaded();
	zeitF = getTimer() + 1000;
	this.onEnterFrame = function() {
		update();
	}
}

Gruß
.
 
Hi,

mit "solala" meine ich, dass der Loader den letzten Wert bei der Darstellung (Remaining time) nicht fehlerfrei gegeben hat (stand immer auf 0, auch bei rel. großen Datenmengen).

Ich habe den letzten Hinweis versucht umzusetzen.

Aber leider kein Erfolg (der Loader arbeitet jetzt gar nicht mehr).

Habe die .fla Datei mal angehängt.

Wäre echt super, Datic, wenn Du Dir das ansehen würdest (möchte unbedingt Deine Variante umsetzen).

Gruß
HE
 

Anhänge

Zuletzt bearbeitet:
Hi,

damit der Preloader für den Hauptfilm funktioniert, musst Du die Funktion loadContent im ersten Frame aufrufen (siehe Anhang). Zweitens sollte der Preloader nach dem Laden eine Funktion "isLoaded" auf _root aufrufen, damit der Film weiter abgespielt wird.

Gruß
.
 

Anhänge

Zurück