I Flash Lite rensas minnet med jämna mellanrum från objekt och variabler som en fil inte längre refererar till. Detta kallas för skräpinsamling. Flash Lite kör skräpinsamlingen en gång per minut, eller när användningen av filminnet plötsligt ökar med 20 % eller mer.
Även om du inte kan styra hur och när Flash Lite utför en skräpinsamling kan du ändå frigöra det minne som inte behövs. När det gäller tidslinje- eller globala variabler ska du använda uttrycket delete när du frigör minne som används av ActionScript-objekt. När det gäller lokala variabler, till exempel en variabel som definieras i en funktionsdefinition, kan du inte använda uttrycket delete för att frigöra ett objekts minne, men du kan ange den variabel som refererar till objektet till null. Då frigörs minnet som objektet använder, förutsatt att det inte finns några andra referenser till det objektet.
I de två kodexemplen nedan visas hur du frigör minne som objekten använder genom att ta bort variabeln som refererar till dessa objekt. Exemplen är identiska, utom att det första skapar en tidslinjevariabel och det andra en global variabel.
// 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);
Så som tidigare har nämnts kan du inte använda uttrycket delete för att frigöra minne som en lokal funktionsvariabel använder. I ställer anger du variabelreferensen till null, vilket har samma effekt som att använda 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();
Mer information om hur du skapar innehåll för mobila enheter finns på www.adobe.com/go/learn_cs_mobilewiki_en.