Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Класс DropShadowFilter позволяет добавить эффект падающей тени к отображаемым объектам. Алгоритм теней основан на том же блоковом фильтре, который используется в фильтре размытия. При формировании отбрасываемой тени существует несколько вариантов выбора ее стиля, включая внешнюю или внутреннюю тень и режим выбивки. Фильтр можно применять к любому визуализируемому объекту (т.е. объекту, наследуемому от класса DisplayObject), например MovieClip, SimpleButton, TextField, Video, а также объектам BitmapData.
Выбор фильтра зависит от объекта, к которому требуется его применить:
- Применить фильтры к визуализируемым объектам можно с помощью свойства
filters
(наследуемого от DisplayObject). При задании объекту свойства filters
сам объект не модифицируется, а фильтр можно удалить через свойство filters
.
- Для применения фильтров к объектам BitmapData следует пользоваться методом
BitmapData.applyFilter()
. При вызове applyFilter()
для объекта BitmapData из исходного объекта BitmapData и объекта фильтра формируется изображение с применением фильтра.
При применении фильтра к визуализируемому объекту свойство cacheAsBitmap
этого объекта принимает значение true
. Если удалить все фильтры, будет восстановлено исходное значение cacheAsBitmap
.
Этот фильтр поддерживает масштабирование сцены. Тем не менее, он не поддерживает общее масштабирование, повороты и искажение. Если сам объект увеличен или уменьшен (т.е. если свойства scaleX
и scaleY
принимают значение, отличное от 1,0), фильтр не масштабируется. Он масштабируется, только когда пользователь применяет увеличение к самой сцене.
Невозможно применить фильтр к изображениям, если их получившаяся длина или ширина превышает 2880 пикселов. Например, при масштабировании большого фрагмента ролика, к которому применен фильтр, фильтр будет снят, если получившееся изображение окажется более 2880 пикселов в длину или в ширину.
Посмотреть примеры
alpha:Number
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Значение альфа-прозрачности для цвета тени. Действительны значения от 0,0 до 1,0. Например, значение 0,25 задает 25-процентную прозрачность. Значение по умолчанию 1.0.
Реализация public function get alpha():Number
public function set alpha(value:Number):void
angle:Number
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Угол тени. Действительны значения от 0 до 360 градусов (плавающая точка). Значение по умолчанию 45.
Реализация public function get angle():Number
public function set angle(value:Number):void
blurX:Number
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Степень размытия по горизонтали. Действительны значения от 0 до 255 (плавающая точка). Значение по умолчанию 4.0.
Реализация public function get blurX():Number
public function set blurX(value:Number):void
blurY:Number
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Степень размытия по вертикали. Действительны значения от 0 до 255 (плавающая точка). Значение по умолчанию 4.0.
Реализация public function get blurY():Number
public function set blurY(value:Number):void
color:uint
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Цвет тени. Действительны значения в шестнадцатеричном формате 0xRRGGBB. Значение по умолчанию — 0x000000.
Реализация public function get color():uint
public function set color(value:uint):void
distance:Number
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Расстояние смещения для тени (в пикселах). Значение по умолчанию — 4,0 (плавающая точка).
Реализация public function get distance():Number
public function set distance(value:Number):void
hideObject:Boolean
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, является ли объект скрытым. Значение true
указывает на то, что сам объект не нарисован, видна только его день. Значение по умолчанию — false
(объект отображается).
Реализация public function get hideObject():Boolean
public function set hideObject(value:Boolean):void
inner:Boolean
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, является ли тень внутренней тенью. Значение true
указывает на наличие внутренней тени. Значение по умолчанию false
задает внешнюю тень (тень вокруг внешнего контура объекта).
Реализация public function get inner():Boolean
public function set inner(value:Boolean):void
knockout:Boolean
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Применяет эффект выбивки (true
), который фактически делает заливку объекта прозрачной и выявляет цвет фона документа. Значение по умолчанию — false
(без выбивки).
Реализация public function get knockout():Boolean
public function set knockout(value:Boolean):void
quality:int
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Заданное число применений фильтра. Значение по умолчанию — BitmapFilterQuality.LOW
, что эквивалентно однократному применению фильтра. Значение BitmapFilterQuality.MEDIUM
применяет фильтр дважды; значение BitmapFilterQuality.HIGH
— трижды. Фильтры с более низкими значениями выполняются быстрее.
Для большинства приложений достаточно значений качества "low" ("низкое"), "medium" ("среднее") или "high" ("высокое"). Хотя можно использовать дополнительные числовые значения до 15 для получения разнообразных эффектов, более высокие значения выполняются дольше. Вместо увеличения значения quality
можно просто увеличить значения свойств blurX
и blurY
. Это даст похожий эффект, а выполнение будет происходить быстрее.
Реализация public function get quality():int
public function set quality(value:int):void
См. также
strength:Number
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Степень вдавливания или растискивания. Чем выше значение, тем более насыщен цвет тени и тем сильнее контраст между тенью и фоном. Действительны значения от 0 до 255,0. Значение по умолчанию — 1,0.
Реализация public function get strength():Number
public function set strength(value:Number):void
public function DropShadowFilter(distance:Number = 4.0, angle:Number = 45, color:uint = 0, alpha:Number = 1.0, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1.0, quality:int = 1, inner:Boolean = false, knockout:Boolean = false, hideObject:Boolean = false)
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Инициализирует новый экземпляр DropShadowFilter с заданными параметрами.
Параметры | distance:Number (default = 4.0 ) — Расстояние смещения для тени (в пикселах).
|
|
| angle:Number (default = 45 ) — Угол падения тени, от 0 до 360 (плавающая точка).
|
|
| color:uint (default = 0 ) — Цвет тени в шестнадцатеричном формате 0xRRGGBB. Значение по умолчанию — 0x000000.
|
|
| alpha:Number (default = 1.0 ) — Значение альфа-прозрачности для цвета тени. Действительны значения от 0,0 до 1,0. Например, значение 0,25 задает 25-процентную прозрачность.
|
|
| blurX:Number (default = 4.0 ) — Степень размытия по горизонтали. Действительны значения от 0 до 255 (плавающая точка).
|
|
| blurY:Number (default = 4.0 ) — Степень размытия по вертикали. Действительны значения от 0 до 255 (плавающая точка).
|
|
| strength:Number (default = 1.0 ) — Степень вдавливания или растискивания. Чем выше значение, тем более насыщен цвет тени и тем сильнее контраст между тенью и фоном. Действительны значения от 0 до 255.
|
|
| quality:int (default = 1 ) — Заданное число применений фильтра. Используйте константы BitmapFilterQuality:
BitmapFilterQuality.LOW BitmapFilterQuality.MEDIUM BitmapFilterQuality.HIGH
Дополнительные сведения об этих значениях см. в описании свойства quality .
|
|
| inner:Boolean (default = false ) — Определяет, является ли тень внутренней тенью. Значение true задает внутреннюю тень. Значение false задает внешнюю тень (тень вокруг внешнего контура объекта).
|
|
| knockout:Boolean (default = false ) — Применяет эффект выбивки (true ), который фактически делает заливку объекта прозрачной и выявляет цвет фона документа.
|
|
| hideObject:Boolean (default = false ) — Определяет, является ли объект скрытым. Значение true указывает на то, что сам объект не нарисован, видна только его день.
|
См. также
override public function clone():BitmapFilter
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает копию данного объекта фильтра.
Возвращает | BitmapFilter — Новый экземпляр DropShadowFilter со всеми свойствами оригинального экземпляра DropShadowFilter.
|
Код, представленный в следующем примере, рисует желтый квадрат и применяет к нему эффект отбрасываемой тени. В общих чертах последовательность действий в этом примере такова:
- Задаются три свойства, которые используются для отрисовки квадрата, к которому применяется фильтр.
- Создается функция конструктора. Конструктор вызывает метод
draw()
, использующий методы класса Graphics, полученные через свойство graphics
спрайта для рисования оранжевого квадрата. - В конструкторе задается переменная
filter
в виде объекта BitmapFilter и назначается возвращаемому значению вызова метода getBitmapFilter()
. Метод getBitmapFilter()
определяет используемый фильтр теней. - Создается новый объект массива
myFilters
, и к массиву добавляется фильтр filter
. Массив myFilters
назначается свойству filters
объекта DropShadowFilterExample. В результате применяются все фильтры, обнаруженные в myFilters
. В нашем случае это только один фильтр filter
.
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.BitmapFilter;
import flash.filters.BitmapFilterQuality;
import flash.filters.DropShadowFilter;
public class DropShadowFilterExample extends Sprite {
private var bgColor:uint = 0xFFCC00;
private var size:uint = 80;
private var offset:uint = 50;
public function DropShadowFilterExample() {
draw();
var filter:BitmapFilter = getBitmapFilter();
var myFilters:Array = new Array();
myFilters.push(filter);
filters = myFilters;
}
private function getBitmapFilter():BitmapFilter {
var color:Number = 0x000000;
var angle:Number = 45;
var alpha:Number = 0.8;
var blurX:Number = 8;
var blurY:Number = 8;
var distance:Number = 15;
var strength:Number = 0.65;
var inner:Boolean = false;
var knockout:Boolean = false;
var quality:Number = BitmapFilterQuality.HIGH;
return new DropShadowFilter(distance,
angle,
color,
alpha,
blurX,
blurY,
strength,
quality,
inner,
knockout);
}
private function draw():void {
graphics.beginFill(bgColor);
graphics.drawRect(offset, offset, size, size);
graphics.endFill();
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Wed Sep 24 2008, 07:56 AM -07:00