Пакет | flash.filters |
Класс | public final class BlurFilter |
Наследование | BlurFilter BitmapFilter Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
quality
этого фильтра результатом будет слегка расфокусированное изображение. Если же свойству quality
присвоено значение high, то изображение будет ближе к размытию по Гауссу. Фильтр можно применять к любому экранному объекту (т. е. объекту, наследуемому от класса DisplayObject), например MovieClip, SimpleButton, TextField, Video, а также объектам BitmapData.
Новый фильтр можно создать с помощью конструктора new BlurFilter()
. Выбор фильтра зависит от объекта, к которому требуется его применить:
- Если фильтр применяется к фрагментам ролика, текстовым полям, кнопкам или видео, следует использовать свойство
filters
(наследуемое от класса DisplayObject). При задании объекту свойстваfilters
сам объект не изменяется, а фильтр можно удалить через свойствоfilters
. - Для применения фильтров к объектам BitmapData следует пользоваться методом
BitmapData.applyFilter()
. При вызовеapplyFilter()
для объекта BitmapData из исходного объекта BitmapData и объекта фильтра формируется изображение с применением фильтра.
При применении фильтра к визуализируемому объекту свойство cacheAsBitmap
этого объекта принимает значение true
. Если удалить все фильтры, будет восстановлено исходное значение cacheAsBitmap
.
Этот фильтр поддерживает масштабирование сцены. Тем не менее, он не поддерживает общее масштабирование, повороты и искажение. Если сам объект увеличен или уменьшен (т. е. если свойства scaleX
и scaleY
не равны 100%), эффект фильтр не масштабируется. Он масштабируется, только когда пользователь применяет увеличение к самой сцене.
Фильтр не применяется, если полученное изображение превышает максимальные размеры. В AIR 1.5 и Flash Player 10 максимальный размер изображения составляет 8 191 пикселей в ширину или высоту, а общее количество пикселей не может превышать 16 777 215. (Т. е. если ширина изображения составляет 8 191 пикселя, его высота не может быть больше 2 048 пикселей.) В проигрывателе Flash Player 9 и более ранних версий, а также в AIR 1.1 и более ранних версий, это ограничение составляет 2 880 пикселей в высоту и 2 880 пикселей в ширину. Например, при масштабировании большого фрагмента ролика, к которому применен фильтр, фильтр будет снят, если получившееся изображение превысит максимальные размеры.
Связанные элементы API
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()
Свойство | Определено | ||
---|---|---|---|
blurX : Number
Степень размытия по горизонтали. | BlurFilter | ||
blurY : Number
Степень размытия по вертикали. | BlurFilter | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
quality : int
Число применений эффекта размытия. | BlurFilter |
Метод | Определено | ||
---|---|---|---|
Инициализирует фильтр с заданными параметрами. | BlurFilter | ||
[переопределить]
Возвращает копию данного объекта фильтра. | BlurFilter | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object |
blurX | свойство |
blurX:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Степень размытия по горизонтали. Действительны значения от 0 до 255 (плавающая запятая). По умолчанию используется значение 4. Значения, являющиеся степенью 2 (т.е. 2, 4, 8, 16 и 32), оптимизируются и выполняются быстрее, чем остальные.
Реализация
public function get blurX():Number
public function set blurX(value:Number):void
blurY | свойство |
blurY:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Степень размытия по вертикали. Действительны значения от 0 до 255 (плавающая запятая). По умолчанию используется значение 4. Значения, являющиеся степенью 2 (т.е. 2, 4, 8, 16 и 32), оптимизируются и выполняются быстрее, чем остальные.
Реализация
public function get blurY():Number
public function set blurY(value:Number):void
quality | свойство |
quality:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Число применений эффекта размытия. Значение по умолчанию — BitmapFilterQuality.LOW
, что эквивалентно однократному применению фильтра. Значение BitmapFilterQuality.MEDIUM
применяет фильтр дважды; значение BitmapFilterQuality.HIGH
— трижды для получения размытия по Гауссу. Фильтры с более низкими значениями выполняются быстрее.
Для большинства приложений достаточно значения quality
на уровне «low» («низкое»), «medium» («среднее») или «high» («высокое»). Хотя можно использовать дополнительные числовые значения до 15 для увеличения числа раз применения эффекта размытия, более высокие значения выполняются дольше. Вместо увеличения значения quality
можно просто увеличить значения свойств blurX
и blurY
. Это даст похожий эффект, а выполнение будет происходить быстрее.
Можно использовать следующие константы BitmapFilterQuality для задания свойства quality
:
BitmapFilterQuality.LOW
BitmapFilterQuality.MEDIUM
BitmapFilterQuality.HIGH
Реализация
public function get quality():int
public function set quality(value:int):void
BlurFilter | () | Конструктор |
public function BlurFilter(blurX:Number = 4.0, blurY:Number = 4.0, quality:int = 1)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Инициализирует фильтр с заданными параметрами. Значения по умолчанию дают мягкое, расфокусированное изображение.
ПараметрыblurX:Number (default = 4.0 ) — Величина размытия по горизонтали. Действительны значения от 0 до 255,0 (значение с плавающей точкой).
| |
blurY:Number (default = 4.0 ) — Величина размытия по вертикали. Действительны значения от 0 до 255,0 (значение с плавающей точкой).
| |
quality:int (default = 1 ) — Заданное число применений фильтра. Можно задать качество с помощью констант BitmapFilterQuality:
При высоком качестве (high) изображение похоже на размытие по Гауссу. Для большинства приложений этих значений достаточно. Хотя можно использовать дополнительные числовые значения до 15 для получения разнообразных эффектов, более высокие значения выполняются дольше. |
clone | () | метод |
override public function clone():BitmapFilter
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает копию данного объекта фильтра.
ВозвращаетBitmapFilter — Новый экземпляр BlurFilter с теми же свойствами, что и оригинальный экземпляр BlurFilter.
|
- Импортируется требуемый класс.
- Объявляются три свойства функции
draw()
, рисующей объект, к которому и применяется фильтр «Размытие». - Создается функция конструктора
BlurFilterExample()
, которая выполняет следующее:- Вызывает функцию
draw()
, которая объявляется позднее. - Объявляет переменную
filter
в виде объекта BitmapFilter и назначает ее возвращаемому значению вызоваgetBitmapFilter()
. - Создает новый массив
myFilters
и добавляет к массивуfilter
, а также назначаетmyFilters
свойствуfilters
объекта BlurFilterExample. В результате применяются все фильтры, обнаруженные вmyFilters
. В нашем случае это только один фильтрfilter
.
- Вызывает функцию
- Создайте функцию
getBitmapFilter
для создания фильтра и задания его свойств. - Создайте функцию
draw()
. Эта функция использует методы класса Graphics, доступные через свойствоgraphics
класса Sprite для рисования квадрата.
package { import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BlurFilter; public class BlurFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function BlurFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var blurX:Number = 30; var blurY:Number = 30; return new BlurFilter(blurX, blurY, BitmapFilterQuality.HIGH); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
Tue Jun 12 2018, 11:34 AM Z