Loader можно использовать повторно
А все ли знают, что единожды инстанцированный экземпляр класса Loader можно использовать повторно сколь угодно раз для скачивания очередной картинки или флеш-ролика? Теперь знаете. Его можно использовать для загрузки сколь угодно многих SWF. И я не оговорился. Те картинки, что в форматах JPG, PNG, GIF преобразуются нашим умным флеш-плеером именно в формат SWF. Но это отдельная история о 85-ом теге и я, может быть, немного расскажу о ней. В другой раз.
А сейчас нас интересует повторное использование объекта типа Loader.
Немного простого кода.
var loader:Loader = new Loader(); this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.handler_complete); this.handler_complete(null); function loadNext(request:URLRequest):void { this.loader.load(request); } function handler_complete(event:Event):void { if (event) super.addChild( (event.target as LoaderInfo).content ); // Картинка или swf уже в нас ) if ( /* пока условие */) // Давай следующую this.loadNext( new URLRequest(/* some url request here */) ) }
Всего комментариев 38
Комментарии
22.06.2010 09:50 | |
интересно!
я вот сегодня набрел на LoaderMax от greensock'a. Может тоже будет интересно им кому попользоваться. |
22.06.2010 11:16 | |
А что такое 85-й тег?
|
22.06.2010 11:25 | |
Недокументированный тег структуры SWF-файла.
|
22.06.2010 21:10 | |
Забавно. А я плодил кучи лоадеров.
Интересно, откуда пошло что на одну загрузку один лоадер? Наверное, добавляли в дисплай лист сам лоадер. |
22.06.2010 21:24 | |
Практически всегда использовал один лоадер для загрузки по списку.. даже и не думал что это багофича.
|
22.06.2010 21:33 | |
А вот у меня при использовании одного лоадера были некоторые проблемы: http://www.flasher.ru/forum/showthread.php?t=133621
|
22.06.2010 21:56 | |
Смешно, но я попал в самую точку
http://www.flasher.ru/forum/showthread.php?t=141359 |
22.06.2010 22:22 | |
кто то плодил Loader'ы вне прототипов приложений?
|
22.06.2010 23:48 | |
Nirth, объясни.
|
22.06.2010 23:55 | |
интрига, однако: 85-й тег, использования чужого лоадера..
а в чем прикол не догнать - ну грузит лоадер, так какбе всегда так и было ? |
23.06.2010 08:12 | |
Цитата:
Nirth, объясни.
|
23.06.2010 10:57 | |
Котяра, ты молодец. Однако Флешер читают и подрастающие девелоперы. Это может показаться полезным.
Олег, нет такой проблемы. Если загружается swf, то критерием того, что произойдет полная выгрузка является: a) отсутствие ссылок на ApplicationDomain, в котором находятся загруженные Definitions (классы, интерфейсы, функции) б) Отсутствие ссылок на инстанцированные объекты этих типов. Под полной выгрузкой я понимаю, что в окне output FlexBuildera появится текст "[Unload SWF...]" Плодить лоадеры тоже нужно. Если происходит массовая загрузка, полезно иметь 3-5(?) лоадеров, работающих параллельно. Таким образом множество мелких изображений, например, можно грузить быстрее. Многие А интрига должна быть ) |
|
Обновил(-а) dimarik 23.06.2010 в 11:01
|
23.06.2010 13:18 | |
Загрузи подряд две SWF в один лоадер не выгружая первую до того, как загрузишь вторую. Т.е. добавь ее куда-нибудь к другому контейнеру, а потом попробуй выгрузить.
|
23.06.2010 13:57 | |
Прекрасно выгружает. FP 10.1.53 и 10.0.22.
|
23.06.2010 16:29 | |
Цитата:
кто то плодил Loader'ы вне прототипов приложений?
Что ты этим хотел сказать? |
23.06.2010 18:21 | |
Я не понимаю, что тебе не понятно )
Мне казалось, что не считая прототипов приложений, лоадеры реюзают. |
23.06.2010 20:14 | |
Ну хорошо, может я просто тебя не понимаю в терминологии)
Что есть прототип приложения? |
23.06.2010 20:55 | |
Демка, Макет, Пример
|
23.06.2010 21:34 | |
Ну понимаю я тебя правильно.
Я поразмыслил - ты имеешь ввиду что при переходе приложения в релизную стадию лоадеры сжимаются от много до единиц? |
23.06.2010 21:37 | |
Олег, не будешь ли ты так любезен объяснять, что скрывается за твоими фразами? Например, здесь
Цитата:
что при попытке выгрузить
Браво, Тигра! Так их! Пускай тоже шевелятся и рассказывают. |
|
Обновил(-а) dimarik 23.06.2010 в 21:42
|
23.06.2010 21:38 | |
myLoader.unload()
|
23.06.2010 21:52 | |
Понятно. У меня нет такой строчки.
|
23.06.2010 22:52 | |
Интрига, только интрига. Чужие лоадеры ожидают нас.
|
23.06.2010 23:40 | |
Димарик, ты бы лучше рассказал мне что по твоему мнению не совсем хорошо, быть может я допускаю большую ошибку =)
Да и диалог как то в монолог перерастает, не есть приятно. |
24.06.2010 00:34 | |
Тигра, прошу прощения за то, что тебе так показалось. Не всегда "хорошо" может быть однозначно. Что по мне, то единственную цель этой статьи я раскрыл - Loader может быть использован повторно. Следующая статья уже написана. Еще одна готовится. Она про "чужие" лоадеры и проблемы безопасности куда более существенные. Так что наберись терпения.
Подвис над названием будущей статьи. Как считаешь, "Loader vs. FP security. Белые начинают и выигрывают." будет сильно вычурным? Нет, назову, пожалуй, так: "Loader vs FP security. Мат в два хода." Мне кажется, это будет соответствовать содержанию. xD |
|
Обновил(-а) dimarik 24.06.2010 в 01:29
|
24.06.2010 12:50 | |
Я не знаю о чем она, поэтому не могу сказать какое название лучше )
|
24.06.2010 12:55 | |
26.06.2010 00:24 | |
Цитата:
а unload() чем не мил?
|
|
Обновил(-а) dimarik 26.06.2010 в 03:24
|
27.06.2010 00:00 | |
dimarik
Эта статья про то как использовать лоадер повторно? Или я что-то недопонял?) |
05.01.2011 00:35 | |
Не совсем понял код dimarik'а, можно привести более конкретный пример многократного использования loader'а? Допустим для трёх картинок.
|
05.01.2011 05:21 | |
Как я понимаю обычная рекурсия.
|
Последние записи от dimarik
- Memory allocation на Vector.<IInterface> (07.05.2015)
- [Starling] Тормози меня плавно! (28.10.2014)
- [Starling идиотизмы] Об интерактивных событиях (02.10.2014)
- О типах исключений. (23.04.2014)
- Немного о Vector и ByteArray (28.03.2014)