|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Как с помощью loader многократно использовать картинку?
Допустим, загружена картинка
public var imgfon = new Loader(); var r=new URLRequest("img/fon/water.jpg"); imgfon.load(r); Но при этом нельзя добавить её к множеству спрайтов (у неё возможен всего один родитель). Как, загрузив один раз, добавить её более чем к одному спрайту, чтобы все они одновременно её отображали? |
|
|||||
Регистрация: Jun 2006
Сообщений: 28
|
можно клонировать битмар данные загрузчика, например
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jun 2006
Сообщений: 28
|
Цитата:
Цитата:
import flash.display.MovieClip; import flash.events.Event; import flash.display.BitmapData; var imgfon = new Loader(); var mc1:MovieClip = new MovieClip ; var mc2:MovieClip = new MovieClip ; var r = new URLRequest("image.jpg"); imgfon.load(r); imgfon.contentLoaderInfo.addEventListener(Event.COMPLETE, go); function go(e:Event) { var bd:BitmapData = Bitmap(imgfon.content).bitmapData; mc1.addChild(new Bitmap(bd,"auto",true)); mc2.addChild(new Bitmap(bd,"auto",true)); } addChild(mc1); addChild(mc2); |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
1. У Вас класс Битмап не импортирован))
2. Он, в общем-то, и не обязателен. Можно просто залить, если другого содержимого не предполагается. 3. А его и не предполагается - тогда зачем какие-то мувиклипы, если достаточно спрайта или даже шейпа? Зачем грузить память ненужным функционалом?
__________________
Reality.getBounds(this); Последний раз редактировалось iNils; 12.07.2010 в 13:38. |
|
|||||
Можно так:
1) Загружать массив байт с помощью URLLoader 2) Массив байт по мере необходимости скармливать новому Loader-у Пример на ошибки не проверен, но подход точно рабочий: var urlldr:URLLoader = new URLLoader(); urlldr.dataFormat = URLLoaderDataFormat.BINARY; urlldr.addEventListener(Event.COMPLETE, onLoadHandler); urlldr.load(req); var data:ByteArray; function onLoadHandler(evt:Event):void{ data = evt.target.data; var ldr:Loader = new Loader(); ldr.loadBytes(data); } Последний раз редактировалось kackbip; 11.07.2010 в 11:02. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Не массив байт, а лоадеры. Просто создаете нужное количество лоадеров (в примере ldr) и загружаете в них ByteArray (urlldr.data)
Ну и добавляете их addChild'ом Добавлено через 2 минуты (такое ощущение что народ соревнуется, как бы сделать все потяжелее да помассивней))))
__________________
Reality.getBounds(this); |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вот пример с шейпами. Шейпы можно заменить на Спрайты, если нужна интерактивность или добавление элементов "к картинке".
__________________
Reality.getBounds(this); |
|
|||||
Walsh, вариант хороший и проканает почти всегда.
Мой вариант имеет смысл использовать только при желании отобразить анимированные swf. |
Часовой пояс GMT +4, время: 22:13. |
|
« Предыдущая тема | Следующая тема » |
|
|