Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-10-2008, 02:00   #1 (permalink)
·
 
Benutzerbild von pilzebub
 
Registriert seit: Oct 2003
Ort: ··
Beiträge: 722
ProgressEvent + dynMc.width...

Hallo,

ja, es geht um einen preloader bzw. genauer um den Statusbalken, dass
Ding will einfach nicht wieder von "0" anfangen, wenn eine neue Grafik
geladen wird.

Mit removeChildAt(0) wird der mc entfernt, aber ich bekomm dann den
Clip nicht wieder auf die Bühne... nur so am Rande.

erstellt wird der mc ausserhalb der Funktion (das ganze AS-Zeug liegt
im 1 Frame und es existiert auch nur einer).
Die eigentlich dfe Funktion, ist die:

ActionScript:
  1. function loaderIMG(event:ProgressEvent):void{
  2.    
  3.     ...
  4.     var percentLoad:uint=Math.round((((event.currentTarget.bytesLoaded*100)/event.target.bytesTotal)*so.data.ImageWidth)/100);
  5.  
  6.     var loader:MovieClip =MovieClip(loaderMC.getChildAt(0));
  7.     loader.graphics.beginFill(thumbHGColor);
  8.     loader.graphics.drawRect(0, 0, percentLoad,10);
  9.     loader.graphics.endFill();
  10.     loaderMC.addChildAt(loader,0);
  11. }

beim ersten Aufruf funktioniert alles, bei allen weiteren bleibt der
Statusbalken bei 100%...


Grüße
pilzebub ist offline   Mit Zitat antworten
Alt 02-10-2008, 07:51   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Stimmt denn nur der Balken nicht oder die Prozentberechnung?
  Mit Zitat antworten
Alt 02-10-2008, 07:53   #3 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Zitat:
Zitat von pilzebub Beitrag anzeigen
Mit removeChildAt(0) wird der mc entfernt, aber ich bekomm dann den
Clip nicht wieder auf die Bühne... nur so am Rande.
Du musst eine lokale Referenz (= Valriable auf den MovieClip halten).
Omega Psi ist offline   Mit Zitat antworten
Alt 02-10-2008, 10:24   #4 (permalink)
·
 
Benutzerbild von pilzebub
 
Registriert seit: Oct 2003
Ort: ··
Beiträge: 722
Zitat:
Zitat von agedoubleju Beitrag anzeigen
Stimmt denn nur der Balken nicht oder die Prozentberechnung?
die Prozentberechnung wird korrekt ausgegeben... jedesmal


Zitat:
Zitat von Omega Psi
Du musst eine lokale Referenz (= Valriable auf den MovieClip halten).
Und wie?... Der loaderMC(var loaderMC:...) wird ausserhalb der Funktion erstellt und nach erfolgreichen
laden entfernt, irgendwie check gerade nicht was du meinst. Hast du vielleicht ein Bsp. dafür?

Geändert von pilzebub (02-10-2008 um 10:36 Uhr)
pilzebub ist offline   Mit Zitat antworten
Alt 02-10-2008, 20:06   #5 (permalink)
·
 
Benutzerbild von pilzebub
 
Registriert seit: Oct 2003
Ort: ··
Beiträge: 722
schieb

... wenn man die Funktion auf den Container(loaderMC) anwendet
funktioniert es(loaderMC.width), aber der MC wird auch um 1,2 Pixel
vergrößert(oder ich bilde mir das nur ein )

ActionScript:
  1. ... 
  2. loaderMC.width=percentLoad;
  3. ...

... mit loader.width wird alles skaliert und den Balken verschiebt es auf der x-Achse :

ActionScript:
  1. ...
  2. var loader:MovieClip =MovieClip(loaderMC.getChildAt(0));
  3. loader.width=percentLoad;
  4. ...

und die andere Version ist die, die ich weiter oben schon genannt habe
bzw. das eigentliche Problem hier: das der Balken nur einmal
funktioniert und dann immer bei 100% stehen bleibt

äääh... bzw. wenn ich nur "loader.graphics.drawRect(0, 0,
percentLoad,10);" verwende sehe ich das der Balken jedesmal lädt, aber
die komplette Breite trotzdem nach dem ersten mal erhalten bleibt. Für
mich sieht das so als würde jedesmal ein Rechteck erstellt (wird es ja
auch) das es aber auf der x-Achse verschiebt und nicht wie eigentlich
gewollt, nur die Breite skaliert.

kode:
ActionScript:
  1. var loaderMC:MovieClip = new MovieClip();
  2.      loaderMC.name="loaderMC";
  3.  
  4. loaderMC.graphics.beginFill(ContainerColor);
  5. ...
  6. loaderMC.graphics.endFill();
  7. addChildAt(loaderMC,numChildren);
  8. ...
  9. var loaderBar:MovieClip =new MovieClip();
  10. loaderBar.graphics.beginFill(thumbHGColor);
  11. loaderBar.graphics.lineStyle(1, thumbHGColor,1,true,"normal",CapsStyle.SQUARE,JointStyle.MITER);
  12. loaderBar.graphics.drawRect(0, 0, 1,5);
  13. loaderBar.graphics.endFill();
  14. loaderBar.name="loaderBar";
  15.  
  16. loaderMC.addChildAt(loaderBar,0);
  17.  
  18.  
  19. function loaderIMG(event:ProgressEvent):void{
  20.    
  21.     ...
  22.     var percentLoad:uint=Math.round((((event.currentTarget.bytesLoaded*100)/event.target.bytesTotal)*so.data.ImageWidth)/100);
  23.  
  24.     var loader:MovieClip =MovieClip(loaderMC.getChildAt(0));
  25.     //loader.graphics.beginFill(thumbHGColor);
  26.     loader.graphics.drawRect(0, 0, percentLoad,10);
  27.     //loader.graphics.endFill();
  28.     //loaderMC.addChildAt(loader,0);
  29. }

irgendjemand ein Tipp was ich noch probieren könnte?
pilzebub ist offline   Mit Zitat antworten
Alt 02-10-2008, 21:16   #6 (permalink)
·
 
Benutzerbild von pilzebub
 
Registriert seit: Oct 2003
Ort: ··
Beiträge: 722
alles Schmarrn, mit loader.width=percentLoad und
loader.graphics.drawRect(0, 0, percentLoad,10);
funktioniert alles wie es soll. dankö

Geändert von pilzebub (02-10-2008 um 21:18 Uhr)
pilzebub ist offline   Mit Zitat antworten
Antwort

Lesezeichen

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:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele