Wegen der Verarbeitungsgeschwindigkeit und Speichereinschränkungen auf den meisten Mobilgeräten sollten Sie diese Richtlinien befolgen, wenn Sie ActionScript für Flash Lite-Inhalte zur Verwendung auf mobilen Geräten entwickeln:
Gestalten Sie die Datei und den zugehörigen Code so einfach wie möglich. Entfernen Sie nicht verwendete Filme, löschen Sie unnötige Frame- und Codeschleifen, und benutzen Sie nicht zu viele oder irrelevante Frames.
Der Einsatz von FOR-Schleifen kann teuer sein, weil durch Überprüfung der Bedingung bei jeder Wiederholung Mehraufwand entsteht. Wenn die Kosten für Wiederholungs- und Schleifenaufwand vergleichbar sind, führen Sie statt einer Schleife besser mehrere Vorgänge einzeln aus. Der Code ist vielleicht länger, aber die Leistung verbessert sich.
Beenden Sie Schleifen auf Framebasis, sobald sie nicht mehr erforderlich sind.
Vermeiden Sie nach Möglichkeit die Verarbeitung von Zeichenfolgen und Bereichen, weil dies rechenintensiv sein kann.
Versuchen Sie immer, direkt auf Eigenschaften zuzugreifen als ActionScript-Getter- und Setter-Methoden anzuwenden, die mit einem größeren Aufwand verbunden sind als andere Methodenaufrufe.
Verwalten Sie Ereignisse mit Bedacht. Gestalten Sie Ereignisempfängerbereiche kompakt, indem Sie mit Bedingungen überprüfen, ob ein Empfänger vorhanden ist (nicht null ist), bevor sie ihn aufrufen. Löschen Sie aktive Intervalle durch Aufrufen von clearInterval und entfernen Sie aktive Empfänger durch Aufrufen von removeListener, bevor Sie Inhalte mit unloadapplication oder removeapplicationClip entfernen. Flash ruft SWF-Datenspeicher (zum Beispiel von Intervallen und Empfängern) nicht ab, wenn ActionScript-Funktionen beim Entladen eines Films noch auf die SWF-Daten verweisen.
Wenn Variablen nicht mehr benötigt werden, löschen Sie sie, oder setzen Sie sie auf null. Damit werden sie zur Entsorgung markiert. Durch das Löschen von Variablen wird der Speicherbedarf während der Laufzeit reduziert, da überflüssige Elemente aus der SWF-Datei entfernt werden. Es ist daher vorteilhafter, Variablen zu löschen, anstatt sie auf null zu setzen.
Entfernen Sie Empfänger ausdrücklich aus Objekten, indem Sie vor der Entsorgung den Befehl removeListener aufrufen.
Wenn eine Funktion dynamisch aufgerufen wird und einen festen Parametersatz durchläuft, verwenden Sie call anstelle von apply.
Gestalten Sie Namensräume (zum Beispiel Pfade) kompakter, um die Startzeit zu verkürzen. Jede Ebene im Paket ist auf einen IF-Befehl kompiliert und verursacht einen Object-Aufruf. Weniger Ebenen im Pfad sparen demnach Zeit. Ein Pfad mit den Ebenen com.xxx.yyy.aaa.bbb.ccc.funtionName führt beispielsweise dazu, dass eine Objektinstanz für com.xxx.yyy.aaa.bbb.ccc erstellt wird. Manche Flash-Entwickler reduzieren mit Vorprozessorsoftware den Pfad auf eine eindeutige Kennung wie z. B. 58923409876.functionName, bevor sie den SWF-Code kompilieren.
Besteht eine Datei aus mehreren SWF-Dateien, welche die gleichen ActionScript-Klassen verwenden, schließen Sie diese Klassen bei der Kompilation aus ausgewählten SWF-Dateien aus. Dadurch kann man die Zeit zum Herunterladen der Datei und Laufzeitspeicheranforderungen reduzieren.
Verwenden Sie nicht Object.watch und Object.unwatch, weil der Player bei jeder Änderung an einer Objekteigenschaft bestimmen muss, ob eine Änderungsmitteilung gesendet werden muss.
Wenn ActionScript-Code, der in einem Keyframe auf der Zeitachse ausgeführt wird, mehr als eine Sekunde benötigt, sollten Sie erwägen, diesen Code zur Ausführung über mehrere Keyframes aufzuteilen.
Entfernen Sie beim Veröffentlichen der SWF-Datei trace-Befehle aus dem Code. Aktivieren Sie hierzu im Dialogfeld "Publish Settings" (Veröffentlichungseinstellungen) auf der Registerkarte "Flash" das Kontrollkästchen "Omit Trace Actions" (Nachzeichnungsaktionen auslassen).
Durch Übernahme wird die Anzahl von Methodenaufrufen erhöht und mehr Speicher benötigt: Eine Klasse, welche ihre gesamten Funktionen enthält, ist während der Laufzeit effizienter als eine Klasse, die einen Teil ihrer Funktionalität von einer Überklasse übernimmt. Aus diesem Grund müssen Sie möglicherweise einen Designkompromiss zwischen der Erweiterbarkeit von Klassen und Code-Effizienz eingehen.
Wenn eine SWF-Datei eine andere SWF-Datei lädt, die eine benutzerdefinierte ActionScript-Klasse (zum Beispiel foo.bar.CustomClass) enthält, und dann die SWF-Datei entlädt, bleibt die Klassendefinition im Speicher. Um die Speicheranforderungen zu verringern, löschen Sie ausdrücklich alle benutzerdefinierten Klassen in entladenen SWF-Dateien. Verwenden Sie den Befehl delete und geben Sie den vollständig qualifizierten Klassennamen an, z. B.: delete foo.bar.CustomClass.
Beschränken Sie den Einsatz globaler Variablen, weil sie nicht für die Entsorgung markiert werden, wenn der sie definierende Film entfernt wird.
Verwenden Sie nicht die Komponenten der Standardbenutzeroberfläche (verfügbar im Bedienfeld „Components“ [Komponenten] in Flash). Diese Komponenten wurden für die Ausführung auf Desktopcomputern entwickelt und sind nicht für mobile Geräte optimiert.
Vermeiden Sie nach Möglichkeit stark verschachtelte Funktionen.
Verweisen Sie nicht auf nicht vorhandene Variablen, Objekte oder Funktionen. Im Vergleich zur Desktopversion von Flash Player sucht Flash Lite 2 langsam nach Verweisen auf nicht vorhandene Variablen. Das kann die Leistung erheblich beeinträchtigen.
Definieren Sie möglichst keine Funktionen mit anonymer Syntax, zum Beispiel myObj.eventName = function{ ...}. Explizit definierte Funktionen sind effizienter, wie zum Beispiel function myFunc { ...}; my Obj.eventName = myFunc;.
Verwenden Sie Math-Funktionen und Gleitkommazahlen so sparsam wie möglich. Die Berechnung dieser Werte verlangsamt die Leistung. Wenn Sie Math-Routinen einsetzen müssen, sollten Sie die Werte nach Möglichkeit vorher berechnen und sie in einem Variablenbereich speichern. Das Abrufen von Werten aus einer Datentabelle geht viel schneller als sie während der Laufzeit durch Flash berechnen zu lassen.