Kleines Preloader Problem...

NoGFX

Erfahrenes Mitglied
Preloader an sich, sind eine einfache Sache, nur stecke ich momentan etwas fest.

Es handelt sich hierbei um einen (fast) standard Preloader, er läd allerdings nur relativ kleine Datein und ich möchte, dass er die Pronzente wie in einem Fade zählt.

Bei einem dynamischen Fade ist die Formel im Normalfall ähnlich wie folgende:

PHP:
my_mc._alpha += (100 / my_mc._alpha)/5

Genau den Effekt möchte ich bei einem Preloader.

So das z.B. der eigentliche Prozentwert bereits 100 ist, aber er das ganze wie in einem Fade Effekt hochzählt. Problem bei der Sache, wenn ich die oben genannte Formel benutze, ist der Fade bereits beendet, bevor er wirklich die 100 erreicht, durch das Teilen des ganzen Pronzentwertes in der Formel...

Ich kann mich nicht gut ausdrücken, oder?

Hat jemand, der die eigentliche Frage verstanden hat, eine Idee, wie man soetwas umsetzen kann?
 
Hi,

Du musst den Vorladevorgang vom Preloader ausführen lassen, und nicht von der onEnterFrame-Methode, die die geladenen Bytes zählt. Erst, wenn der Balken (oder die Anzeige) wirklich den Wert 100 erreicht hat, springst Du dann zu den eigentlichen Inhalten.

Gruß
.
 
Das Problem das ich damit habe ist, dass die Anzeige dann bereits 100% anzeigt, obwohl diese noch nicht erreicht sind.
 
Hi,

eigentlich dürftest Du bestenfalls das Problem bekommen, dass die Anzeige etwas zu spät 100% erreicht. ;)

Code:
this.onEnterFrame = function() {
    var cur = this.getBytesLoaded();
    var max = this.getBytesTotal();
    if (cur > 10 && max > 10) {
        var p = cur * 100 / max;
        ladebalken.setPerc(p, this);
    }
}

ladebalken.setPerc = function(d, r) {
    this.onEnterFrame = function() {
        this._xscale += (d - this._xscale) / 4;
        if (Math.abs(d - this._xscale) < 1) {
            this._xscale = d;
            delete this.onEnterFrame;
            if (d >= 100) {
                delete r.onEnterFrame;
                // Hier ggf. weiterspringen!
            }
        }
    }
}

Gruß
.
 
Also ich vestehe gerade nicht wie die ganzen Posts zu den ersten Post wirklich im zusammenhang stehtn ;)

Als erste mal, wo soll das denn stehn bei deinen kleinen standart Preloader ?
PHP:
my_mc._alpha += (100 / my_mc._alpha)/5
... dann was Läds du denn eigentlich? ... Normal kann man bei Flash abfragen wie groß das zu ladende Object ist (in bytes) und wieviel er es schon hat. --> Schau dir nochmal an wie nen normaler Preloader das macht ;)


2. Was soll denn das für ne Formel sein?
PHP:
per_ -= (per_- ((cur_ / max_) * 100)) * 0.75;

... is es nicht leichter einfach mal sowas zu rechnen
PHP:
Percent = Math.floor((curbytes/maxbytes)*100);

Versteh auch nicht wirklich warum das statt "=" mal "+=" oder "-=" benutzt wird ... man will doch die Zahl bekommen und nicht immer was drauf addiern oder subtrahiern!


Achso ... "Tobias Menzel" hat es ja schon fast richtig hingeschrieben ... bis auf den unterschied das er statt "_alpha" ... nen "_xscale" stehn hat ;)
 
Hi,

nun, der Unterschied wird sein, dass NoGFX seinen Prozentwert schrittweise an den Wert von cur / max * 100 angleicht, und ihn dann sofort verwenden kann, um seinen Balken einzublenden (ich skaliere in meinem Beispiel einen Balken, er blendet scheinbar etwas ein), wärend ich zuerst den wirklichen Prozentwert in einer Variable festhalte (p), diesen an den Balken als Objekt übergebe, wo eine zweite onEnterFrame-Methode läuft, in der sich die Skalierung des Balkens schrittweise dem Prozentwert annährt.

Beide Methoden dürften im Prinzip zum selben Ergebnis führen.

Gruß
.
 
Zurück