![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
|
А без докачки работает?
/** * Перед началом закачки. */ var data:ByteArray = new ByteArray(); //скачанные данные var totalRead:uint = 0; //всего скачано /** * Перед началом докачки. */ totalRead = data.length; /** * В обработчике PROGRESS. * stream – ваш экземпляр URLStream. */ var toRead:uint = stream.bytesAvaliable; if(toRead >= CHUNK){ urlStream.readBytes(data, totalRead, toRead); totalRead += toRead; } /** * В обработчике COMPLETE. * stream – ваш экземпляр URLStream. */ var toRead:uint = stream.bytesAvaliable; if(toRead){ urlStream.readBytes(data, totalRead, toRead); totalRead += toRead; } Кстати, у вас может не получаться по следующей причине: ваш сервак просто не поддерживает докачку. Хоть это и маловероятно, но такой вариант всё-же имеется. Дело в том, что в этом случае ваш try..catch не сработает. Все пройдёт без ошибок, но данные начнут отдаваться с начала файла, как если бы вы не отправляли заголовка Range. Узнать, поддерживает ли сервак докачку, можно только просмотрев ответные заголовки (в них должен присутствовать заголовок Accept-Ranges). К сожалению, из-под FP это сделать нельзя, только из-под AIR. Поэтому, попробуйте с текстовым файлом и посмотрите, что получится. А также советую посмотреть диалог флешки с серваком тем же FireBug-ом. Заодно увидите, отправляет ли сервак Accept-Ranges, а также отправляет ли флешка Range. Добавлено через 24 минуты Вот ещё что. Подпишитесь-ка на событие HTTPStatusEvent.HTTP_STATUS вашего экземпляра URLStream, и в обработчике протрейсите Чему он равен? Если после запроса, содержащего Range, статус-код равен 200, то сервак докачку не поддерживает. Если же он равен 206, что указывает на выдачу частичного содержимого, то всё нормально и проблема, скорее всего, в чём-то другом. Добавлено через 32 минуты Вы не правы. Как тогда, по-вашему, работают программы типа DownloadMaster или встроенная в Оперу качалка? Они ведь реализуют докачку практически со всех серваков) Из-под флеш-плеера докачку реализовывать не приходилось, но из-под AIR проблем особых не возникло. К счастью, статус-код можно посмотреть и из флеш-плеера, поэтому тут тоже проблем быть не должно, хоть и будет чуть менее надёжно без анализа ответных заголовков. Последний раз редактировалось SamFR; 20.11.2009 в 19:26. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 63
|
up message
Добавлено через 27 минут Цитата:
Цитата:
кстати событие HTTPStatusEvent.HTTP_STATUS почему-то срабатывает после закачки.. SamFR, спасибо за дельные советы |
|
|||||
|
Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
|
Цитата:
Цитата:
Да не за что ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|