delete

Availability
Flash Player 5.

Usage
delete reference

Parameters
reference The name of the variable or object to eliminate.

Returns
A Boolean value.

Description
Operator; destroys the object reference specified by the reference parameter, and returns true if the reference is successfully deleted; false otherwise. This operator is useful for freeing memory used by scripts. You can use the delete operator to remove references to objects. After all references to an object are removed, Flash Player takes care of removing the object and freeing the memory used by that object.

Although delete is an operator, it is typically used as a statement, as shown in the following example:

delete x;

The delete operator can fail and return false if the reference parameter does not exist or cannot be deleted. Predefined objects and properties, and variables declared with var, cannot be deleted. You cannot use the delete operator to remove movie clips.

Example
Usage 1: The following example creates an object, uses it, and deletes it after it is no longer needed:

var account:Object = new Object();
account.name = “Jon”;
account.balance = 10000;
trace(account.name);
delete account;
trace(account.name); //output: Jon undefined

Usage 2: The following example deletes a property of an object:

// create the new object “account”
var account:Object = new Object();
// assign property name to the account
account.name = “Jon”;
// delete the property
delete account.name;

Usage 3: The following example deletes an object property:

var my_array:Array = new Array();
my_array[0] = “abc”; // my_array.length == 1
my_array[1] = “def”; // my_array.length == 2
my_array[2] = “ghi”; // my_array.length == 3
// my_array[2] is deleted, but Array.length is not changed
delete my_array[2];
trace(my_array.length); // output: 3
trace(my_array); // output: abc,def,undefined

Usage 4: The following example shows the behavior of delete on object references:

var ref1:Object = new Object();
ref1.name = “Jody”;
// copy the reference variable into a new variable
// and delete ref1
ref2 = ref1;
delete ref1;
trace(“ref1.name “+ref1.name); //output: undefined
trace(“ref2.name “+ref2.name); //output: Jody

If ref1 had not been copied into ref2, the object would have been deleted when ref1 was deleted because there would be no references to it. If you delete ref2, there are no references to the object; it will be destroyed, and the memory it used becomes available.

See also
var


related link in Macromedia livedocs