2009-05-13 4 views
4

Ich verwende ein ProgressEvent in Flash, um festzustellen, wie lange etwas dauern wird, um zu downloaden. Ich habe das:Flash ProgressEvent zeigt nicht die Gesamtgröße

 progress = event.target.bytesLoaded/event.target.bytesTotal; 

, um einen Prozentsatz festzulegen.

Nach einigem Kratzen meines Kopfes, habe ich eine Spur auf die zwei Werte - und es stellt sich heraus, dass "event.target.bytesTotal" immer gleich Null ist.

Ich kann keine Erwähnung in der Flex/AS3/Flash API finden. Irgendwelche Hinweise, wie man BytesTotal zum Arbeiten bringt?

(Ich bin zur Zeit von einer PHP-Datei auf dem Webserver zu lesen)

Antwort

1

Haben Sie versucht:

progress = event.bytesLoaded/event.bytesTotal; 

bytestotal/bytesloaded sollte eine Eigenschaft des Fortschritts Veranstaltung.

Auch ... Ich hatte dieses Problem gestern, und es verblüfft mich total, bis ich dachte, um die Datei zu überprüfen, ich war geladen, und es endete als korrupt und 0 Byte bis - so überprüfen, dass auch :)

+0

Hm, Ihr Code erzeugt genau den gleichen Effekt (bytesLoaded funktioniert gut, bytesTotal meldet immer 0). Ich weiß, dass die Datei in Ordnung ist, weil sie schließlich heruntergeladen und funktioniert. :) –

+0

Wirklich seltsam. Wenn Sie den Code mit einer anderen PHP-Datei oder etwas anderem versuchen, macht es dasselbe? – quoo

+2

Wenn Sie die Eigenschaft urloader.bytesTotal (oder was auch immer Sie verwenden) überprüfen, was auch immer Sie laden, ist das auch null? – quoo

4

Wir haben dieses Problem auf unserem Server gelöst, indem wir die Komprimierung einiger Dateitypen deaktiviert haben.

Der bytesTotal war 0 für Dateien, die komprimiert geliefert wurden. Diese Komprimierung geschieht während des Betriebs und deshalb kann der Server die Größe der Datei nicht angeben (weil sie sie noch nicht kennt). Entfernen der Komprimierung löste es.