Пакет | flash.filters |
Класс | public final class DisplacementMapFilter |
Наследование | DisplacementMapFilter BitmapFilter Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Выбор фильтра зависит от объекта, к которому требуется его применить:
- Применить фильтры к экранному объекту можно с помощью свойства
filters
этого объекта. При задании объекту свойстваfilters
сам объект не изменяется, а фильтр можно удалить через свойствоfilters
. - Для применения фильтров к объектам BitmapData следует пользоваться методом
BitmapData.applyFilter()
. При вызовеapplyFilter()
для объекта BitmapData из исходного объекта BitmapData и объекта filter формируется изображение с применением фильтра.
При применении фильтра к экранному объекту свойство cacheAsBitmap
этого объекта принимает значение true
. Если удалить все фильтры, будет восстановлено исходное значение cacheAsBitmap
.
В фильтре используется следующая формула:
dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256, y + ((componentY(x, y) - 128) *scaleY) / 256)
где componentX(x, y)
получает значение цвета свойства componentX
от свойства mapBitmap
при (x — mapPoint.x ,y — mapPoint.y)
.
Изображение карты, используемое фильтром, масштабируется по размеру сцены. Оно не масштабируется при масштабировании самого объекта.
Этот фильтр поддерживает масштабирование сцены. Тем не менее, общее масштабирование, повороты и искажение не поддерживаются. Если сам объект увеличен или уменьшен (т. е. если свойства scaleX
и scaleY
принимают значение, отличное от 1,0), фильтр не масштабируется. Он масштабируется, только когда пользователь применяет увеличение к самой сцене.
Связанные элементы API
flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
Свойство | Определено | ||
---|---|---|---|
alpha : Number
Задает значение альфа-прозрачности, применяемое для замещения «вне пределов». | DisplacementMapFilter | ||
color : uint
Задает цвет, используемый при смещениях, выходящих за пределы границ. | DisplacementMapFilter | ||
componentX : uint
Указывает цветовой канал, который следует использовать в изображении карты для замещения результата x. | DisplacementMapFilter | ||
componentY : uint
Указывает цветовой канал, который следует использовать в изображении карты для замещения результата y. | DisplacementMapFilter | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
mapBitmap : BitmapData
Объект BitmapData, содержащий данные карты замещения. | DisplacementMapFilter | ||
mapPoint : Point
Значение, содержащее смещение левого верхнего угла целевого экранного объекта из левого верхнего угла изображения карты. | DisplacementMapFilter | ||
mode : String
Режим для фильтра. | DisplacementMapFilter | ||
scaleX : Number
Множитель, с помощью которого масштабируется результат x замещения, полученного в ходе вычисления карты. | DisplacementMapFilter | ||
scaleY : Number
Множитель, с помощью которого масштабируется результат y замещения, полученного в ходе вычисления карты. | DisplacementMapFilter |
Метод | Определено | ||
---|---|---|---|
DisplacementMapFilter(mapBitmap:BitmapData = null, mapPoint:Point = null, componentX:uint = 0, componentY:uint = 0, scaleX:Number = 0.0, scaleY:Number = 0.0, mode:String = "wrap", color:uint = 0, alpha:Number = 0.0)
Инициализирует экземпляр DisplacementMapFilter с заданными параметрами. | DisplacementMapFilter | ||
[переопределить]
Возвращает копию данного объекта фильтра. | DisplacementMapFilter | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object |
alpha | свойство |
alpha:Number
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает значение альфа-прозрачности, применяемое для замещения «вне пределов». Указывается в виде нормализованного значения от 0,0 до 1,0. Например, при 0,25 устанавливается 25-процентная прозрачность. Значением по умолчанию является 0. Это свойство используется, если свойство mode
принимает значение DisplacementMapFilterMode.COLOR
.
Реализация
public function get alpha():Number
public function set alpha(value:Number):void
color | свойство |
color:uint
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает цвет, используемый при смещениях, выходящих за пределы границ. Допустимый диапазон смещений – от 0,0 до 1,0. Значения приводятся в шестнадцатеричном формате. Значение color
по умолчанию равно 0. Это свойство используется, если свойство mode
принимает значение DisplacementMapFilterMode.COLOR
.
Реализация
public function get color():uint
public function set color(value:uint):void
componentX | свойство |
componentX:uint
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает цветовой канал, который следует использовать в изображении карты для замещения результата x. Возможные значения являются константами BitmapDataChannel:
BitmapDataChannel.ALPHA
BitmapDataChannel.BLUE
BitmapDataChannel.GREEN
BitmapDataChannel.RED
Реализация
public function get componentX():uint
public function set componentX(value:uint):void
Связанные элементы API
componentY | свойство |
componentY:uint
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает цветовой канал, который следует использовать в изображении схемы для замещения результата y. Возможные значения являются константами BitmapDataChannel:
BitmapDataChannel.ALPHA
BitmapDataChannel.BLUE
BitmapDataChannel.GREEN
BitmapDataChannel.RED
Реализация
public function get componentY():uint
public function set componentY(value:uint):void
Связанные элементы API
mapBitmap | свойство |
mapBitmap:BitmapData
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Объект BitmapData, содержащий данные карты замещения.
Реализация
public function get mapBitmap():BitmapData
public function set mapBitmap(value:BitmapData):void
Выдает
TypeError — BitmapData при назначении принимает значение null.
|
Связанные элементы API
mapPoint | свойство |
mapPoint:Point
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Значение, содержащее смещение левого верхнего угла целевого экранного объекта из левого верхнего угла изображения карты.
Реализация
public function get mapPoint():Point
public function set mapPoint(value:Point):void
Выдает
TypeError — Точка при назначении принимает значение null.
|
Связанные элементы API
mode | свойство |
mode:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Режим для фильтра. Возможные значения являются константами DisplacementMapFilterMode:
DisplacementMapFilterMode.WRAP
— переносит значение замещения на другую сторону исходного изображения.DisplacementMapFilterMode.CLAMP
— фиксирует значение замещения по краю исходного изображения.DisplacementMapFilterMode.IGNORE
— если значение замещения находится вне диапазона, игнорирует замещение и использует исходный пиксель.DisplacementMapFilterMode.COLOR
— если значение замещения находится вне изображения, заменяет значения свойствcolor
иalpha
.
Реализация
public function get mode():String
public function set mode(value:String):void
Выдает
TypeError — Строка при назначении принимает значение null.
| |
ArgumentError — Строка режима не относится к допустимым типам.
|
Связанные элементы API
scaleX | свойство |
scaleY | свойство |
DisplacementMapFilter | () | Конструктор |
public function DisplacementMapFilter(mapBitmap:BitmapData = null, mapPoint:Point = null, componentX:uint = 0, componentY:uint = 0, scaleX:Number = 0.0, scaleY:Number = 0.0, mode:String = "wrap", color:uint = 0, alpha:Number = 0.0)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Инициализирует экземпляр DisplacementMapFilter с заданными параметрами.
ПараметрыmapBitmap:BitmapData (default = null ) — Объект BitmapData, содержащий данные карты замещения.
| |
mapPoint:Point (default = null ) — Значение, содержащее смещение левого верхнего угла целевого экранного объекта из левого верхнего угла изображения карты.
| |
componentX:uint (default = 0 ) — Указывает цветовой канал, который следует использовать в изображении карты для замещения результата x. Возможными значениями являются константы BitmapDataChannel:
| |
componentY:uint (default = 0 ) — Указывает цветовой канал, который следует использовать в изображении схемы для замещения результата y. Возможными значениями являются константы BitmapDataChannel:
| |
scaleX:Number (default = 0.0 ) — Множитель, с помощью которого масштабируется результат замещения x, полученного в ходе вычисления схемы.
| |
scaleY:Number (default = 0.0 ) — Множитель, с помощью которого масштабируется результат y замещения, полученного в ходе вычисления карты.
| |
mode:String (default = "wrap ") — Режим фильтра. Возможными значениями являются константы DisplacementMapFilterMode:
| |
color:uint (default = 0 ) — Задает цвет, используемый при смещениях, выходящих за пределы границ. Допустимый диапазон смещений — от 0,0 до 1,0. Этот параметр используется, если для mode установлено значение DisplacementMapFilterMode.COLOR .
| |
alpha:Number (default = 0.0 ) — Задает альфа-значение, используемое при смещениях, выходящих за пределы границ. Указывается в виде нормализованного значения от 0,0 до 1,0. Например, при 0,25 устанавливается 25-процентная прозрачность. Этот параметр используется, если для mode установлено значение DisplacementMapFilterMode.COLOR .
|
Связанные элементы API
clone | () | метод |
override public function clone():BitmapFilter
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает копию данного объекта фильтра.
ВозвращаетBitmapFilter — Новый экземпляр DisplacementMapFilter с теми же свойствами, что и оригинальный экземпляр.
|
- Класс определяет переменные цвета фона, отметки текстового поля, размера и смещения, которые будут использоваться в различных функциях.
- Функция конструктора вызывает метод
draw()
, использующий класс Graphics для отрисовки квадрата с радиальной градиентной заливкой. Следует помнить, чтоgraphics
— это свойство объекта DisplacementMapFilterExample, являющегося расширением класса Sprite. - Функция конструктора вызывает метод
createLabel()
, который создает текстовое поле со значениемlabelText
и добавляет его к списку отображения. - Функция конструктора вызывает метод
createFilter()
, который выполняет следующие действия:- Создает переменную с именем
filter
для объекта filter. - Вызывает метод
getDisplacementMapFilter()
и назначает возвращаемое им значение переменнойfilter
. - Передает
filter
свойствуfilters
объекта DisplacementFilterExample (основной класс).
- Создает переменную с именем
- Метод
getBitmapFilter()
создает объект BitmapData с именемmapBitmap
и назначает его результатам методаcreateBitmapData()
. ОбъектmapBitmap
, как и другие переменные, определяет новый фильтр смещения изображения карты. - Метод
createBitmapData()
создает новый объект BitmapData, основанный на текущем содержимом объекта DisplacementMapFilterExample. Он создает новое растровое изображение на основеbitmapData
и добавляет его к сцене.
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.display.GradientType; import flash.display.SpreadMethod; import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.DisplacementMapFilter; import flash.filters.DisplacementMapFilterMode; import flash.geom.Matrix; import flash.geom.Point; import flash.text.TextField; public class DisplacementMapFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 200; private var offset:uint = 90; private var labelText:String = "Watch the text bend with the displacement map"; public function DisplacementMapFilterExample() { draw(); createLabel(); createFilter(); } private function createFilter():void { var filter:BitmapFilter = getBitmapFilter(); filters = new Array(filter); } private function getBitmapFilter():BitmapFilter { var mapBitmap:BitmapData = createBitmapData(); var mapPoint:Point = new Point(0, 0); var channels:uint = BitmapDataChannel.RED; var componentX:uint = channels; var componentY:uint = channels; var scaleX:Number = 0.5; var scaleY:Number = -30; var mode:String = DisplacementMapFilterMode.CLAMP; var color:uint = 0; var alpha:Number = 0; return new DisplacementMapFilter(mapBitmap, mapPoint, componentX, componentY, scaleX, scaleY, mode, color, alpha); } private function draw():void { var matrix:Matrix = new Matrix(); matrix.createGradientBox(size, size); graphics.beginGradientFill(GradientType.RADIAL, [0xFF0000, 0x0000FF], [100, 100], [55, 200], matrix, SpreadMethod.PAD); graphics.drawRect(0, 0, size, size); } private function createBitmapData():BitmapData { var bitmapData:BitmapData = new BitmapData(size, size, true, bgColor); bitmapData.draw(this, new Matrix()); var bitmap:Bitmap = new Bitmap(bitmapData); bitmap.x = size; addChild(bitmap); return bitmapData; } private function createLabel():void { var tf:TextField = new TextField(); tf.text = labelText; tf.y = offset; tf.width = size; addChild(tf); } } }
Tue Jun 12 2018, 11:34 AM Z