PDA

Просмотр полной версии : Остановить лоадер


Abdilxamidov
22.12.2011, 16:20
Подскажите, как сбросить (остановить) Loader в процессе загрузки картинки?

ivaha83
22.12.2011, 16:30
вызвать метод close() для этого лоадера

Abdilxamidov
22.12.2011, 18:24
Я пробовал Loader.close() прописывать в обработчике нажатия мыши на кнопке Стоп при условии наличия процесса загрузки.
Компилятор выдвет ошибку:
Error: Error #2029: Этот объект URLStream не имеет открытого потока.
at flash.display::Loader/close()
В каком месте Loader.close() можно прописывать?

Добавлено через 50 минут
Пробовал по всякому - не получается прервать загрузку :(

Byelik13
22.12.2011, 19:22
попробуйте loader.unload

Abdilxamidov
22.12.2011, 20:04
попробуйте loader.unload
Пробовал, загрузка картинки всё равно не прерывается... Думаю наверное через URLStream решать

in4core
23.12.2011, 02:56
unloadAndStop()

gloomyBrain
23.12.2011, 11:34
@in4core

unloadAndStop()

Эта штука к остановке загрузки отношения не имеет.

@Byelik13

попробуйте loader.unload

Эта штука тоже.

@Abdilxamidov

Я пробовал Loader.close() прописывать в обработчике нажатия мыши на кнопке Стоп при условии наличия процесса загрузки.
Компилятор выдвет ошибку:
Error: Error #2029: Этот объект URLStream не имеет открытого потока.
at flash.display::Loader/close()
В каком месте Loader.close() можно прописывать?

Во-первых: не компилятор, а среда выполнения (к компиляции эта ошибка отношения не имеет)
Во-вторых: в ошибке ясно сказано, что на данный момент ничего не грузится, а вы пытаетесь прервать загрузку. Тут есть 2 варианта решения:
1) четко знать когда загрузка началась и когда закончилась (видимо, не получается)
2) поставить выражение в try-catch

try {
loader.close();
} catch (error:Error) {
trace ("Ну как же можно остановить загрузку, когда ее не происходит? =)")
}

Второй вариант точно избавит Вас от ошибки, но это не всегда правильно - вот так от них избавляться.

Abdilxamidov
23.12.2011, 17:41
Вот посмотрите лог работы imLoader.close() из обработчика события ProgressEvent.PROGRESS этого лоадера.
Видно, что загрузка не прекращается.

cleptoman
23.12.2011, 20:42
close можно только после Event.OPEN..раньше никак..
либо заворачивайте в трай кеч.

Abdilxamidov
23.12.2011, 20:57
close можно только после Event.OPEN..раньше никак..
либо заворачивайте в трай кеч.
Это я понял, я даю после imLoader.load(). В логе видно, что загрузка началась. В процессе загрузки байтов я подаю imLoader.close(), за которым для отслеживания стоит trace("imLoader.close()"). Но, как видно из лога, байты продолжают загружаться до полного завершения :(