A causa delle limitazioni della velocità di elaborazione e della memoria, seguite le indicazioni riportate di seguito quando sviluppate ActionScript per il contenuto Flash Lite utilizzato sui dispositivi portatili:
Mantenete il file e il relativo codice il più semplici possibile. Rimuovete i videoclip non utilizzati, eliminate loop di fotogrammi e codici non necessari ed evitate la presenza di un numero eccessivo di fotogrammi o di fotogrammi non essenziali.
L'utilizzo del loop FOR può essere costoso a causa delle spese necessarie quando la condizione viene verificata con ciascuna iterazione. Quando i costi dell'iterazione e quelli del loop sono simili, eseguite più operazioni separatamente anziché utilizzare un loop. Il codice può essere più lungo, ma le prestazioni saranno migliori.
Interrompete la ripetizione ciclica basata sui fotogrammi quando non è più necessaria.
Quando possibile, evitate l'elaborazione di stringhe e array che può richiedere eccessive risorse della CPU.
Tentate sempre di accedere alle proprietà direttamente anziché utilizzando i metodi getter e setter di ActionScript, che hanno costi superiori rispetto ad altre chiamate di metodo.
Gestite gli eventi prudentemente. Mantenete gli array event listener compatti utilizzando condizioni per verificare se un listener esiste (non è null) prima di chiamarlo. Cancellate eventuali intervalli attivi chiamando clearInterval e rimuovete eventuali listener attivi chiamando removeListener prima di rimuovere il contenuto utilizzando unloadapplication o removeapplicationClip. Se alcune funzioni di ActiveScript fanno ancora riferimento ai dati SWF durante lo scaricamento di un videoclip, in Flash la memoria dati SWF non sarà raccolta nuovamente (ad esempio, da intervalli e listener).
Quando le variabili non sono più necessarie, eliminatele o impostatele su null per contrassegnarle per la raccolta cestino. L'eliminazione delle variabili aiuta a ottimizzare l'uso della memoria in fase di runtime perché le risorse non più necessarie vengono rimosse dal file SWF. È preferibile eliminare le variabili anziché impostarle su null.
Rimuovete esplicitamente i listener dagli oggetti chiamando removeListener prima della raccolta cestino.
Se una funzione viene chiamata in modo dinamico e passa un insieme fisso di parametri, utilizzate call anziché apply.
Rendete gli spazi dei nomi, come i percorsi, più compatti per ridurre il tempo di avvio. Tutti i livelli nel pacchetto sono compilati in un'istruzione IF e causano una nuova chiamata Object, pertanto la presenza di un numero inferiore di livelli nel percorso consente di risparmiare tempo. Un percorso con i livelli com.xxx.yyy.aaa.bbb.ccc.funtionName, ad esempio, causa l'instanziazione di un oggetto per com.xxx.yyy.aaa.bbb.ccc. Alcuni sviluppatori di Flash utilizzano software preprocessore per ridurre il percorso a un identificatore univoco, come 58923409876.functionName, prima di compilare il codice SWF.
Se un file è costituito da più file SWF che utilizzano le stesse classi ActionScript, escludete tali classi dalla selezione di file SWF durante la compilazione. Ciò consente di ridurre il tempo di download del file e i requisiti di memoria di runtime.
Evitate di utilizzare Object.watch e Object.unwatch, poiché qualsiasi modifica alla proprietà di un oggetto richiede al lettore di determinare se è necessario inviare una notifica della modifica.
Se il completamento del codice ActionScript eseguito su un fotogramma chiave nella timeline richiede più di 1 secondo, prendete in considerazione la divisione del codice da eseguire su più fotogrammi chiave.
Rimuovete l'istruzione trace dal codice quando pubblicate il file SWF. Per eseguire questa operazione, selezionate la casella di controllo Omit Trace Actions (Ometti azioni di analisi) nella scheda Flash della finestra di dialogo Impostazioni di pubblicazione.
L'eredità aumenta il numero di chiamate di metodo e utilizza più memoria: una classe che include tutte le funzionalità necessarie è più efficace in fase di runtime rispetto a una classe che eredita alcune funzionalità da una superclasse. Pertanto, può essere necessario arrivare a un compromesso di design tra l'estensibilità delle classi e l'efficacia del codice.
Quando un file SWF carica un altro file SWF che contiene una classe ActionScript personalizzata (ad esempio, foo.bar.CustomClass), quindi scarica il file SWF, la definizione della classe rimane in memoria. Per salvare la memoria, eliminate in modo esplicito tutte le classi personalizzate nei file SWF scaricati. Utilizzate l'istruzione delete e specificate il nome della classe completo, ad esempio: delete foo.bar.CustomClass.
Limitate l'uso delle variabili globali, poiché non vengono contrassegnate per la raccolta cestino se il videoclip che le ha definite viene rimosso.
Evitate di utilizzare i componenti standard dell'interfaccia utente, disponibili nel pannello Componenti di Flash. Tali componenti sono progettati per essere eseguiti sui computer desktop e non sono ottimizzati per l'esecuzione sui dispositivi portatili.
Evitate funzioni molto nidificate, se possibile.
Evitate di fare riferimento a variabili, oggetti o funzioni non esistenti. A differenza della versione desktop di Flash Player, in Flash Lite 2 la ricerca dei riferimenti alle variabili non esistenti è lenta, pertanto le prestazioni possono risentirne negativamente.
Evitate di definire le funzioni utilizzando sintassi anonima. Ad esempio, myObj.eventName = function{ ...}. Le funzioni definite in modo esplicito sono più efficaci, ad esempio function myFunc { ...}; my Obj.eventName = myFunc;.
Riducete al minimo l'utilizzo di funzioni matematiche e di numeri con virgola mobile. Il calcolo di tali valori rallenta le prestazioni. Se è necessario utilizzare le routine matematiche, prendete in considerazione il ricalcolo dei valori e la memorizzazione in un array di variabili. Il recupero dei valori da una tabella dati è molto più veloce del calcolo in Flash in fase di runtime.