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

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

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

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
По умолчанию Манипулирование цветами в BitmapData

Привет! Флэшеры, без вас не справлюсь. Задумал вот что: имеется на экране любой клип. Для простоты пускай будет красный (0хFF0000). Нужен след от него - для этого в каждом кадре я рисую битмапу, где фиксируется положение клипа. Получается как будто красным фломастером по холсту провел. С этим проблем нет. Далее хочу чтобы след темнел, т.е. в каждом шаге значение RR уменьшалось на какую-то величину. Для этого использую
Код:
var trans:Transform = new Transform(drawMc);
var r = 255 - n;
trans.colorTransform = new ColorTransform (1, 0, 0, 1, r, 0, 0, 0);
Проблема в том, что насыщенность конечной битмапы меняется целиком и когда я на новом шаге добавляю (метод draw) снова мой клип в изображение, он уже не 0хFF0000, а измененный на величину r. Но нужно чтобы только что добавленый элемент был красным и темнел со-временем. Вобщем чтобы как хвост у кометы получилось...
Блин, как тяжело бывает рассказать что нужно.

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

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Если Вы используете битмап, то лучше заблюривать шлейф методом BitmapData.applyFilter(), в противном случае не вижу смысла использовать битмап.
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

Старый 26.06.2008, 12:45
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 3  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Не, блюром не получится - эффект будет применяться ко всей битмапе и шлейф будет равномерным.
Битмап использую т.к. это здорово уменьшает тормоза, т.к. на сцене всего один клип присутствует.
Вот, получил то что хотел. Если кому нужно - выложу класс.

Upd: вообщето тоже не то. Это будет работать только если шлейф плавно исчезает, но изменять цвет его не получится. Вобщем вот что нужно: нарисовать красный клип в битмапу, уменьшить красный канал и добавить немного зеленого. Следующий шаг: снова нарисовать красный клип в ту же битмапу и снова уменьшить красный канал и добавить немного зеленого. Таким образом тот рисунок, что добавили на первом шаге должен быть более желтым чем тот, который добавили на втором. Но вот незадача, когда меняем значения каналов то новый добавляемый рисунок не красный, а с учетом изменения каналов на всех шагах. Если кто придумает алгоритм как это исправить - напишите.
Вложения
Тип файла: zip NewProject.zip (2.2 Кб, 50 просмотров)


Последний раз редактировалось Волгоградец; 26.06.2008 в 13:07.
Старый 26.06.2008, 13:37
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 4  
Ответить с цитированием
qazwsx
Banned

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Ну незнаю блюром тоже самое получается... С виду. Но разве твой колор трансформ не ко всму битмапу применится, или там только этот кружок будет?

Старый 26.06.2008, 13:44
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 5  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Не понял вопрос.
Блюром цвет никак не изменишь - допустим с красного на желтый.

Старый 26.06.2008, 15:00
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 6  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Вот, готов сформулировать проблему.
Вобщем нужно изменить offset изображения на определенную величину. Т.е. присутствуют в изображении два пиксела. Значения красных каналов равны R=100 и R=200 соответственно. Как можно задать их значение на 10 большее, т.е. чтобы стало R=110 и R=210??? Вроде встроенные фильтры этого не умеют (надеюсь я ошибаюсь)...

Старый 26.06.2008, 15:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Попробуй BitmapData.threshold method.
Что оно делает: позволяет выбрать область битмапдаты базируясь на максимальном и минимальном значении для каналов и сделать с ней какое-то преобразование (например, затемнить)... немного заморочливо, но если будет время - попробую что-то такое сделать.
__________________
Hell is the possibility of sanity

Старый 26.06.2008, 15:26
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 8  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Не выйдет - там в параметре задается цвет, который присвоится пикселам, а не зачение, на которое они изменятся.

Старый 26.06.2008, 15:37
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 9  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Цитата:
Сообщение от Волгоградец
Не выйдет - там в параметре задается цвет, который присвоится пикселам, а не зачение, на которое они изменятся.
Просто Вам придется сформировать цвет, на который они изменятся, перед тем, как присваивать его пикселу.

threshold + 0xA
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

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

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Эм... Как-то так подправил хелповский пример по BitmapData.colorTransform:
Код:
import flash.display.BitmapData;
import flash.geom.ColorTransform;
import flash.geom.Point;


var myBitmapData:BitmapData = new BitmapData(200, 80, false, 0x00FFFFFF);

var sx=0;
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc.attachBitmap(myBitmapData, this.getNextHighestDepth());

var nBD:BitmapData = new BitmapData(10, 80, false, 0x00FF0000);
mc.onEnterFrame = function() {
    myBitmapData.colorTransform(myBitmapData.rectangle, new ColorTransform(1, 1, 1, 1, 0, 20, 0, 0));
	myBitmapData.copyPixels(nBD,nBD.rectangle,new Point(sx,0));
	sx+=10;
	if(sx>200){
		sx=0;
	}
}
Или это не то, или я не понимаю, в чем у вас проблема.

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

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

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


 


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


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