Flash Lite 2 |
|||
| Guide de référence du langage ActionScript Flash Lite 2.x > Eléments du langage ActionScript > Instructions > Instruction delete | |||
delete reference
Détruit la référence d'objet spécifiée par le paramètre reference et renvoie true si la référence est supprimée correctement ; false sinon. Cet opérateur permet de libérer la mémoire mobilisée par les scripts. Vous pouvez exploiter l'opérateur delete pour supprimer des références à des objets. Une fois toutes les références à un objet supprimées, Flash Player supprime cet objet et libère la mémoire qu'il utilise.
Bien que delete soit un opérateur, il est généralement employé en tant qu'instruction, comme indiqué dans l'exemple suivant :
delete x;
L'opérateur delete peut échouer et renvoyer false si le paramètre reference n'existe pas ou ne peut pas être supprimé. L'instruction var ne vous permet pas de supprimer d'objets et de propriétés prédéfinis, ni de variables déclarées au sein d'une fonction. Vous ne pouvez pas utiliser l'opérateur delete pour supprimer des clips.
Disponibilité : ActionScript 1.0 ; Flash Lite 2.0
Boolean - Valeur booléenne.
reference:Object - Nom de la variable ou de l'objet à éliminer.
Utilisation 1 : L'exemple suivant crée un objet, l'utilise, puis le supprime lorsqu'il n'est plus requis :
var account:Object = new Object(); account.name = "Jon"; account.balance = 10000; trace(account.name); // Renvoie : Jon delete account; trace(account.name); // Renvoie : non défini
Utilisation 2 : L'exemple suivant supprime une propriété d'un objet :
// Création de l'objet " account " var account:Object = new Object(); // Affectation du nom de propriété à account account.name = "Jon"; // Suppression de la propriété delete account.name;
Utilisation 3 : L'exemple suivant supprime une propriété d'objet :
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] est supprimé, mais Array.length n'est pas modifié delete my_array[2]; trace(my_array.length); // Renvoie : 3 trace(my_array); // Renvoie : abc,def,undefined
Utilisation 4 : L'exemple suivant illustre le comportement de l'instruction delete sur des références à un objet :
var ref1:Object = new Object();
ref1.name = "Jody";
// Copie la variable de référence dans une nouvelle variable
// et supprime ref1
ref2 = ref1;
delete ref1;
trace("ref1.name "+ref1.name); // Renvoie : ref1.name undefined
trace("ref2.name "+ref2.name); // Renvoie : ref2.name Jody
Si ref1 n'avait pas été copié dans ref2, l'objet aurait été supprimé au moment de la suppression de ref1 car il ne contient aucune référence. Si vous supprimez ref2, il n'existe aucune référence à l'objet ; celui-ci sera détruit et la mémoire qu'il utilisait devient disponible.