Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-11-2003, 21:05   #1 (permalink)
nxs
no user
 
Benutzerbild von nxs
 
Registriert seit: Jul 2001
Ort: Murnau
Beiträge: 377
Größe externer Bilder abfragen

Hall hallo!

Eines vorneweg: ICH HABE LANGE ZEIT DIE SUCHEFUNKTION BENUTZT und nix dazu gefunden, ok?

Jetzt zu meinem Problem:

für eine dynamische Slideshow will ich einen Preloader einbauen.
Wie bekomme ich die zu ladende Gesamtgröße raus?

So klappts bei mir nicht:
ActionScript:
  1. //nr=anzahl der bilder
  2. for (i=1;i<=nr;i++){
  3. // hier werden die container "conti" erzeugt und mit loadMovie gefüllt...
  4. }
  5.  
  6. for (i=1;i<=nr;i++){
  7. totalSize+=_root["cont"+i].getBytesTotal();
  8. }


So wird das bei mir nichts.

Was mache ich falsch?!

Dankeschonmal,

nxs.
__________________
Freivogel

----------------------------------------------
nxs ist offline   Mit Zitat antworten
Alt 30-11-2003, 21:44   #2 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
hmm so hätte ich das auch gemacht... aber vielleicht schnallt flash das nicht vielleicht lädt es erst den einen cont voll und wenn der geladen ist blickt es erst die getBxtesTotal vom anderen

cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 30-11-2003, 21:56   #3 (permalink)
anyway
Gast
 
Beiträge: n/a
Nö, klappt auch nicht, weil Flash dynamisch nachgeladene Daten der Reihe nach abarbeitet. Das Bedeutet, daß Deine vermeintlich simultan laufenden Downloads gar nicht simultan laufen.

Ferner, dauert es eine gewisse Zeit, bis vom Setzen der loadMovie-Methode auch tatsächlich Daten an den Player übertragen werden. Bei zwei aufeinanderfolgenden for-Schleifen, die von Flash im Millisekundenbereich abgearbeitet werden, besteht wenig Chance, daß Informationen zur Größe einer Datei so kurz nach deren Ladeanweisung vorhanden sind...Und zusätzlich kommt ja noch das Problem hinzu, nicht simultan an mehreren Dateien laden zu können.

Du müsstest quasi durch ein Script alle betreffenden Bilder einmal kurz 'anladen' bis eine Größe für getBytesTotal() geliefert wird und das Teil dann wieder mit unloadMovie entladen...Den Wert zu einer Variablen addieren und immer so weiter...So könntest Du die Gesamtgröße mehrerer Bilder ermitteln.

anyway.
  Mit Zitat antworten
Alt 30-11-2003, 22:08   #4 (permalink)
nxs
no user
 
Benutzerbild von nxs
 
Registriert seit: Jul 2001
Ort: Murnau
Beiträge: 377
Hmmm....

Vielen Dank erstmal!

Das schreit ja geradezu nach einer Alternative...



nxs.
__________________
Freivogel

----------------------------------------------
nxs ist offline   Mit Zitat antworten
Alt 30-11-2003, 22:46   #5 (permalink)
anyway
Gast
 
Beiträge: n/a
mhh..wieso alternative...da hast Du..:

ActionScript:
  1. MovieClip.prototype.getPacketSize = function(a) {
  2.     var sz;
  3.     var nxt = function () {
  4.         if (a.length == 0) {
  5.             trace("Gesamtgröße der Files beträgt: "+sz+" Bytes.");
  6.             clearInterval(itv);
  7.         }
  8.         return a.shift();
  9.     };
  10.     var ldr = this;
  11.     this.loadMovie(nxt());
  12.     var itv = setInterval(function () {
  13.         var ttl = ldr.getBytesTotal();
  14.         if (ttl) {
  15.             sz += ttl;
  16.             ldr.unloadMovie();
  17.             ldr.loadMovie(nxt());
  18.         }
  19.     }, 20);
  20. };
  21. // array mit den namen der zu referenzierenden dateien anlegen
  22. bildaz = ["P1010010.JPG", "P1010011.JPG", "P1010012.JPG", "P1010013.JPG", "P1010014.JPG"];
  23. // movieclip erstellen, der das 'anladen' der dateien übernimmt
  24. s = this.createEmptyMovieClip("loader", 1);
  25. s.getPacketSize(bildaz);


Ich habs nur lokal getestet und da dauerte es nicht lange, bis mir flash das endergebnis lieferte...Auf dem Server habe ich es noch nicht getestet - wenn du willst, check0r das mal an.

anyway.
  Mit Zitat antworten
Alt 30-11-2003, 22:57   #6 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
@anyway

kannst du nicht ganz einfach schreiben, wie alle anderen auch ?
ich meine, dann könnte man das sogar lesen
warrantmaster ist offline   Mit Zitat antworten
Alt 30-11-2003, 23:29   #7 (permalink)
anyway
Gast
 
Beiträge: n/a
Ich habs mal on remote probiert. So klappt datt...Und die Großbuchstaben im Dateisuffix funktionieren manchmal nicht, deswegen waren sie für mein Beispiel wohl eher schlecht gewählt..

ActionScript:
  1. MovieClip.prototype.getPacketSize = function(a) {
  2.     var sz;
  3.     var nxt = function () {
  4.         if (a.length == 0) {
  5.             getURL("javascript:alert('"+sz+"')");
  6.             clearInterval(itv);
  7.         }
  8.         return a.shift();
  9.     };
  10.     var ldr = this;
  11.     this.loadMovie(nxt());
  12.     var itv = setInterval(function () {
  13.         var ttl = ldr.getBytesTotal();
  14.         if (ttl>0) {
  15.             sz += ttl;
  16.             ldr.unloadMovie();
  17.             ldr.loadMovie(nxt());
  18.         }
  19.     }, 20);
  20. };
  21. // TEST
  22. bildaz = ["bild1.jpg", "bild2.jpg", "bild3.jpg", "bild4.jpg", "bild5.jpg"];
  23. s = this.createEmptyMovieClip("loader", 1);
  24. s.getPacketSize(bildaz);


hat beim testen ca 1-2 Sekunden gedauert...Aber ich schätze mal, mit DSL ist das keine Referenz...

anyway.
  Mit Zitat antworten
Alt 02-12-2003, 21:04   #8 (permalink)
nxs
no user
 
Benutzerbild von nxs
 
Registriert seit: Jul 2001
Ort: Murnau
Beiträge: 377
Hallo zusammen!


sorry for late reply...
Und vielen Dank an anyway!

Funkt einwandfrei, auch wenn das Skript irgendwie immer zwei Dateien mehr anladen will (allerdings ohne Dateinamen), als existieren...

Aber das wird schon noch!


nxs.
__________________
Freivogel

----------------------------------------------
nxs 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 17:21 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele