|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Dec 2009
Адрес: Санкт-Петербург
Сообщений: 10
|
Создание BitmapData из картинки, загруженной через XML
Здравствуйте!
Ситуация следующая: Есть картинки, загруженные по XML и есть функция, которая принимает в качестве аргумента объект BitmapData. Вопрос: как создать BitmapData из имеющихся картинок? Спасибо. |
|
|||||
Модрон-ветеринар
|
Смотрите метод BitmapData.draw
Создайте новую битмапу. Отрисуйте с помощью этого метода в нее мувик, куда загрузили картинку. Выгрузите мувик, он больше не нужен. Всё, у вас в памяти теперь есть битмапа с этой картинкой. Последний раз редактировалось mooncar; 01.06.2010 в 20:47. |
|
|||||
Регистрация: Dec 2009
Адрес: Санкт-Петербург
Сообщений: 10
|
Спасибо, принцип понял, для проверки написал следующий код:
_global.btmp = new BitmapData(95, 95); _root.createEmptyMovieClip("cont_mc", _root.getNextHighestDepth()); _root.createEmptyMovieClip("cont2_mc", _root.getNextHighestDepth()); _root.cont_mc.loadMovie(_global.costPrevSmall_array[0]); _global.btmp.draw(cont_mc); removeMovieClip(_root.cont_mc); _root.cont2_mc.attachBitmap(_global.btmp, 0); Что я упустил? Последний раз редактировалось Ape4atka; 01.06.2010 в 22:18. |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
А загрузки кто дожидаться будет? MovieClipLoader в помощь.
|
|
|||||
Регистрация: Dec 2009
Адрес: Санкт-Петербург
Сообщений: 10
|
mooncar
udaaff Спасибо огромное, весь вечер убил на эту тему и наконец, благодаря вам, все заработало!!))) |
|
|||||
Регистрация: Sep 2010
Сообщений: 16
|
Есть проблемка. С загруженного файла XML мы имеем пути к файлам arFiles и их описания arNames. Я пробую потом по этим путям их забитмапить в массив bmpArray прорисовывая (Draw) через главный контейнер holder (пробовал грузить в новосозданный контейнер tempMC - но тогда пр показе мувика вообще ничего не показывает). И после загрузки этих 5-ти файликов, нужно вывести (тоесть зааттачить с массива) первую картинку и ее описания в главный контейнер.
Проблема в том, что XML и его данные нормально заносятся в массивы. Но вот почему-то при показе мувика - только последняя картинка выводится, но с первым описанием. import flash.display.BitmapData; var arNames:Array = []; var arFiles:Array = []; var bmpArray:Array = []; var imgIndex:Number = 0; var FilesCount:Number = 0; var xmlData:XML = new XML(); xmlData.ignoreWhite = true; xmlData.onLoad = loadXML; xmlData.load('descr.xml'); var bmpData:BitmapData = new BitmapData(500, 375); var tempMC:MovieClip = _root.CreateEmptyMovieClip("tempMC", 0); var loader:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); loader.addListener(listener); listener.onLoadInit = function (target_mc:MovieClip) { holder._height = 375; holder._width = 500; bmpData.draw(holder); bmpArray[imgIndex] = bmpData; if (imgIndex == FilesCount-1) { _root.holder.attachBitmap(bmpArray[0], 0); _root['Display'].text = arNames[0]; imgIndex = 0; } }; function loadXML (success:Boolean) { if (success) { var node:XMLNode = this.firstChild ; var total:Number = node.childNodes.length ; for( i = 0; i < total; i++) { var fName:String = node.childNodes[i].attributes['name']; var fFile:String = node.childNodes[i].attributes['file']; arNames[i] = fName; arFiles[i] = fFile; FilesCount = arFiles.length; }; for (i = 0; i <= FilesCount-1; i++) { imgIndex = i; loader.loadClip(arFiles[i], holder); }; }; }; nextPic.onPress = function () { if (imgIndex <= FilesCount-1) { imgIndex++; _root.holder.attachBitmap(bmpArray[imgIndex]); _root['Display'].text = arNames[imgIndex]; } }; Последний раз редактировалось regman; 20.01.2011 в 13:40. |
|
|||||
Регистрация: Sep 2010
Сообщений: 16
|
Кто-то сможет указать на мои ошибки?
Последний раз редактировалось regman; 20.01.2011 в 16:05. |
Часовой пояс GMT +4, время: 10:37. |
|
« Предыдущая тема | Следующая тема » |
Теги |
bitmapdata , xml |
|
|