The BevelFilter class lets you add a bevel effect to display objects.
A bevel effect gives objects such as buttons a three-dimensional look. You can customize
the look of the bevel with different highlight and shadow colors, the amount
of blur on the bevel, the angle of the bevel, the placement of the bevel,
and a knockout effect.
You can apply the filter to any display object (that is, objects that inherit from the
DisplayObject class), such as MovieClip, SimpleButton, TextField, and Video objects,
as well as to BitmapData objects.

To create a new filter, use the constructor new BevelFilter().
The use of filters depends on the object to which you apply the filter:

To apply filters to movie clips, text fields, buttons, and video, use the
filters property (inherited from DisplayObject). Setting the filters
property of an object does not modify the object, and you can remove the filter by clearing the
filters property.

To apply filters to BitmapData objects, use the BitmapData.applyFilter() method.
Calling applyFilter() on a BitmapData object takes the source BitmapData object
and the filter object and generates a filtered image as a result.

If you apply a filter to a display object, the value of the cacheAsBitmap property of the
object is set to true. If you remove all filters, the original value of
cacheAsBitmap is restored.

This filter supports Stage scaling. However, it does not support general scaling, rotation, and
skewing. If the object itself is scaled (if the scaleX and scaleY properties are
not set to 100%), the filter is not scaled. It is scaled only when the user zooms in on the Stage.

A filter is not applied if the resulting image exceeds the maximum dimensions.
In AIR 1.5 and Flash Player 10, the maximum is 8,191 pixels in width or height,
and the total number of pixels cannot exceed 16,777,215 pixels. (So, if an image is 8,191 pixels
wide, it can only be 2,048 pixels high.) In Flash Player 9 and earlier and AIR 1.1 and earlier,
the limitation is 2,880 pixels in height and 2,880 pixels in width.
If, for example, you zoom in on a large movie clip with a filter applied, the filter is
turned off if the resulting image exceeds the maximum dimensions.

angle

The angle of the bevel. Valid values are from 0 to 360°. The default value is 45°.

The angle value represents the angle of the theoretical light source falling on the object
and determines the placement of the effect relative to the object. If the distance
property is set to 0, the effect is not offset from the object and, therefore,
the angle property has no effect.

Implementation public function get angle():Number public function set angle(value:Number):void

blurX

The amount of horizontal blur, in pixels. Valid values are from 0 to 255 (floating point).
The default value is 4. Values that are a power of 2 (such as 2, 4, 8, 16, and 32) are optimized
to render more quickly than other values.

Implementation public function get blurX():Number public function set blurX(value:Number):void

blurY

The amount of vertical blur, in pixels. Valid values are from 0 to 255 (floating point).
The default value is 4. Values that are a power of 2 (such as 2, 4, 8, 16, and 32) are optimized
to render more quickly than other values.

Implementation public function get blurY():Number public function set blurY(value:Number):void

quality

The number of times to apply the filter. The default value is BitmapFilterQuality.LOW,
which is equivalent to applying the filter once. The value BitmapFilterQuality.MEDIUM
applies the filter twice; the value BitmapFilterQuality.HIGH applies it three times.
Filters with lower values are rendered more quickly.

For most applications, a quality value of low, medium, or high is sufficient.
Although you can use additional numeric values up to 15 to achieve different effects,
higher values are rendered more slowly. Instead of increasing the value of quality,
you can often get a similar effect, and with faster rendering, by simply increasing the values
of the blurX and blurY properties.

You can use the following BitmapFilterQuality constants to specify values of the quality property:

BitmapFilterQuality.LOW

BitmapFilterQuality.MEDIUM

BitmapFilterQuality.HIGH

Implementation public function get quality():int public function set quality(value:int):void

strength

The strength of the imprint or spread. Valid values are from 0 to 255. The larger the value,
the more color is imprinted and the stronger the contrast between the bevel and the background.
The default value is 1.

Implementation public function get strength():Number public function set strength(value:Number):void

strength:Number (default = 1) — The strength of the imprint or spread. The higher the value, the more color is imprinted and the stronger the contrast between the bevel and the background. Valid values are 0 to 255.0.

quality:int (default = 1) — The quality of the bevel. Valid values are 0 to 15, but for most applications,
you can use BitmapFilterQuality constants:

BitmapFilterQuality.LOW

BitmapFilterQuality.MEDIUM

BitmapFilterQuality.HIGH

Filters with lower values render faster. You can use
the other available numeric values to achieve different effects.

The following example creates a dark yellow square and applies a bevel with a
bright yellow (0xFFFF00) highlight and a blue (0x0000FF) shadow. The general workflow for this
example is as follows:

Import the required classes.

Declare three properties used in the draw() function, which draws the
object to which the bevel filter is applied.

Create the BevelFilterExample() constructor function, which does the following:

Calls the draw() function, which is declared later.

Declares a variable filter as a BitmapFilter object
and assigns it to the return of a call to getBitmapFilter().

Creates a new Array object myFilters and adds filter to
the array, and assigns myFilters to the filters property of
BevelFilterExample object. This applies all filters found in myFilters, which in this case
is only filter.

Create the getBitmapFilter function to create and set properties for the filter.

Create the draw() function. This function
uses methods of the Graphics class, accessed through the graphics property
of the Sprite class, to draw the square.