In Flash Lite worden objecten en variabelen waarnaar niet meer wordt verwezen vanuit een bestand, geregeld uit het geheugen verwijderd. Dit wordt 'garbage collection' genoemd. Flash Lite voert het 'garbagecollection-proces' elke 60 seconden eenmaal uit. Dit proces wordt ook uitgevoerd zodra het gebruik van het bestandsgeheugen plotseling met 20% of meer toeneemt.
Hoewel u niet kunt bepalen hoe en wanneer Flash Lite het 'garbagecollection-proces' uitvoert, hebt u toch de mogelijkheid om op het door u gewenste moment geheugen dat niet langer nodig is, vrij te maken. Gebruik voor tijdlijnvariabelen en globale variabelen de instructie delete om geheugen dat ActionScript-objecten gebruiken, vrij te maken. Voor lokale variabelen, bijvoorbeeld een variabele die is gedefinieerd binnen een functiedefinitie, kunt u de instructie delete niet gebruiken om geheugen van een object vrij te maken. U kunt echter wel de variabele die verwijst naar het object, op null instellen. Hiermee maakt u geheugen vrij dat door het object wordt gebruikt, mits er geen andere verwijzingen naar dat object aanwezig zijn.
De volgende twee codevoorbeelden laten zien hoe u geheugen dat door objecten wordt gebruikt, kunt vrijmaken door de variabele die naar deze objecten verwijst, te verwijderen. De voorbeelden zijn identiek, met dit verschil dat met het eerste voorbeeld een tijdlijnvariabele wordt gemaakt en met het tweede een globale variabele.
// First case: variable attached to a movie or // movie clip timeline // // Create the Date object. var mcDateObject = new Date(); // Returns the current date as a string. trace(mcDateObject); // Delete the object. delete mcDateObject; // Returns undefined. trace(mcDateObject); // // Second case: global variable attached to a movie or // movie clip timeline // // Create the Date object. _global.gDateObject = new Date(); // Returns the current date as a string. trace(_global.gDateObject); // Delete the object. delete _global.gDateObject; // Returns undefined. trace(_global.gDateObject);
U kunt, zoals al eerder is aangegeven, de instructie delete niet gebruiken om geheugen vrij te maken dat door een lokale functievariabele wordt gebruikt. In plaats daarvan kunt u de variabeleverwijzing op null instellen, waarmee u hetzelfde bereikt als met de instructie delete.
function func() { // Create the Date object. var funcDateObject = new Date(); // Returns the current date as a string. trace(funcDateObject); // Delete has no effect. delete funcDateObject; // Still returns the current date. trace(funcDateObject); // Set the object reference to null. funcDateObject = null; // Returns null. trace(funcDateObject); } // Call func() function. func();