Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.06.2010, 20:29
Ape4atka вне форума Посмотреть профиль Отправить личное сообщение для Ape4atka Найти все сообщения от Ape4atka
  № 1  
Ответить с цитированием
Ape4atka

Регистрация: Dec 2009
Адрес: Санкт-Петербург
Сообщений: 10
По умолчанию Создание BitmapData из картинки, загруженной через XML

Здравствуйте!
Ситуация следующая:
Есть картинки, загруженные по XML и есть функция, которая принимает в качестве аргумента объект BitmapData.
Вопрос: как создать BitmapData из имеющихся картинок?
Спасибо.

Старый 01.06.2010, 20:41
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Смотрите метод BitmapData.draw
Создайте новую битмапу. Отрисуйте с помощью этого метода в нее мувик, куда загрузили картинку. Выгрузите мувик, он больше не нужен. Всё, у вас в памяти теперь есть битмапа с этой картинкой.


Последний раз редактировалось mooncar; 01.06.2010 в 20:47.
Старый 01.06.2010, 22:13
Ape4atka вне форума Посмотреть профиль Отправить личное сообщение для Ape4atka Найти все сообщения от Ape4atka
  № 3  
Ответить с цитированием
Ape4atka

Регистрация: Dec 2009
Адрес: Санкт-Петербург
Сообщений: 10
Спасибо, принцип понял, для проверки написал следующий код:
Код AS1/AS2:
 _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.
Старый 01.06.2010, 22:17
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
А загрузки кто дожидаться будет? MovieClipLoader в помощь.

Старый 01.06.2010, 22:41
Ape4atka вне форума Посмотреть профиль Отправить личное сообщение для Ape4atka Найти все сообщения от Ape4atka
  № 5  
Ответить с цитированием
Ape4atka

Регистрация: Dec 2009
Адрес: Санкт-Петербург
Сообщений: 10
mooncar
udaaff
Спасибо огромное, весь вечер убил на эту тему и наконец, благодаря вам, все заработало!!)))

Старый 17.01.2011, 11:13
regman вне форума Посмотреть профиль Отправить личное сообщение для regman Найти все сообщения от regman
  № 6  
Ответить с цитированием
regman

Регистрация: Sep 2010
Сообщений: 16
Есть проблемка. С загруженного файла XML мы имеем пути к файлам arFiles и их описания arNames. Я пробую потом по этим путям их забитмапить в массив bmpArray прорисовывая (Draw) через главный контейнер holder (пробовал грузить в новосозданный контейнер tempMC - но тогда пр показе мувика вообще ничего не показывает). И после загрузки этих 5-ти файликов, нужно вывести (тоесть зааттачить с массива) первую картинку и ее описания в главный контейнер.

Проблема в том, что XML и его данные нормально заносятся в массивы. Но вот почему-то при показе мувика - только последняя картинка выводится, но с первым описанием.
Код AS1/AS2:
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.
Старый 20.01.2011, 13:44
regman вне форума Посмотреть профиль Отправить личное сообщение для regman Найти все сообщения от regman
  № 7  
Ответить с цитированием
regman

Регистрация: Sep 2010
Сообщений: 16
Кто-то сможет указать на мои ошибки?


Последний раз редактировалось regman; 20.01.2011 в 16:05.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
bitmapdata , xml

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:48.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.