Главная / Action Script 3
Пакетflash.filters
Классpublic final class BlurFilter
НаследованиеBlurFilter Inheritance BitmapFilter Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Класс BlurFilter позволяет применять визуальный эффект размывки к экранным объектам. Эффект размытия смягчает детали изображения. Можно создавать различные размытия: от мягкого и расфокусированного до размытия по Гауссу — дымчатого изображения, которое зритель видит будто бы через полупрозрачное стекло. При значении "low" свойства quality этого фильтра результатом будет слегка расфокусированное изображение. Если же свойству quality присвоено значение "high", то изображение будет ближе к размытию по Гауссу. Фильтр можно применять к любому визуализируемому объекту (т.е. объекту, наследуемому от класса DisplayObject), например MovieClip, SimpleButton, TextField, Video, а также объектам BitmapData.

Новый фильтр можно создать с помощью конструктора new BlurFilter(). Выбор фильтра зависит от объекта, к которому требуется его применить:

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

Этот фильтр поддерживает масштабирование сцены. Тем не менее, он не поддерживает общее масштабирование, повороты и искажение. Если сам объект увеличен или уменьшен (т.е. если свойства scaleX и scaleY не равны 100%), эффект фильтр не масштабируется. Он масштабируется, только когда пользователь применяет увеличение к самой сцене.

Невозможно применить фильтр к изображениям, если их получившаяся длина или ширина превышает 2880 пикселов. Например, при масштабировании большого фрагмента ролика, к которому применен фильтр, фильтр будет снят, если получившееся изображение окажется более 2880 пикселов в длину или в ширину.

Посмотреть примеры

См. также

flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
flash.display.BitmapData.applyFilter()


Общедоступные свойства
 СвойствоОпределено
  blurX : Number
Степень размытия по горизонтали.
BlurFilter
  blurY : Number
Степень размытия по вертикали.
BlurFilter
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  quality : int
Число применений эффекта "Размытие".
BlurFilter
Общедоступные методы
 МетодОпределено
  
BlurFilter(blurX:Number = 4.0, blurY:Number = 4.0, quality:int = 1)
Инициализирует фильтр с заданными параметрами.
BlurFilter
  
Возвращает копию данного объекта фильтра.
BlurFilter
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
blurXсвойство
blurX:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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
Версии среды выполнения:  1.0 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
Версии среды выполнения:  1.0 9

Число применений эффекта "Размытие". Значение по умолчанию — BitmapFilterQuality.LOW, что эквивалентно однократному применению фильтра. Значение BitmapFilterQuality.MEDIUM применяет фильтр дважды; значение BitmapFilterQuality.HIGH — трижды для получения размытия по Гауссу. Фильтры с более низкими значениями выполняются быстрее.

Для большинства приложений достаточно значения quality на уровне "low" ("низкое"), "medium" ("среднее") или "high" (высокое). Хотя можно использовать дополнительные числовые значения до 15 для увеличения числа раз применения эффекта размытия, более высокие значения выполняются дольше. Вместо увеличения значения quality можно просто увеличить значения свойств blurX и blurY. Это даст похожий эффект, а выполнение будет происходить быстрее.

Можно использовать следующие константы BitmapFilterQuality для задания свойства quality:



Реализация
    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
Версии среды выполнения:  1.0 9

Инициализирует фильтр с заданными параметрами. Значения по умолчанию дают мягкое, расфокусированное изображение.

Параметры
blurX:Number (default = 4.0) — Величина размытия по горизонтали. Действительны значения от 0 до 255,0 (значение с плавающей точкой).
 
blurY:Number (default = 4.0) — Величина размытия по вертикали. Действительны значения от 0 до 255,0 (значение с плавающей точкой).
 
quality:int (default = 1) — Заданное число применений фильтра. Можно задать качество с помощью констант BitmapFilterQuality:
  • flash.filters.BitmapFilterQuality.LOW
  • flash.filters.BitmapFilterQuality.MEDIUM
  • flash.filters.BitmapFilterQuality.HIGH

При высоком качестве ("high") изображение похоже на размытие по Гауссу. Для большинства приложений этих значений достаточно. Хотя можно использовать дополнительные числовые значения до 15 для получения разнообразных эффектов, более высокие значения выполняются дольше.

Сведения о методе
clone()метод
override public function clone():BitmapFilter

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Возвращает копию данного объекта фильтра.

Возвращает
BitmapFilter — Новый экземпляр BlurFilter с теми же свойствами, что и оригинальный экземпляр BlurFilter.
Примеры Как пользоваться примерами
BlurFilterExample.as

Код, представленный в следующем примере, рисует темно-желтый квадрат и применяет к нему фильтр размытия по Гауссу. Порядок выполнения кода таков:
  1. Импортируется требуемый класс.
  2. Объявляются три свойства функции draw(), рисующей объект, к которому и применяется фильтр "Размытие".
  3. Создается функция конструктора BlurFilterExample(), которая выполняет следующее:
    • Вызывает функцию draw(), которая объявляется позднее.
    • Объявляет переменную filter в виде объекта BitmapFilter и назначает ее возвращаемому значению вызова getBitmapFilter().
    • Создает новый массив myFilters и добавляет к массиву filter, а также назначает myFilters свойству filters объекта BlurFilterExample. В результате применяются все фильтры, обнаруженные в myFilters. В нашем случае это только один фильтр filter.
  4. Создайте функцию getBitmapFilter для создания фильтра и задания его свойств.
  5. Создайте функцию 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();
        }
    }
}