Operation Manual
Naar boven
Beheer gebeurtenissen op een verstandige manier. Zorg dat gebeurtenislistener-matrices compact blijven door voorwaarden te gebruiken om
te controleren of een bepaalde listener bestaat (niet null is) voordat u deze aanroept. Wis alle actieve intervallen door clearInterval aan te
roepen en verwijder alle actieve listeners door removeListener aan te roepen voordat u inhoud verwijdert met unloadapplication of
removeapplicationClip. Flash haalt SWF-gegevens (bijvoorbeeld van intervallen en listeners) niet opnieuw uit het geheugen op als er nog
steeds ActionScript-functies zijn die verwijzen naar de SWF-gegevens wanneer een filmclip uit het geheugen is verwijderd.
Verwijder variabelen of maak ze null wanneer u ze niet meer nodig hebt. Hierdoor worden de variabelen gemarkeerd voor garbage collection.
Door variabelen te verwijderen helpt u het geheugengebruik te optimaliseren tijdens runtime omdat elementen die u niet nodig hebt, uit het
SWF-bestand zijn verwijderd. Het is beter variabelen te verwijderen dan ze op null in te stellen.
Verwijder listeners expliciet van objecten door voorafgaande aan de ‘garbage collection’ removeListener aan te roepen.
Wordt een functie dynamisch aangeroepen en geeft deze een vaste set parameters door, gebruik dan call in plaats van apply
Maak naamruimten (zoals paden) compacter om de opstarttijd te verminderen. Elk niveau in het pakket wordt gecompileerd tot een IF-
instructie en leidt tot een nieuwe Object-aanroep, dus als er minder niveaus in het pad aanwezig zijn, kost de verwerking van het pad minder
tijd. Een pad met bijvoorbeeld de niveaus com.xxx.yyy.aaa.bbb.ccc.funtionName leidt ertoe dat er een object wordt gemaakt voor
com.xxx.yyy.aaa.bbb.ccc. Sommige ontwikkelaars die werken met Flash, gebruiken voorverwerkingssoftware om het pad om te zetten in een
unieke id, zoals 58923409876.functionName, voordat de SWF-code wordt gecompileerd.
Bestaat een bestand uit meerdere SWF-bestanden die dezelfde ActionScript-klassen gebruiken, sluit deze klassen dan uit bij het selecteren
van SWF-bestanden tijdens het compileren. Hiermee kunt u de tijd die het kost om een bestand te downloaden verkorten en de
geheugenbehoefte tijdens runtime verminderen.
Vermijd het gebruik van Object.watch en Object.unwatch; bij elke verandering aan een objecteigenschap moet de player namelijk controleren
of er een veranderingsbericht moet worden verzonden.
Als het voltooien van de ActionScript-code die wordt uitgevoerd in een keyframe in de tijdlijn, langer dan 1 seconde duurt, kunt u de code het
beste opsplitsen en verdelen over meerdere keyframes.
Verwijder trace-instructies uit de code wanneer u het SWF-bestand publiceert. Schakel daartoe het selectievakje Omit Trace Actions in op
het tabblad Flash in het dialoogvenster Publish Settings.
Door overname wordt het aantal methodeaanroepen vergroot en wordt er meer geheugen gebruikt: een klasse die alle functionaliteit bevat
die nodig is, is efficiënter tijdens runtime dan een klasse die een deel van haar functionaliteit overneemt van een bovenliggende klasse.
Daarom moet u bij het maken van uw ontwerp de uitbreidbaarheid van klassen en de efficiëntie van de code tegen elkaar afwegen.
Als een SWF-bestand een ander SWF-bestand laadt dat een aangepaste ActionScript-klasse bevat (bijvoorbeeld foo.bar.CustomClass) en
als vervolgens het SWF-bestand uit het geheugen wordt verwijderd, blijft de klassendefinitie in het geheugen aanwezig. Om geheugen te
sparen, kunt u alle aangepaste klassen van SWF-bestanden die uit het geheugen zijn verwijderd, expliciet verwijderen. Gebruik de instructie
delete en geef de volledige klassenaam op, zoals: delete foo.bar.CustomClass.
Beperk het gebruik van globale variabelen, omdat deze niet worden gemarkeerd voor 'garbage collection' als de filmclip die deze variabelen
heeft gedefinieerd, wordt verwijderd.
Gebruik geen onderdelen van de standaardgebruikersinterface (beschikbaar in het deelvenster Componenten in Flash). Deze onderdelen zijn
ontworpen voor gebruik op desktopcomputers en zijn niet geoptimaliseerd om te worden uitgevoerd op mobiele apparaten.
Gebruik, wanneer dat maar enigszins mogelijk is, geen diep geneste functies.
Verwijs niet naar variabelen, objecten of functies die niet bestaan. In vergelijking met de desktopversie van Flash Player, werkt Flash Lite 2
vrij langzaam bij het opzoeken van variabelen die niet bestaan, waardoor de prestaties aanzienlijk afnemen.
Definieer geen functies met een anonieme syntaxis. Bijvoorbeeld myObj.eventName = function{ ...}. Expliciet gedefinieerde functies zijn
efficiënter, zoals function myFunc { ...}; my Obj.eventName = myFunc;.
Gebruik zo weinig mogelijk wiskundige functies en drijvende-kommagetallen. Door het berekenen van deze waarden wordt de inhoud
langzamer weergegeven. Als u gedwongen bent wiskundige routines te gebruiken, is het de moeite waard om de waarde vooraf te
berekenen en in een matrix van variabelen op te slaan. De waarden kunnen veel sneller uit een gegevenstabel worden opgehaald dan dat
Flash de waarden kan berekenen tijdens runtime.
Zie www.adobe.com/go/learn_cs_mobilewiki_nl voor meer tips en technieken voor het maken van inhoud voor mobiele telefoons en apparaten.
Het Flash Lite-bestandsgeheugen voor mobiele apparaten beheren
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 “garbage collection-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 “garbage collection-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