På grund av bearbetningshastigheten och minnesbegränsningarna på de flesta mobila enheter ska du följa riktlinjerna nedan när du utvecklar ActionScript för Flash Lite-innehåll som ska användas på mobila enheter:
Gör filen och dess kod så enkel som möjligt. Ta bort filmklipp som inte används, ta bort onödiga bilder och kodloopar och undvik att använda för många eller ovidkommande bilder.
Att använda FOR-loopar kan vara kostsamt på grund av det extraarbete som utförs när villkoret kontrolleras vid varje iteration. När kostnaderna för den extra iterationen och looparna är jämförbara, kör du åtgärderna för sig i stället för att använda en loop. Koden kanske blir längre, men prestandan blir bättre.
Stoppa de bildbaserade looparna så fort som de inte längre behövs.
När så är möjligt bör du undvika sträng- och matrisbearbetning eftersom de kan vara processorintensiva.
Försök alltid att komma åt egenskaperna direkt i stället för att använda ActionScript-metoder för att hämta och ange, som är mer omständliga än andra metodanrop.
Hantera händelser med förstånd. Komprimera matriserna för händelseavlyssning genom att använda villkor som kontrollerar om en lyssnare finns (är inte null) innan den anropas. Rensa bort alla aktiva intervall genom att anropa clearInterval och ta bort alla aktiva lyssnare genom att anropa removeListener innan innehållet tas bort med hjälp av unloadapplication eller removeapplicationClip. Flash återsamlar inte SWF-dataminnet (till exempel från intervall och lyssnare) om några ActionScript-funktioner fortfarande refererar till SWF-data när ett filmklipp inte har lästs in.
När variablerna inte längre behövs tar du bort dem eller anger dem till null, så att de markeras för skräpinsamling. Om du tar bort variabler blir det enklare att optimera minnesanvändningen under körning, eftersom onödiga tillgångar då tas bort från SWF-filen. Det är bättre att ta bort variabler än att ange dem till null.
Du tar bort lyssnare uttryckligen från objekt genom att anropa removeListener innan skräp samlas in.
Om en funktion anropas dynamiskt och skickas som en fast uppsättning parametrar ska du använda call i stället för apply.
Gör namnområden (till exempel sökvägar) mer komprimerade så att starttiden minskar. Alla nivåer i paketet kompileras till ett IF-uttryck och orsakar ett nytt Object-anrop, så färre nivåer i sökvägen sparar tid. Till exempel en sökväg med nivåerna com.xxx.yyy.aaa.bbb.ccc.funktionsnamn gör så att ett objekt instantieras för com.xxx.yyy.aaa.bbb.ccc. Vissa Flash-utvecklare använder preprocessorprogram för att reducera sökvägen till en unik identifierare, till exempel 58923409876.funktionsnamn, innan SWF-koden kompileras.
Om en fil består av flera SWF-filer som använder samma ActionScript-klasser, ska du utelämna dessa klasser från SWF-filerna under kompileringen. Då blir det enklare att förkorta filens överföringstid och minneskraven vid körningen minskar.
Undvik att använda Object.watch och Object.unwatch eftersom varje ändring av en objektegenskap medför att spelaren måste fastställa om ett ändringsmeddelande måste skickas.
Om ActionScript-kod som körs vid en nyckelbild i tidslinjen tar mer än 1 sekund att kompilera, bör du dela upp koden så att den körs i flera nyckelbilder.
Ta bort trace-uttrycken från koden när du publicerar SWF-filen. Det gör du genom att markera kryssrutan Utelämna spårningsåtgärder på fliken Flash i dialogrutan Publiceringsinställningar.
Arv ökar antalet metodanrop och använder mer minne: en klass som omfattar alla funktioner som behövs är mer effektiv vid körning än en klass som ärver vissa funktioner från en överordnad klass. Därför kanske du måste kompromissa i designen mellan antalet klasser och kodens effektivitet.
När en SWF-fil läser in en annan SWF-fil som innehåller en anpassad ActionScript-klass (till exempel foo.bar.AnpassadKlass) och sedan slutar läsa in SWF-filen, bevaras klassdefinitionen i minnet. Om du vill spara minne tar du uttryckligen bort alla anpassade klasser i de icke inlästa SWF-filerna. Använd uttrycket delete och ange det fullständiga klassnamnet, till exempel: delete foo.bar.AnpassadKlass.
Begränsa användningen av globala variabler, eftersom de inte markeras för skräpinsamling om filmklippet som definierar dem tas bort.
Undvik att använda standardkomponenter för användargränssnittet (finns i fönstret Komponenter i Flash). Dessa komponenter är till för att köras på stationära datorer och är inte optimerade för mobila enheter.
När så är möjligt bör du undvika djupt kapslade funktioner.
Undvik att referera till variabler, objekt eller funktioner som inte finns. I Flash Lite 2 slås referenser till variabler som inte finns upp långsammare än i skrivbordsversionen av Flash Player, vilket allvarligt kan påverka prestandan.
Undvik att definiera funktioner genom att använda anonym syntax. Till exempel mittObj.händelsenamn= funktion{ ...}. Funktioner som definieras uttryckligen är mer effektiva, till exempel funktion minFunk { ...}; mittObj.händelsenamn= minFunk;.
Minimera användningen av matematikfunktioner och flyttal. När dessa värden beräknas blir prestandan sämre. Om du måste använda matematikrutiner bör du beräkna värdena i förväg och lagra dem i en variabelmatris. Det går mycket snabbare att hämta värden från en datatabell än att beräkna dem i Flash under körning.
Mer information om hur du skapar innehåll för mobila enheter finns på www.adobe.com/go/learn_cs_mobilewiki_en.