clone (GlowFilter.clone method)

public clone() : GlowFilter

Returns a copy of this filter object.

Availability: ActionScript 1.0; Flash Player 8

Returns

GlowFilter - A new GlowFilter instance with all of the properties of the original GlowFilter instance.

Example

The following example creates three GlowFilter objects and compares them: filter_1 is created by using the GlowFilter constructor; filter_2 is created by setting it equal to filter_1; and clonedFilter is created by cloning filter_1. Notice that although filter_2 evaluates as being equal to filter_1, clonedFilter, even though it contains the same values as filter_1, does not.

import flash.filters.GlowFilter;

var filter_1:GlowFilter = new GlowFilter(0x33CCFF, 0.8, 35, 35, 2, 3, false, false);
var filter_2:GlowFilter = filter_1;
var clonedFilter:GlowFilter = 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]
    // >> strength: 2
    // >> blurY: 35
    // >> blurX: 35
    // >> knockout: false
    // >> inner: false
    // >> quality: 3
    // >> alpha: 0.8
    // >> color: 3394815
}

for(var i in clonedFilter) {
    trace(">> " + i + ": " + clonedFilter[i]);
    // >> clone: [type Function]
    // >> strength: 2
    // >> blurY: 35
    // >> blurX: 35
    // >> knockout: false
    // >> inner: false
    // >> quality: 3
    // >> alpha: 0.8
    // >> color: 3394815
}

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 a new instance based on the values of filter_1 instead of pointing to them in reference.

import flash.filters.GlowFilter;

var filter_1:GlowFilter = new GlowFilter(0x33CCFF, 0.8, 35, 35, 2, 3, false, false);
var filter_2:GlowFilter = filter_1;
var clonedFilter:GlowFilter = 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