|
|
|||||
Регистрация: Mar 2009
Сообщений: 8
|
Bitmap -> ByteArray -> Bitmap
Подскажите, пожалуйста, как выполнить данное преобразование.
Пробовал: byteArrayToBitmapData(ldr.content.loaderInfo.bytes); private function byteArrayToBitmapData(ba:ByteArray):void { loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, getBitmapData); loader.loadBytes(ba); } private function getBitmapData(event:Event):void { loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, getBitmapData); myBmp = event.target.content; <<< Здесь возникает ошибка } |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
А если с кастингом?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Mar 2009
Сообщений: 8
|
Если имеется ввиду:
То результат тот же (.
|
|
|||||
Регистрация: Dec 2007
Сообщений: 269
|
смотри внимательнее, target это contentLoaderInfo, а не loader
в твоем случае надо обращаться к содержимому так: event.target.loader.content - но про кастинг лучше не забывай |
|
|||||
Регистрация: Mar 2009
Сообщений: 8
|
1. Не работает.
2. Если прогнать под отладчиком - то event.target.content это один в один event.target.loader.content Может ошибка в том как я получаю ByteArray? |
|
|||||
>>Может ошибка в том как я получаю ByteArray?
похоже, что так затрудняюсь сказать почему, но когда скармливаем лоадеру loaderInfo.bytes, то получаем в его content'е MovieClip а если загрузить картинку как бинарник, то все нормально - имеем Bitmap package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.ByteArray; public class Main extends Sprite { private var loader:Loader = new Loader(); private var loader1:Loader = new Loader(); private var urlLoader:URLLoader = new URLLoader(); public function Main():void { loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeIMG); loader1.contentLoaderInfo.addEventListener(Event.COMPLETE, completeDecode); urlLoader.addEventListener(Event.COMPLETE, completeData); urlLoader.dataFormat = URLLoaderDataFormat.BINARY; //loader.load(new URLRequest("face0.jpg"));//то, что происходит у автора urlLoader.load(new URLRequest("face0.jpg"));//работающий вариант } private function completeData(evnt:Event):void { var ba:ByteArray = urlLoader.data; loader1.loadBytes(ba); } private function completeIMG(evnt:Event):void { var ba:ByteArray = loader.content.loaderInfo.bytes; loader1.loadBytes(ba); } private function completeDecode(evnt:Event):void { var myBmp : DisplayObject = loader1.content as DisplayObject; trace( "myBmp : " + myBmp ); //[object MovieClip] если отдавать loaderInfo.bytes; //[object Bitmap] если отдавать urlLoader.data; } } } к слову сказать: в AVM1 jpg, загруженный с помощью MovieClipLoader.loadClip или MovieClip.load, тоже никакого отношения к графике уже не имел Последний раз редактировалось silin; 20.03.2009 в 09:50. |
|
|||||
Регистрация: Mar 2009
Сообщений: 8
|
В принципе, для решения моей задачи - приемлемый вариант. Спасибо, silin.
|
|
|||||
Регистрация: Dec 2007
Сообщений: 269
|
Цитата:
Забавно . При чем этот MovieClip содержит единственного ребенка, тот самый искомый Bitmap. |
Часовой пояс GMT +4, время: 17:39. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|