| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Diener Registriert seit: Mar 2009
Beiträge: 27
|
hay zusammen ich habe mir eigentlich einen sehr simplen preloader zusammen gebastelt, und habe mir noch überlegt, wie ich dort eine "time-left-anzeige" reinbauen kann .... hm nach langem überlegen und googeln ist mir immernoch nichts eingefallen. das is mein as script: Code: this.onEnterFrame = function()
{
lb = getBytesLoaded();
tb = getBytesTotal();
bl = (tb-lb);
if (lb == tb)
{
nextScene();
}
_frame = int(lb/(tb/100));
current = int(lb/tb*100);
ptext.text = ""+current+"%";
_root.loader.gotoAndStop(_root._frame);
}
stop(); bitte aber dennoch um ein bisschen hilfe :> danke :> |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: May 2009
Beiträge: 12
|
Also: Zuerst musst du dir die KB pro Sekunde ausrechnen. Danach musst du nur noch die verbleibende datenmnge / kbps rechnn und schon haste die Sekunden ![]() Edit: Die Kbps bekommste, indem du nen timer erstellst der jede sekunde einmal "tickt" der die menge der neuen geladenen bytes rechnet. pseudo code (AS2): Code: var letzteGrose:Number = 0;
function kbps () {
var kbps:Number = (letzteGrose-loader.BytesLoaded)/1024; //Klammern für eine bessere Lesbarkeit
// Zeit ausrechnen
var verbleidend:Number = (loader.BytesTotal-loader.BytesLoaded) / 1024; //Verbleibende kb
var restsekunden:Number = verbleibend/kbps;
letzteGrose = loader.BytesLoaded; //loader ist das Lade objekt
}
setInterval ("kbps", 1000); ![]() MfG xMine Geändert von xMine (24-05-2009 um 17:25 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: May 2009
Beiträge: 12
|
Der name "letzteGrose" ist ein wenig unglücklich gewählt, da hast du recht. Also in dieser Variable werden die anzahl geladener Bytes gespeichert, sodass man bei dem nächsten Interval die Differenz ausrechnen und somit die Geschwindigkeit berechnen kann. (Bytes pro Sekunde) Teilt man diese durch 1024, so kann man den Nutzer eine schöne Speedanzeige in form von "KiloBytes pro Sekunde" präsentieren ![]() achja, noch eine korrektur, hab da was durcheinander gebracht: Code: //FALSCH var kbps:Number = (letzteGrose-loader.BytesLoaded)/1024; //RICHTIG var kbps:Number = (loader.BytesLoaded-letzteGrose)/1024; Geändert von xMine (26-05-2009 um 16:59 Uhr) |
| | |
| | #6 (permalink) |
| Diener Registriert seit: Mar 2009
Beiträge: 27
|
ja danke für die antwort, die kam aber leider zu spät hab ne andere lösung mit gettimer gefunden sieht dann so aus: Code: this.onEnterFrame = function()
{
lb = getBytesLoaded();
tb = getBytesTotal();
bl = (tb-lb);
som=getTimer();
zeit=int(bl*som/lb/1000) + " sek";
if (lb == tb)
{
nextScene();
}
_frame = int(lb/(tb/100));
current = int(lb/tb*100);
ptext.text = ""+current+"%";
_root.loader.gotoAndStop(_root._frame);
}
stop(); und er updated die sekunden auch bei jedem frame was bei dir glaube ich nicht der fall war oder?! |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| preloader |
| Themen-Optionen | |
| Ansicht | |
| |