ГлавнаяActionScript 3 — «100 советов» › Закрытие сетевых соединений

Закрытие сетевых соединений

June 19th, 2006
Предыдущие версии Flash плеера не могли оборвать соединение после начала загрузки данных с сервера. Например, если вы начали загружать 50-ти мегабайтный swf в свой ролик, но хотите прекратить загрузку т.к. юзер решил не ждать загрузки а посмотреть что-то другое, у вас ничего не получится. Единственным способом избежать продолжения загрузки было бы закрыть плэйер (например перейти на другую html страницу)

Теперь, исползуя AS3, вы можете остановить соединения и оборвать загрузку запросов сделанных плеером. Рассмотрим класс Loader (flash.display.Loader). Это субкласс displayObjectContainer-а который загружает внешний контент в ваш ролик. Вы можете загружать содержимое в этот класс используя метод load. Что бы оборвать процесс загрузки, вы должны исползовать метод close.

Пример:

Код:
var loader:Loader = new Loader(); var request:URLRequest = new URLRequest("image.jpg"); loader.load(request); addChild(loader); // abort loading if not done in 3 seconds var abortID:uint = setTimeout(abortLoader, 3000); // abort the abort when loaded loader.contentLoaderInfo.addEventListener(Event.COMPLETE, abortAbort); function abortLoader(){ try { loader.close(); }catch(error:Error) {} } function abortAbort(event:Event){ clearTimeout(abortID); }

Обратите внимания что метод close() был помещён внутрь блока try..catch. Это сделано потому что сlose будет выдавать ошибку (IOError) в том случае если в данный момент нету открытого соединения (хотя в данном случае этого никогда не произойдёт, потому что после окончания загрузки Timeout будет удалён – тем не менее это хорошая практика)

Категория: ActionScript 3 — «100 советов» Ярлыки: ,

Смотрите также

System.totalMemory Класс Timer
  1. Пока без комментариев.
  1. Пока нету.