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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.05.2007, 03:31
2K WebStudio вне форума Посмотреть профиль Отправить личное сообщение для 2K WebStudio Посетить домашнюю страницу 2K WebStudio Найти все сообщения от 2K WebStudio
  № 1  
Ответить с цитированием
2K WebStudio
 
Аватар для 2K WebStudio

Регистрация: Jul 2002
Адрес: Russia Federation Moscow
Сообщений: 779
Отправить сообщение для 2K WebStudio с помощью ICQ
По умолчанию черно-белый

Написал как-то функцию, которая делает мувик черно-белым.

Код:
function setColorAdjust() {
	var a = arguments[0];
	var t = (a.adjust != undefined ? a.adjust : 1);
	var r = 0.212671;
	var g = 0.715160;
	var b = 0.072169;
	var filt = new ColorMatrixFilter([t*r+1-t, t*g, t*b, 0, 0, t*r, t*g+1-t, t*b, 0, 0, t*r, t*g, t*b+1-t, 0, 0, 0, 0, 0, 1, 0]);
	a.mc.adjust = t;
	a.mc.filters = new Array(filt);
}
Но вот проблема: не понимаю, почему, но функция то работает, то нет.. фигня какая-то...

пример вызова: setColorAdjust({mc:_root.mc, adjust:1});

Старый 26.05.2007, 03:50
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 2  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Код:
import flash.filters.ColorMatrixFilter;
import mx.events.EventDispatcher;
import mx.utils.Delegate;

class Screamge.effects.Tint {
	public var addEventListener:Function;
	private var dispatchEvent:Function;
	private var __mc:MovieClip;
	private var __des:Number = 0.01;
	private var __desaturation:Number = 0;
	
	public function Tint(mc:MovieClip) {
		EventDispatcher.initialize(this);
		__mc = mc;
		tinter ();
	}
	
	public function set des (num:Number):Void {
		__des = num;
	}
	
	public function Back ():Void {
		__mc.onEnterFrame = Delegate.create (this, this.BackTint)
	}	
	
	private function BackTint ():Void {
		__desaturation -= __des;
		__mc.filters = new Array(getDesaturationFilter(__desaturation));
		if (__desaturation <= 0){
			delete __mc.onEnterFrame;
				dispatchEvent ({type:'onFinish'})
		}
	}
	
	private function getDesaturationFilter(t) {
		t = t ? t : 1;
		var r:Number = 0.212671;
		var g:Number = 0.715160;
		var b:Number = 0.072169;
		return new ColorMatrixFilter([t*r+1-t, t*g, t*b, 0, 0, t*r, t*g+1-t, t*b, 0, 0, t*r, t*g, t*b+1-t, 0, 0, 0, 0, 0, 1, 0]);
	}
	
	private function tinter():Void {
		__mc.onEnterFrame = Delegate.create (this, this.onEnterHandle);
	}
	
	private function onEnterHandle ():Void {
		__desaturation += __des;
		__mc.filters = new Array(getDesaturationFilter(__desaturation));
		if (__desaturation >= 1){
			delete __mc.onEnterFrame;
			dispatchEvent ({type:'onFinish'});
		}
	}	
}
Взяв за основу код iNils -a написал класс, если он не против то пусть будет здесь. разбирайтесь.

Класс делает фотографию чёрно-белой, а также возвращает посредством вызова метода в обычное состояние.

Кстати вами написанная функция мало чем отличается от кода про который я говорил, вроде одно и тоже, разница есть маленькая - тот работает, а этот нет.
__________________
Free-lance | Twitter | Me


Последний раз редактировалось screamge; 26.05.2007 в 04:01.
Старый 26.05.2007, 09:32
2K WebStudio вне форума Посмотреть профиль Отправить личное сообщение для 2K WebStudio Посетить домашнюю страницу 2K WebStudio Найти все сообщения от 2K WebStudio
  № 3  
Ответить с цитированием
2K WebStudio
 
Аватар для 2K WebStudio

Регистрация: Jul 2002
Адрес: Russia Federation Moscow
Сообщений: 779
Отправить сообщение для 2K WebStudio с помощью ICQ
Цитата:
Сообщение от screamge
Кстати вами написанная функция мало чем отличается от кода про который я говорил, вроде одно и тоже, разница есть маленькая - тот работает, а этот нет.
Черт.. Забыл написать это:
import flash.filters.ColorMatrixFilter;
import mx.events.EventDispatcher;
import mx.utils.Delegate;

сорри - уже поздно ночью было)

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

Регистрация: Sep 2002
Сообщений: 30,784
http://dev.etcs.ru/blog/as2/ru/etcs/...s/colorfilter/

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Цитата:
Сообщение от screamge
Взяв за основу код iNils -a написал класс...
Что то я не припомню, что бы писал подобное.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 26.05.2007, 14:58
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 6  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Цитата:
Сообщение от iNils
Что то я не припомню, что бы писал подобное.
Насколько мне помнится ты выкладывал что-то аналогичное. Там не класс был а просто пара функций....я ошибаюсь?
__________________
Free-lance | Twitter | Me


Последний раз редактировалось screamge; 26.05.2007 в 15:01.
Создать новую тему Ответ Часовой пояс GMT +4, время: 22:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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