Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   AdjustColor - как применять? (http://www.flasher.ru/forum/showthread.php?t=119485)

nordfox 22.12.2008 05:32

AdjustColor - как применять?
 
Здравствуйте уважаемые!
Много искал и читал, прежде чем спросить. Интересует AdjustColor. Как применять. На ADOBE ничего толком нет. Хочу плавно изменять насыщенность, но для этого нет желания пересчитывать матрицу. Много действий, а хочется простоты кода.

ramshteks 22.12.2008 05:34

напишите красивую и простую обертку для матриц

nordfox 22.12.2008 05:50

написать то не трудно, но ведь согласно документации от адоба через AdjustColor все должно быть проще. только вот как?

Dima_DPE 22.12.2008 07:41

Что-то не видно, чтобы вы много искали, вот первое что показал гугл - AdjustColor, из чего видно, что класс конечно хороший, но он умеет лишь генерировать массив, который впоследствии скармливается ColorMatrixFilter-у, правда перед этим можно задать brightness, contrast, hue и saturation, которые будут применены для всех цветов. Смею предположить, что код будет примерно такой
Код AS3:

var ac:AdjustColor = new AdjustColor();
ac.hue = 50;
ac.saturation = -50;
var filter:ColorMatrixFilter = new ColorMatrixFilter(ac.CalculateFinalFlatArray());
someMovieClip.filters = [filter];

Хотя, возможно, надо задать все 4 параметра, а то не совсем понятно зачем метод AllValuesAreSet(), но это узнать очень просто :)

nordfox 22.12.2008 12:15

Я говорил что искал хорошо. Нигде ни одного рабочего примера!
Цитата:

Смею предположить, что код будет примерно такой
я тоже много думал о применении, ничего толкового не надумал
Цитата:

не совсем понятно зачем метод AllValuesAreSet()
это кажется никому не понятно. на адобе ни слова о том как пользоваться. поэтому и спрашиваю, может кто нашел рабочее решение

silin 22.12.2008 17:32

рабочий пример
Код AS3:

import fl.motion.AdjustColor;
var ac:AdjustColor=new AdjustColor();
var saturation:int=0;
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
 
function enterFrameHandler(e:Event):void{
        saturation-=5;
        ac.brightness=0;
        ac.hue=0;
        ac.contrast=0;
        ac.saturation=saturation;
 
        filters=[new ColorMatrixFilter(ac.CalculateFinalFlatArray())];
 
}

зы. неудобная штука, имхо
глянь http://silin.fatal.ru/#AS3/filters/color

nordfox 22.12.2008 17:39

спасибо!
Цитата:

глянь http://silin.fatal.ru/#AS3/filters/color
видел, разбирал.
а это то что надо! прям по моей задаче. еще раз спасибо!


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

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