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

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

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

Регистрация: Jun 2009
Сообщений: 461
Question Как из динамически созданного Спрайта сделать БитМэп?

Собственно по сабжу... есть Sprite, я в него добавляю тонну детей, которые являются тоже Sprite'ами, в которые вставлены картинки. И хотел бы главный Sprite превратить в битмапу и удалить всех детей, чтобы не засорять.

Ну как битмапу нарисовать это понятно, сетПикселем, но как пиксель получить из спрайта?

Старый 30.08.2010, 15:23
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Почитайте про BitmapData.draw()
__________________
...вселенская грусть

Старый 30.08.2010, 15:24
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 3  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Не надо setPixel, просто
Код AS3:
bitmapData.draw(sprite)
Вообще для превращения клипа в растр, я использую такую функцию, не знаю на сколько правильно так, но работает.
Код AS3:
function rasterClip(obj) {
	var matrix:Matrix=new Matrix();
	var rect:Rectangle=obj.getRect(obj);
	matrix.translate(-rect.x,-rect.y);
	var bmd:BitmapData=new BitmapData(obj.width,obj.height,true,0x00000000);
	bmd.draw(obj,matrix);
	var bm:Bitmap=new Bitmap(bmd);
	bm.x=rect.x;
	bm.y=rect.y;
	//bm.smoothing=true; //по желанию
	while (obj.numChildren) {
		obj.removeChildAt(0);
	}
	obj.addChild(bm);
}
rasterClip(clip)


Последний раз редактировалось samana; 30.08.2010 в 15:32.
Старый 30.08.2010, 15:41
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 4  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
samana, ну в Вашем коде надо было бы прописать еще

Код AS3:
obj.graphics.clear();
И типизировать то сё не мешало бы
__________________
ranga

Старый 30.08.2010, 15:45
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 5  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
А подскажите что типизировать, я честно не знаю. А разве graphics.clear() не используется только если динамически рисовать в клипе, ведь так ошибку выдаёт?

Старый 30.08.2010, 16:25
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 6  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Если там что нарисовано динамически - почистит, иначе просто ничего не произойдёт.
Типизировать желательно параметр obj (DisplayObject), ну и функции обычно присваивается void, правда последнее вроде только оглядка на С++. Как бы принято так писать . Но может имеет и какой то практический смысл.
__________________
ranga

Старый 30.08.2010, 16:48
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 7  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Ага, я понял, спасибо. У меня ещё там расчёт если нарисовано не динамически, а вручную. Альтернатива cacheAsBitmap но без тормозов.

Старый 30.08.2010, 16:53
zatoichi вне форума Посмотреть профиль Отправить личное сообщение для zatoichi Найти все сообщения от zatoichi
  № 8  
Ответить с цитированием
zatoichi
 
Аватар для zatoichi

Регистрация: Aug 2010
Адрес: 55.1° с.ш. 82.56° в.д.
Сообщений: 25
Как превратить в битмап вроде понятно, попробовал у себя в коде заменить один такой спрайт, но у меня не получается сделать его прозрачность, какая была раньше в Sprite. Наверно надо что-то с матрицей делать? Подскажите.

Добавлено через 7 минут
Разобрался. ..Точнее не с матрицей а colorTransform

Старый 30.08.2010, 19:57
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 9  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Можешь описать подробней как альфу из спрайта сохранить.

Старый 31.08.2010, 00:26
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Не могли бы Вы рассказать что такое "динамически созданный Спрайт"?
Очень интересует, вдруг мне тоже пригодится данная техника.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


 


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


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