|
|
|||||
Программный blur в АС2. Возможно?
Если да, то как?
|
|
|||||
Регистрация: Sep 2009
Адрес: Челябинск
Сообщений: 43
|
А как плавное размытие?
|
|
|||||
Модрон-ветеринар
|
Плавно размываем мувик target_mc:
import flash.filters.BlurFilter; var blur:BlurFilter = new BlurFilter(0, 0, 3); var filterArray:Array = new Array(); filterArray[0]= blur; function setBlur (mc:MovieClip, maxBlur:Number, stepsQuant:Number) { var step:Number = maxBlur / stepsQuant; if (!mc.countBlur) { mc.countBlur = 0; } if (mc.countBlur < stepsQuant) { mc.countBlur++; blur.blurX = blur.blurY = step * mc.countBlur; mc.filters = filterArray; } else { clearInterval(BL); mc.countBlur = 0; } } BL = setInterval(setBlur, 20, target_mc, 100, 10);//старт применения блюра в 10 шагов с 0 до 100 с промежутком между шагами в 20 mc Последний раз редактировалось mooncar; 21.10.2009 в 23:25. |
|
|||||
ООо) Спасибо! 2 mooncar: Только просьба еще одна, поясните пожалуйста что к чему... Если не трудно.
Последний раз редактировалось greep; 22.10.2009 в 15:43. |
|
|||||
Модрон-ветеринар
|
Рассмотрим программный фильтр Blur:
У него есть параметры Они отвечают за размер размытия по соответственным ординатам. Функция, работающая через интервал, пошагово меняет их значение от нуля до заданного в maxBlur и с заданным в setInterval временным шагом. После изменения blur.blurX и blur.blurY нужно тут же заново применить фильтр к объекту (автоматически изменения не подействуют), что и делается в строке На самом деле тут применяется весь набор возможных фильтров filterArray, а не только содержащийся в этом массиве фильр blur. Что касается интервальной функции, то с ее помощью как раз периодически вызываем функцию изменения-переназначения фильтра. В setInterval все, что идет после временного шага (собственно, интервала) - это аргументы, передаваемые вызываемой функци. function setBlur (mc:MovieClip, maxBlur:Number, stepsQuant:Number) ...... setInterval(setBlur, 20, target_mc, 100, 10) 100 - это аргумент maxBlur - максимальное (конечное) размытие 10 - это аргумент stepsQuant - количество шагов, от него зависит плавность, так же как и от временного интервала mc.countBlur - это счетчик, считающий количество уже сделанных шагов. Для удобства он определяется внутри объекта-мувика. Последний раз редактировалось mooncar; 22.10.2009 в 16:16. |
|
|||||
Спасибо! Страна знает своих героев!
|
|
|||||
Регистрация: Jan 2010
Сообщений: 5
|
Подскажите пожалуйста, а как в данном примере плавно уменьшить блюр с 100 до 0?
|
|
|||||
Модрон-ветеринар
|
Счетчик можно также оставить считать от 0 до 10 по возрастающей.
А еще можно сделать счетчик уменьшающимся с 10 до 0 при убирании блюра. Тогда можно написать универсальную функцию, позволяющую менять блюр с любого места - то есть если блюр увеличивался, но вызвали уменьшение, а блюр недоувеличился до конца, то с текущего места он пойдет до нуля. Для определения "текущего места", соответственного значению текущего блюра как раз можно использовать текущее значение счетчика блюра.. |
|
|||||
Регистрация: Jan 2010
Сообщений: 5
|
Спасибо, добрый человек. Дай Б-г вам здоровья
|
Часовой пояс GMT +4, время: 21:17. |
|
« Предыдущая тема | Следующая тема » |
|
|