• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash CS4 Professional

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-05-2009, 16:27   #1 (permalink)
Diener
 
Registriert seit: Mar 2009
Beiträge: 27
Question time left anzeige im preloader

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();
ich weiß, das ist nicht die eleganteste lösung
bitte aber dennoch um ein bisschen hilfe :>
danke :>
Sp4wNi ist offline   Mit Zitat antworten
Alt 24-05-2009, 17:18   #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);
Oder so ungefähr

MfG xMine

Geändert von xMine (24-05-2009 um 17:25 Uhr)
xMine ist offline   Mit Zitat antworten
Alt 26-05-2009, 09:35   #3 (permalink)
Diener
 
Registriert seit: Mar 2009
Beiträge: 27
ok danke ich werde es mal versuchen :>
Sp4wNi ist offline   Mit Zitat antworten
Alt 26-05-2009, 10:20   #4 (permalink)
Diener
 
Registriert seit: Mar 2009
Beiträge: 27
krieg ich nicht hin :/
verstehe die variable letztegroese nicht :/
Sp4wNi ist offline   Mit Zitat antworten
Alt 26-05-2009, 16:56   #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)
xMine ist offline   Mit Zitat antworten
Alt 27-05-2009, 16:57   #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();
funtioniert auch wunderbar :>
und er updated die sekunden auch bei jedem frame
was bei dir glaube ich nicht der fall war oder?!
Sp4wNi ist offline   Mit Zitat antworten
Alt 27-05-2009, 17:00   #7 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 12
nö, war bei mir nich der fall, aber dafür jede sekunde - so lang wie eben ne sekunde is
Find ich völlig unnötig, das öfter zu aktualisieren, aber das ist ansichtssache
xMine ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
preloader

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:24 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele