Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   возможно применить фильтр после transform? (http://www.flasher.ru/forum/showthread.php?t=153650)

dedsky 07.04.2011 00:07

возможно применить фильтр после transform?
 
В объекте mc вложено два объекта mc1 и mc2. Объекту mc.mc1 задается цвет при помощи transform. После чего необходимо применить фильтр. Но по всей видимости фильтр после transform не работает. Работает только по отношению к объектам, к которым transform не применялся.
Вот код:
Код AS3:

import flash.filters.BitmapFilterQuality;
import flash.filters.BitmapFilterType;
import flash.filters.GradientBevelFilter;
import flash.geom.ColorTransform;
 
// меняем цвет
var colorInfo:ColorTransform = mc.mc1.transform.colorTransform;
colorInfo.color = 0x003399;
mc.mc1.transform.colorTransform = colorInfo;
 
// применяем фильтр имитирующий полупрозрачную белую пелену
// при наведении курсора и удаляем при снятии наведения
mc.addEventListener(MouseEvent.MOUSE_OVER, listener1);
mc.addEventListener(MouseEvent.MOUSE_OUT, listener2);
function listener1(e:MouseEvent) {
        var sellFilter:GradientBevelFilter;
        sellFilter = new GradientBevelFilter(0, 45, [0xFFFFFF], [.6], [0], 1, 1, 1,
        BitmapFilterQuality.HIGH, BitmapFilterType.INNER, false);
        e.target.filters = [sellFilter];
}
function listener2(e:MouseEvent) {
        e.target.filters = null;
}

Помогите поменять цвет объекта до применения фильтра. Наверняка есть другой способ?

tsarapkabel 07.04.2011 02:25

У меня тоже ничего не получилось :D

Может лучше
Код AS3:

function listener1(e:MouseEvent) {
        e.target.alpha = .5;
}
function listener2(e:MouseEvent) {
        e.target.alpha = 1;
}


olexandr 07.04.2011 09:45

я не пробовал ваш код, но что мешает сделать еще одну вложенность для мувиклипа? для одной вложенности применяем фильтр, для другой -трансформ

silin 07.04.2011 09:49

>>Но по всей видимости фильтр после transform не работает

фильтр-то работает, но transform.color - это полная 'закраска' объекта, в том числе и того, что фильтр наделал
сравни с таким, например
Код AS3:

var colorInfo:ColorTransform = mc.mc1.transform.colorTransform;
//colorInfo.color = 0x003399;
colorInfo.greenOffset = 0x33;
colorInfo.blueOffset = 0x99;


dedsky 07.04.2011 11:08

Цитата:

Сообщение от silin (Сообщение 987313)
сравни с таким, например
Код AS3:

var colorInfo:ColorTransform = mc.mc1.transform.colorTransform;
//colorInfo.color = 0x003399;
colorInfo.greenOffset = 0x33;
colorInfo.blueOffset = 0x99;


цвет не меняется

silin 07.04.2011 11:41

>>цвет не меняется
тебя непонятно: какой цвет и когда не меняется ?

я имел ввиду, что под colorTransform.color=0x003399 все всегда будет именно 0x003399 (во всяком случае для такого фильтра) и предлагал посмотреть действие с colorTransform 'помягче',
в моем тесте все меняется

dedsky 07.04.2011 11:50

Вложений: 1
Цитата:

Сообщение от silin (Сообщение 987329)
я имел ввиду, что под colorTransform.color=0x003399 все всегда будет именно 0x003399 (во всяком случае для такого фильтра) и предлагал посмотреть действие с colorTransform 'помягче',
в моем тесте все меняется

Вот неработающий пример. Цвет левого клипа (mc.mc1) при компиляции ролика должен стать синим, но не меняется.

silin 07.04.2011 12:09

еще раз:
чтоб сделать конкретно синим, colorTransform.color=0x003399 применен правильно, но синим он будет всегда (и под фильтром тоже), поменять цвет с помощью фильтра при таком colorTransform не получится
при более слабом colorTransform, только offset синего канала, например, действие фильтра будет видно, но исходный цвет не будет радикально синим
вот такая вилка..
это по сабжу почему не видно действия фильтра
а по самой задачке не оч. понятно зачем тут вообще фильтр, тем более GradientBevelFilter

dedsky 07.04.2011 12:19

Спасибо за объяснения.
Есть такая задача, в игре-раскраске при наведении курсора на спрайты необходимо эти спрайты как-то красивенько подсвечивать. Проще альфой, но так создается впечатление затемнения объекта, а хотелось наоборот - осветлять его.

Да, еще, с Днем Варенья!:)

silin 07.04.2011 12:29

>>как-то красивенько подсвечивать
тут ColorMatrixFilter в тему, пример: http://silin.su/#AS3/filters/color
во многих твинерах есть встроенные фичи управления цветом/тинтом/и т.д

>>Да, еще, с Днем Варенья!
спасибо


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

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