Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-03-2009, 22:07   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 7
Preloader ergibt keine 100%

Hallo,

ich bin eigentlich in Sachen Actionscript nen ziemlicher Anfänger.
Gut, ich kann PHP, was mir hilft das wenigstens Ansatzweise zu verstehen.

Allerdings hab ich ein Problem.
Ich hab mir einen Preloader von nem Videotutorial abgeschaut.
Mit Ladebalken, Prozentanzeige, benötigte und moment geladene Bytes.

Doch Leider läd er mir nicht immer bis zu den 100%.
Also laden tut er das ganze sicherlich, allerdings kommt er zumindest nie zu den vollen 100% in der Ausgabe.

Hoffe ihr findet einen Fehler, bzw. eine bessere Lösung.

Code:
Code:
stop();

addEventListener(Event.ENTER_FRAME, loaderF);

function loaderF(e:Event):void{
	var toLoad:Number = loaderInfo.bytesTotal;
	var loaded:Number = loaderInfo.bytesLoaded;
	var total:Number = loaded/toLoad;
	if(loaded == toLoad) {
		removeEventListener(Event.ENTER_FRAME, loaderF);
		gotoAndPlay(2);
	} else {
		preloader_mc.preloaderFill_mc.scaleX = total;
		preloader_mc.percent_txt.text = Math.floor(total*100) + "%";
		preloader_mc.ofBytes_txt.text = loaded + "bytes";
		preloader_mc.totalBytes_txt.text = toLoad + "bytes";
	}
}
psychokill ist offline   Mit Zitat antworten
Alt 10-03-2009, 22:17   #2 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
ähm... also: Math.floor(99.9) ergibt 99, also in der Ausgabe nicht 100%. Beim nächsten Durchlauf ist dann alles komplett geladen und if(loaded == toLoad) ist true, demzufolge else{} nicht mehr ausgeführt wird und die Anzeige nicht bei 100% ankommt. Oder? Mach doch einfach mal das else{} weg und aktualisiere die Textanzeige bedingungslos.

Oder meinst Du if(loaded == toLoad) wird niemals true?
__________________
EDV = Ende Der Vernunft

Geändert von hmpf (10-03-2009 um 22:25 Uhr)
hmpf ist offline   Mit Zitat antworten
Alt 10-03-2009, 22:40   #3 (permalink)
Pixeldipaxeldipux
 
Benutzerbild von Ahrsib
 
Registriert seit: Dec 2002
Ort: Ruhrmetropole Essen
Beiträge: 7.589
Ahnung habe ich gar keine, aber Ideen viele -
wenn es ansonsten klappt, würde ich aus der dargestellten 99
eine 100 machen - keiner merkt es, weil sich alle freuen,
dass der Ladebalken weg ist.
Es geht ja nicht um einen Raketenabschuss!

Ahrsib
... think simple.
__________________
Selbstgelerntes ist am Besten!

iMac G5/2,1GHz, 2,5GB RAM, 20" Widescreen (1680*1050), MacOS 10.4.11, Safari 4.1, dsl 6000
Achim ...Orient

Das Flashforum zu unterstützen ist ganz einfach!
Ahrsib ist offline   Mit Zitat antworten
Alt 10-03-2009, 22:44   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 7
Ah danke.

Mit ein wenig Denken und deinem Beitrag, hab ichs hinbekommen, hmpf.

Ich hab einfach das gotoand... usw. in eine extra If Abfrage gepackt die überprüft ob die Prozentanzeige direkt "100%" hat.

Danke Dir ;-)

Code:
stop();

addEventListener(Event.ENTER_FRAME, loaderF);

function loaderF(e:Event):void{
	var toLoad:Number = loaderInfo.bytesTotal;
	var loaded:Number = loaderInfo.bytesLoaded;
	var total:Number = loaded/toLoad;
	if(loaded == toLoad) {
		preloader_mc.preloaderFill_mc.scaleX = total;
		preloader_mc.percent_txt.text = Math.floor(total*100) + "%";
		preloader_mc.ofBytes_txt.text = loaded;
		preloader_mc.totalBytes_txt.text = toLoad;
	}
	if(preloader_mc.percent_txt.text == "100%") {
		removeEventListener(Event.ENTER_FRAME, loaderF);
		gotoAndPlay(2);
	}
}
psychokill ist offline   Mit Zitat antworten
Alt 11-03-2009, 00:36   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
Dass Du die Textanzeige in der if(){} Klausel schreibst, ist aber nicht so sinnvoll... dann wird die ja nur ein mal ausgeführt, wenn alles fertig geladen ist.
Ich würde es eher so machen:
ActionScript:
  1. stop();
  2.  
  3. addEventListener(Event.ENTER_FRAME, loaderF);
  4.  
  5. function loaderF(e:Event):void{
  6.     var toLoad:Number = loaderInfo.bytesTotal;
  7.     var loaded:Number = loaderInfo.bytesLoaded;
  8.     var total:Number = loaded/toLoad;
  9.         preloader_mc.preloaderFill_mc.scaleX = total;
  10.         preloader_mc.percent_txt.text = Math.round(total*100) + "%";
  11.         preloader_mc.ofBytes_txt.text = loaded;
  12.         preloader_mc.totalBytes_txt.text = toLoad;
  13.     if(loaded == toLoad) {
  14.         removeEventListener(Event.ENTER_FRAME, loaderF);
  15.         gotoAndPlay(2);
  16.     }
  17. }
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
100, as3, keine 100%, mcs, 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 16:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele