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

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

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
По умолчанию "Анимация" с ColorMatrixFilter

Вобщем. проблемка такая:
на блоге White`а нашел интересные эффектики, захотелось сделать что то подобное)
Собственно, я хочу "поиграться" с битмап датой, менять програмно её цвет.
Код:
//взял сразу все, что может понадобиться
import flash.display.BitmapData;
import flash.filters.BlurFilter;
import flash.filters.ColorMatrixFilter;
import flash.geom.Point;
import flash.geom.Matrix;

var bg:MovieClip=createEmptyMovieClip("bg",1);
var bm:BitmapData=new BitmapData(550,400,false,0xFFFFFF);
bg.attachBitmap(bm,1);

  var matrix:Array = new Array();
    matrix = matrix.concat([1, 0, 0, 0, -4]); // red
    matrix = matrix.concat([0.5, 1, 0.4, 0.3, 0.4]); // green
    matrix = matrix.concat([0.5, 0, 0.6, 0.7, 0]); // blue
    matrix = matrix.concat([0.7, 0.5, 0.3, 0.2, 0]); // alpha
    var cmF:ColorMatrixFilter = new ColorMatrixFilter(matrix);
Заранее извиняюсь за кривость, пока цель только разобраться...
сделали, теперь к какому нить верчу кручу мувику это применяем:
Скажем, мы будем драгать этот мув:
Код:
mc.onEnterFrame=function():Void{
	mc._x=_root._xmouse;
	mc._y=_root._ymouse;
	bm.draw(_root);
	bm.applyFilter(bm, bm.rectangle, new Point(0, 0), cmF);
}
Это так, предисловие
Теперь собственно, и пошли вопросы.
1) Как я понимаю, этот кусок
Код:
bm.draw(_root);
заставляет рисовать в битмапе bm все, что происходит в скобках (в данном случае в _root`e). Я прав?

2) Основной вопрос, везде в документации с матрицами колорматриксфилтра было только нечто похожее на это:
Код:
Z 0 0 0 0
0 Z 0 0 0 
0 0 Z 0 0 (Z - это от меня, процентная работа канала цвета, как я понял)
0 0 0 N 0 (where N is between 0.0 and 1.0
Нули там стоят, ясен пень, не просто так. Поиграв с ними, получил при вызове
Код:
bm.applyFilter(bm, bm.rectangle, new Point(0, 0), cmF);
анимацию - измена цвета. Странно, но ведь это
Код:
redResult = a[0] * srcR + a[1] * srcG + a[2] * srcB + a[3] * srcA + a[4]
 greenResult = a[5] * srcR + a[6] * srcG + a[7] * srcB + a[8] * srcA + a[9]
 blueResult = a[10] * srcR + a[11] * srcG + a[12] * srcB + a[13] * srcA + a[14]
 alphaResult = a[15] * srcR + a[16] * srcG + a[17] * srcB + a[18] * srcA + a[19]
то есть фактически это константы! Почему же происходит измена цвета, и как получать нужные эфекты из этого? Скажем, переход из белого сначала в синий, после в зеленый и обратно в белый? Если это можно реализовывать только "подменой" матрицы в нужный момент, то, например, просто из зеленого в красный?
Заранее благодарю.

Старый 12.03.2008, 08:25
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Разобрался с draw - это аля дупликэйт муви на битмап.
ЗЫ если тут не понимают, мб есть смысл перенести в раздел для профи?...

Старый 12.03.2008, 09:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Psycho Tiger
ЗЫ если тут не понимают, мб есть смысл перенести в раздел для профи?...
Выбранный раздел для темы не влияет на частоту и скорость появления ответов в ней.

Читать про фильтры: http://noregret.org/tutor/index.html

Старый 12.03.2008, 09:51
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Спасибо, там я уже был, но тупо проглядел ссылку
Прочитал вот это ==> http://noregret.org/tutor/filters2/#2
Почесал репу... может и не только репу... пришел к выводу, что же за "анимация тут происходит".
1) Исходное изображение
2) Сделали ему матрицы трансформации, которые меняют чуть чуть его на красный
2) Применили его, изображение стало чуть чуть красным
3) Снова, стало краснее
4) Снова и снова...
n) Изображение уже все красное

Тобишь, из за этого и происходила эта "анимация"?
Кхм, чегож я сразу не допер) спасибо


Последний раз редактировалось Psycho Tiger; 12.03.2008 в 10:05.
Старый 12.03.2008, 17:13
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Раздел для профи закрыт.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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