PDA

Просмотр полной версии : getBytesTotal


tandem
07.05.2007, 17:32
Почему событие getBytesTotal срабатывает только при загрузке файла, а не при обращении к нему.

Ведь если так, то невозможно сделать нормальный аплоадер для XML.. :(

Aziz Zaynutdinoff
07.05.2007, 17:40
а как вы обращаетесь к XML, не загружая его?

tandem
07.05.2007, 18:15
Обычная загрузка:

var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(success:Boolean) {
if (success) {
//вывод информации
}
xml.load("адрес файла");


или Я не правильно понял вопрос?

Aziz Zaynutdinoff
07.05.2007, 19:13
правильно, тогда я не понял сути вашего вопроса:
Почему событие getBytesTotal срабатывает только при загрузке файла, а не при обращении к нему.

tandem
07.05.2007, 20:03
правильно, тогда я не понял сути вашего вопроса:

Суть в том, что невозможно сделать загрузчик для ХМЛ, если размер файла опрделяется только после его загрузки.

Процент загрузки ведь не высчитать таким образом...

Aziz Zaynutdinoff
07.05.2007, 20:38
---------------------------------
milliseconds elapsed: 14969
bytesLoaded: 0
bytesTotal: 6539
percent loaded: 0
---------------------------------
milliseconds elapsed: 14976
bytesLoaded: 6539
bytesTotal: 6539
percent loaded: 100
---------------------------------


это окно Output из хелпового примера: поставил ничтожную скорость загрузки и, как видите, удалось-таки отследить момент загрузки. До этого момента общий размер NaN, потому что прежде чем узнать вес загружаемого файла, надо сначала считать его заголовок (я имею в виду системный) и после этого, если обратите внимание, загруженных байт:0, и через доли секунды загружен полностью.

А скорость считывания естественно зависит от скорости отдачи данных сервером, пропускной способностью канала и т.д.

Попробуйте протестировать этот пример, разместив на каком-либо своём серваке ОГРОМНЫЙ xml-файл.

Molecula
07.05.2007, 20:42
2tandem:
А когда Вы хотите обращатся к getBytesTotal ?
Размер файла определяется после того, как программа обратилась к нему. Как же иначе делается прелоадер? т.е. отображается данные сколько загруженно и сколько вообше весит то, что загружается.

tandem
07.05.2007, 20:42
это окно Output из хелпового примера: поставил ничтожную скорость загрузки и, как видите, удалось-таки отследить момент загрузки. До этого момента общий размер NaN, потому что прежде чем узнать вес загружаемого файла, надо сначала считать его заголовок (я имею в виду системный) и после этого, если обратите внимание, загруженных байт:0, и через доли секунды загружен полностью.

А скорость считывания естественно зависит от скорости отдачи данных сервером, пропускной способностью канала и т.д.

Попробуйте протестировать этот пример, разместив на каком-либо своём серваке ОГРОМНЫЙ xml-файл.

Я тоже отталкивался от хелпового примера.
ХМЛ находится на моем сервере, но лоадер нужен под файлы не больше 30 кб

Ну суть ясна, пасиб

2tandem:
А когда Вы хотите обращатся к getBytesTotal ?
Размер файла определяется после того, как программа обратилась к нему. Как же иначе делается прелоадер? т.е. отображается данные сколько загруженно и сколько вообше весит то, что загружается.

Использую как в хелпе написано, через Interval.
Видимо на маленьких файлах неработает (не успевает), выдает NaN

Тем более, что проблемма наблюдается только с XML, картинку грузит правильно.

Отвечу сам себе: нашел официальное подтверждение, что с XML эта фишка не работает...

http://livedocs.adobe.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00001893.html

Комментарии?

iNils
07.05.2007, 22:26
Есть кнопка http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif, поэтому не надо создавать несколько сообщений подряд, надо исправить последнее в теме.