Problem mit einladen von Bild + preloader

NoGFX

Erfahrenes Mitglied
Eigentlich hatte ich nie wirklich Probleme mit Preloader, ist ja auch kein komplziertes Prinzip: lade Bild, wenn Bild vollständig geladen, tue dies und das.

Nur will mein Preloader entweder das Bild nicht laden, bzw es interessiert ihn nicht ob das Bild vollständig geladen ist oder nicht - oder er tut schlichtweg nichts. Der Preloader ist als Funktion angelegt und jenachdem von welcher Position aus ich diese Funktion aufrufe, tut er entweder nichts, oder nicht das was er soll. Hier mal der Code, vllt hat jemand eine Lösung und könnte mir sagen woran es liegt...

Die Preloader Funktion an sich (ziemlich abgespeckt, da ich mir erhofft hab so dem Fehler auf die Schliche zu kommen):
PHP:
function loadBG() {
	bar._visible = true;
	show_per._visible = true;
	bg_pic.loadMovie("testi.jpg");
	//
	this.onEnterFrame = function() {
		max = bg_pic.getBytesTotal();
		cur = bg_pic.getBytesLoaded();
		//
		if (cur>=max) {
			//
			bar._visible = false;
			show_per._visible = false;
			delete this.onEnterFrame;
			loadMasks();
		}
	};
}

loadMasks Funktion (diese gibt an wieoft die dynamischen Masken geladen werden (dazu weiter unten mehr :p)):
PHP:
function loadMasks() {
	for (i=3; i<=62; ++i) {
		++zeahler;
		//
		if (zeahler>=30) {
			zeahler = 1;
			++y;
		}
		createMask(i, zeahler, y);
	}
}


createMasks Funktion:
PHP:
function createMask(nr, zeahler, y) {
	cont.createEmptyMovieClip("yay"+nr, nr);
	cont["yay"+nr].attachMovie("maske", "mask"+nr, nr);
	cont["yay"+nr]._x = -100;
	cont["yay"+nr]._y = 108*y;
	//
	cont["yay"+nr].onEnterFrame = function() {
		this._x += ((760-(29*zeahler))-this._x)/(30*(zeahler/26));
		this._y += ((100+(109*(y-1)))-this._y)/(15*(zeahler/26));
		//
		if (this._x>=(759.5-(29*zeahler))) {
			this._x = (760-(29*zeahler));
			this._y = ((100+(109*(y-1))));
			delete this.onEnterFrame;
		}
	};
}

Der Preloader soll das Bild laden, loadMasks ausführen, welche wiederum createMasks aufführt um das grad eigeladene Bild zu maskieren. Hat soweit super geklappt, bis der Preloader ins Spiel kam.

Hilfe? =/
Danke
 
Hi,

Du solltest testen, ob sowohl cur als auch max größer Null sind. Beide Werte geben zu Beginn gerne mal 0 oder -1 zurück, so dass Deine Bedingung erfüllt ist, obwohl der Download noch nicht einmal begonnen hat:
Code:
function loadBG() {
    bar._visible = true;
    show_per._visible = true;
    bg_pic.loadMovie("testi.jpg");
    //
    this.onEnterFrame = function() {
        max = bg_pic.getBytesTotal();
        cur = bg_pic.getBytesLoaded();
        //
        if (cur > 0 && max > 0) {
            if (cur>=max) {
                //
                bar._visible = false;
               show_per._visible = false;
                delete this.onEnterFrame;
                loadMasks();
            }
        }
    }
}

Gruß
.
 
Danke schonmal, allerdings habe ich nochmal ein bisschen rumprobiert und mir mal die Größe von cur und max ausgeben lassen, und er scheint irgendwie Probleme zu habe die Größe von dem Ding auszulesen.

Im Anhang habe ich mal die .fla von dem loading Script alleine, irgend eine Idee wieso es so ist? Ich meine, er ist ja auch fähig die Datei selbst zu laden, wieso aber nicht die Größe?
 

Anhänge

Hi,

probiers mal mit dieser Bedingung:
Code:
if (cur > 10 && max > 10) {
Bei Deiner Bilddatei und einem statischen (auf die Bühne gezogenen) Container geben beide Funktionen kurzzeitig den Wert 4 zurück und Deine onEnterFrame-Methode bricht ab.

Gruß
.
 
Zurück