Flex: как создать фильтр цветного свечения с длительностью

#apache-flex #colors #filter #effect

#apache-flex #Цвет #Фильтр #эффект

Вопрос:

Мне нужно выделить границу кнопки, поэтому я создал фильтр свечения, подобный этому:

 <s:GlowFilter id="GlowFilter1"
  color="0xD9D919"
   blurX="30" blurY="40"
  alpha="1"
 />
  

Проблема в том, что я не знаю, как удалить эффект. Эффект остается в опции в том виде, в каком он был выделен.
Таким образом, я хотел бы установить длительность или что-то, что устраняет создаваемый мной эффект.

Спасибо.

Ответ №1:

Согласно Adobe live docs.

Удаление фильтров из отображаемого объекта

Удалить все фильтры из отображаемого объекта так же просто, как присвоить свойству filters значение null:

myDisplayObject.filters = null;

Итак, если вы хотите, вы можете установить filter равным нулю через некоторое время с помощью таймера или указать это в событии (например, наведение курсора мыши)

Комментарии:

1. Спасибо, но я все еще не знаю, как установить продолжительность фильтра. Для эффекта затухания я могу это сделать…

2. @manel насколько я понимаю, вы используете в основном mxml, а не as3, поэтому вам следует попробовать ответить от Флориана Ф.

Ответ №2:

ЕСЛИ вы используете Flex 3, используйте класс AnimateProperty.

В документе есть пример

Ответ №3:

Я не могу сказать, что я фанат фильтров / анимаций Flex. Мне они кажутся чрезмерно загроможденными. Я лично использую TweenMax, потому что он быстрый и простой в использовании. В этом случае, если вы хотите создать фильтр свечения, вы бы сделали это:

 import com.greensock.*; 
import com.greensock.easing.*;
import com.greensock.plugins.*;

// First you need to 'activate' the plugin.  Only need to do this once on app startup.
TweenPlugin.activate([GlowFilterPlugin]);

// Fade in glow
TweenMax.to(yourComponent, 1, {glowFilter:{color:0x91e600, alpha:1, blurX:30, blurY:30}});

// Fade out glow
TweenMax.to(yourComponent, 1, {glowFilter:{alpha:0, remove:true}});
  

Легко, да? 🙂

Комментарии:

1. Я ничего не вижу о запрашиваемой «задержке»