clone (BevelFilter.clone method)

public clone() : BevelFilter

Returns a copy of this filter object.

Availability: ActionScript 1.0; Flash Player 8

Returns

BevelFilter - A new BevelFilter instance with all the same properties as the original BevelFilter instance.

Example

The following example creates three BevelFilter objects and compares them. You can create the filter_1 object by using the BevelFilter constructor. You create the filter_2 object by setting it equal to filter_1. You create the clonedFilter by cloning filter_1. Notice that while filter_2 evaluates as being equal to filter_1, clonedFilter does not, even though it contains the same values as filter_1.

import flash.filters.BevelFilter;

var filter_1:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, 0.8, 0x0000FF, 0.8, 20, 20, 1, 3, "inner", false);
var filter_2:BevelFilter = filter_1;
var clonedFilter:BevelFilter = filter_1.clone();

trace(filter_1 == filter_2); // true
trace(filter_1 == clonedFilter); // false

for(var i in filter_1) {
    trace(">> " + i + ": " + filter_1[i]);
    // >> clone: [type Function]
    // >> type: inner
    // >> blurY: 20
    // >> blurX: 20
    // >> knockout: false
    // >> strength: 1
    // >> quality: 3
        // >> shadowAlpha: 0.8
    // >> shadowColor: 255
    // >> highlightAlpha: 0.8
    // >> highlightColor: 16776960
    // >> angle: 45
    // >> distance: 5
}

for(var i in clonedFilter) {
    trace(">> " + i + ": " + clonedFilter[i]);
    // >> clone: [type Function]
    // >> type: inner
    // >> blurY: 20
    // >> blurX: 20
    // >> knockout: false
    // >> strength: 1
    // >> quality: 3
    // >> shadowAlpha: 0.8
    // >> shadowColor: 255
    // >> highlightAlpha: 0.8
    // >> highlightColor: 16776960
    // >> angle: 45
    // >> distance: 5
}

To further demonstrate the relationships between filter_1, filter_2, and clonedFilter, the following example modifies the knockout property of filter_1. Modifying knockout demonstrates that the clone() method creates an instance based on values of the filter_1 instead of referring to the values.

import flash.filters.BevelFilter;

var filter_1:BevelFilter = new BevelFilter(5, 45, 0xFFFF00, 0.8, 0x0000FF, 0.8, 20, 20, 1, 3, "inner", false);
var filter_2:BevelFilter = filter_1;
var clonedFilter:BevelFilter = filter_1.clone();

trace(filter_1.knockout); // false
trace(filter_2.knockout); // false
trace(clonedFilter.knockout); // false

filter_1.knockout = true;

trace(filter_1.knockout); // true
trace(filter_2.knockout); // true
trace(clonedFilter.knockout); // false