Start Animate en maak een document.
- Adobe Animate-handboek
- Inleiding tot Animate
- Animatie
- Grondbeginselen voor animaties in Animate
- Frames en hoofdframes gebruiken in Animate
- Frame-voor-frame-animaties in Animate
- Werken met klassieke tussenvoegingsanimaties in Animate
- De tool Penseel
- Hulplijnen voor bewegingen
- Bewegings-tween en ActionScript 3.0
- Over tussenvoegingsanimaties met beweging
- Animaties met bewegings-tweens
- Een animatie met bewegings-tween maken
- Eigenschapshoofdframes gebruiken
- Een positie animeren met een tween
- Bewegings-tweens bewerken in de Bewegingseditor
- Het bewegingspad van een tween-animatie bewerken
- Bewegings-tweens manipuleren
- Aangepaste versnellingen toevoegen
- Voorinstellingen voor beweging maken en toepassen
- Animatietween-reeksen instellen
- Werken met als XML-bestanden opgeslagen bewegings-tweens
- Bewegings-tweens en klassieke tweens
- Tussenvoegingen met vormen
- De tool Bone-animatie gebruiken in Animate
- Werken met structuren voor personages in Animate
- Maskeerlagen gebruiken in Adobe Animate
- Werken met scènes in Animate
- Interactiviteit
- Knoppen maken met Animate
- Animate-projecten converteren naar andere documentindelingen
- HTML5 Canvas-documenten maken en publiceren in Animate
- Interactiviteit toevoegen met codefragmenten in Animate
- Aangepaste HTML5-componenten maken
- Componenten in HTML5 Canvas gebruiken
- Maken van aangepaste componenten: Voorbeelden
- Codefragmenten voor aangepaste componenten
- Tips en trucs: Adverteren met Animate
- Ontwerp en publicatie van virtual reality
- Werkruimte en workflow
- Penselen maken en beheren
- Google-lettertypen gebruiken in HTML5 Canvas-documenten
- Creative Cloud Libraries en Adobe Animate gebruiken
- Het werkgebied en het deelvenster Tools voor Animate gebruiken
- Workflow en werkruimte in Animate
- Weblettertypen gebruiken in HTML5 Canvas-documenten
- Tijdlijnen en ActionScript
- Werken met meerdere tijdlijnen
- Voorkeuren instellen
- Deelvensters voor ontwerp in Animate gebruiken
- Tijdlijnlagen maken met Animate
- Animaties exporteren voor mobiele apps en game-engines
- Objecten verplaatsen en kopiëren
- Sjablonen
- Zoeken en vervangen in Animate
- Ongedaan maken, Opnieuw en het deelvenster Historie
- Sneltoetsen
- De tijdlijn gebruiken in Animate
- HTML-extensies maken
- Optimalisatieopties voor afbeeldingen en geanimeerde GIF-bestanden
- Exportinstellingen voor afbeeldingen en GIF-bestanden
- Deelvenster Elementen in Animate
- Multimedia en video
- Grafische objecten transformeren en combineren in Animate
- Symboolinstanties maken in Animate en ermee werken
- Afbeeldingen overtrekken
- Geluid gebruiken in Adobe Animate
- SVG-bestanden exporteren
- Videobestanden maken voor gebruik in Animate
- Een video toevoegen in Animate
- Objecten tekenen en maken met Animate
- Lijnen en vormen omvormen
- Streken, verlopen en vullingen met Animate CC
- Werken met Adobe Premiere Pro en After Effects
- Deelvensters voor kleuren in Animate CC
- Flash CS6-bestanden openen met Animate
- Werken met klassieke tekst in Animate
- Illustraties opnemen in Animate
- Geïmporteerde bitmaps in Animate
- 3D-afbeeldingen
- Werken met symbolen in Animate
- Lijnen en vormen tekenen met Adobe Animate
- Werken met bibliotheken in Animate
- Geluiden exporteren
- Objecten selecteren in Animate CC
- Werken met Illustrator AI-bestanden in Animate
- Overvloeimodi toepassen
- Objecten rangschikken
- Taken automatiseren met het menu Opdrachten
- Meertalige tekst
- De camera gebruiken in Animate
- Grafische filters
- Geluid en ActionScript
- Tekenvoorkeuren
- Tekenen met de pen
- Platforms
- Animate-projecten converteren naar andere documentindelingen
- Ondersteuning voor aangepaste platforms
- HTML5 Canvas-documenten maken en publiceren in Animate
- Een WebGL-document maken en publiceren
- Toepassingen verpakken voor AIR voor iOS
- AIR voor Android-toepassingen publiceren
- Publiceren voor Adobe AIR voor desktop
- Publicatie-instellingen voor ActionScript
- Tips en trucs: ActionScript organiseren in een toepassing
- ActionScript gebruiken met Animate
- Toegankelijkheid in de Animate-werkruimte
- Scripts schrijven en beheren
- Ondersteuning voor aangepaste platforms inschakelen
- Overzicht van ondersteuning voor aangepaste platforms
- Werken met plug-in voor ondersteuning voor aangepaste platforms
- Foutopsporing in ActionScript 3.0
- Ondersteuning voor aangepaste platforms inschakelen
- Exporteren en publiceren
- Bestanden exporteren uit Animate CC
- OAM-publicatie
- SVG-bestanden exporteren
- Afbeeldingen en video's exporteren met Animate
- AS3-documenten publiceren
- Animaties exporteren voor mobiele apps en game-engines
- Geluiden exporteren
- Tips en trucs: Tips voor het maken van inhoud voor mobiele apparaten
- Tips en trucs: Videoconventies
- Tips en trucs: Richtlijnen voor het ontwerpen van SWF-toepassingen
- Tips en trucs: Structuur geven aan FLA-bestanden
- Beste werkwijzen voor het optimaliseren van FLA-bestanden voor Animate
- Publicatie-instellingen voor ActionScript
- Publicatie-instellingen opgeven voor Animate
- Projectorbestanden exporteren
- Afbeeldingen en geanimeerde GIF-bestanden exporteren
- HTML-publicatiesjablonen
- Werken met Adobe Premiere Pro en After Effects
- Snel uw animaties delen en publiceren
- Problemen oplossen
Animate-inhoud maken voor gebruik op mobiele apparaten
Als u Animate-inhoud voor mobiele apparaten wilt maken, dient u zich aan een aantal basisprincipes te houden. Animate-ontwikkelaars vermijden bijvoorbeeld vaak het gebruik van al te complexe illustraties en te veel tweening of transparantie.
Flash Lite-ontwikkelaars hebben met extra uitdagingen te maken, omdat de prestaties op verschillende mobiele apparaten sterk kunnen variëren. Als er inhoud naar veel verschillende apparaten moet worden gepubliceerd, moeten ontwikkelaars soms kiezen voor de kleinste gemene deler.
Voor het optimaliseren van mobiele inhoud moet u soms zaken tegen elkaar afwegen. Zo ziet inhoud er bijvoorbeeld beter uit als u de ene techniek gebruikt, terwijl de prestaties weer beter zijn als u een andere techniek gebruikt. Tijdens het maken van deze afwegingen zult u herhaaldelijk schakelen tussen de emulator en het doelapparaat om de inhoud te testen. U moet de inhoud op het daadwerkelijke apparaat bekijken om de ware kleuren, de leesbaarheid van de tekst, de fysieke interactie, de reactiesnelheid van de gebruikersinterface en de gebruikersvriendelijkheid goed te kunnen beoordelen.
De inhoud over Flash Lite is niet van toepassing op Flash CC en hogere versies.
Flash Lite-richtlijnen voor animaties op mobiele apparaten
Wanneer u inhoud met animaties maakt voor mobiele apparaten, moet u rekening houden met de beperkingen van de CPU. Als u deze richtlijnen volgt, voorkomt u dat Flash Lite-inhoud traag wordt weergegeven:
Wanneer u een nieuw Flash Lite-bestand maakt, moet u controleren of het document goed is ingesteld. Hoewel Animate-bestanden zonder problemen kunnen worden geschaald, kunnen de prestaties teruglopen als het bestand niet wordt uitgevoerd in zijn eigen formaat, maar in de speler moet worden geschaald. Probeer het formaat van het document in overeenstemming te brengen met de resolutie van het doelapparaat. U moet Flash Player ook instellen op de correcte versie van Flash Lite.
Flash Lite kan vectorillustraties renderen op lage, gemiddelde en hoge kwaliteit. Hoe hoger de kwaliteit van de rendering, hoe gemakkelijker en nauwkeuriger vectorillustraties in Flash Lite kunnen worden gerenderd en hoe meer er van de CPU van het apparaat wordt gevergd. Als u een complexe animatie wilt weergeven, moet u experimenteren met kwaliteitsinstelling van de speler en het SWF-bestand vervolgens grondig testen. U kunt de renderkwaliteit van een SWF-bestand bepalen met de eigenschap _quality of de opdracht SetQuality. Geldige waarden voor de eigenschap _quality zijn LOW, MEDIUM en HIGH.
Beperk het aantal gelijktijdige tweens. Verminder het aantal tweens of plaats animaties achter elkaar, zodat de ene animatie begint zodra de voorgaande is beëindigd.
Maak spaarzaam gebruik van transparantie-effecten (alfa) voor symbolen omdat deze effecten veel van de CPU vergen. Vermijd met name tweening-symbolen met alfaniveaus die niet volledig ondoorzichtig zijn (minder dan 100%).
Gebruik geen visuele effecten die de CPU zwaar belasten, zoals grote maskers, uitgebreide bewegingen, alfaovervloeiing, uitgebreide kleurverlopen en complexe vectoren.
Experimenteer met combinaties van tweens, keyframe-animaties en ActionScript-bewegingen voor de meest efficiënte resultaten.
Het renderen van vector-ovalen en -cirkels vergt veel meer van het geheugen dan het renderen van vierhoeken. Ook het toepassen van ronde en ovale penseelstreken vergt veel van de CPU.
Test animaties geregeld op de doelapparaten waarvoor ze bestemd zijn.
Wanneer u een gebied met animaties tekent in Animate, wordt er een rechthoekig selectiekader rond het gebied gedefinieerd. Optimaliseer de tekening door die rechthoek zo klein mogelijk te maken. Gebruik geen tweens die elkaar overlappen, want het samengevoegde gebied wordt door Animate geïnterpreteerd als één rechthoek, hetgeen resulteert in een groter totaalgebied. Gebruik de functie Opnieuw te tekenen gebieden weergeven van Animate om de animatie te optimaliseren.
Maak geen gebruik van _alpha = 0 en _visible = false om filmclips op het scherm te verbergen. Als u de zichtbaarheid van een filmclip eenvoudig uitschakelt of de alfa van de clip wijzigt in nul, wordt de clip nog steeds opgenomen in berekeningen voor het renderen van lijnen, wat van nadelige invloed kan zijn op de prestaties.
Probeer een filmclip ook niet te verbergen door er een illustratie of iets dergelijks boven op te plaatsen. De clip wordt ook in dat geval in de berekeningen van de speler opgenomen. Verwijder filmclips in plaats daarvan volledig van de Stage of verwijder ze door removeMovieClip aan te roepen.
Bitmap- en vectorafbeeldingen van Flash Lite in mobiele apparaten
In Flash Lite kunnen zowel vector- als bitmapafbeeldingen worden gerenderd. Elk type afbeelding heeft zijn voor- en nadelen. Of u vector- of bitmapafbeeldingen moet gebruiken is niet altijd duidelijk en hangt vaak af van meerdere factoren.
Vectorafbeeldingen worden in een compacte vorm in SWF-bestanden opgenomen als wiskundige vergelijkingen en worden tijdens runtime gerenderd door de Flash Lite-speler. In tegenstelling tot vectorafbeeldingen worden bitmapafbeeldingen opgenomen als reeksen afbeeldingselementen (pixels). Dit vereist meer bytes aan gegevens. Als u dus vectorafbeeldingen in een bestand gebruikt, kunt u de grootte van het bestand en het geheugengebruik beperken.
Vectorafbeeldingen behouden ook hun vloeiende vormen wanneer ze groter of kleiner worden gemaakt. Als bitmapafbeeldingen groter of kleiner worden gemaakt, worden vloeiende lijnen mogelijk hoekig weergegeven of worden de afzonderlijke pixels zichtbaar.
Vergeleken met bitmapafbeeldingen vergen vectorafbeeldingen meer verwerkingscapaciteit voor het renderen. Dit geldt met name voor vectorafbeeldingen met veel complexe vormen en vullingen. Het gebruik van veel vectorvormen kan er daarom toe leiden dat het hele bestand langzamer wordt weergegeven. Omdat voor het renderen van bitmapafbeeldingen minder verwerkingstijd nodig is dan voor het renderen van vectorafbeeldingen, zijn bitmapafbeeldingen voor bepaalde bestanden een betere keus, bijvoorbeeld voor een complexe plattegrond waarop animaties te zien zijn en waarmee moet worden geschoven op een mobiele telefoon.
Houd het volgende in uw achterhoofd:
Gebruik geen omtrekken voor vectorvormen. Omtrekken hebben een binnen- en een buitenrand (vullingen hebben slechts één rand) en er is twee keer zoveel verwerkingstijd nodig om deze omtrekken te renderen.
Hoeken zijn eenvoudiger te renderen dan curven. Gebruik, indien mogelijk, platte randen, met name bij zeer kleine vectorvormen.
Optimalisatie is vooral nuttig voor kleine vectorvormen, zoals pictogrammen. Bij het renderen van complexe pictogrammen gaan mogelijk details verloren en is al het werk dat het kost om de details te renderen voor niets geweest.
Gebruik daar waar mogelijk bitmapafbeeldingen voor kleine, complexe afbeeldingen, zoals pictogrammen, en gebruik vectorafbeeldingen voor grotere, eenvoudige afbeeldingen.
Importeer bitmapafbeeldingen met de juiste grootte. Importeer geen grote afbeeldingen om deze vervolgens kleiner te maken in Animate, omdat hierdoor de bestanden groter worden en er een groter beroep wordt gedaan op het runtimegeheugen.
In de Flash Lite-speler kunt u bitmapafbeeldingen niet vloeiender maken. Als een bitmapafbeelding wordt geschaald of geroteerd, wordt de afbeelding hoekig of lijkt deze ineens uit blokjes te zijn opgebouwd. Als een afbeelding moet worden geschaald of geroteerd, kunt u in plaats van een bitmapafbeelding beter een vectorafbeelding gebruiken.
Tekst is in wezen een zeer complexe vectorvorm. Natuurlijk is tekst vaak van essentieel belang en kan tekst slechts zelden volledig worden weggelaten. Wanneer er tekst nodig is, moet u die tekst niet van animaties voorzien of boven op een animatie plaatsen. Overweeg om tekst in de vorm van een bitmapafbeelding te gebruiken. Voor dynamische tekst en invoertekst van meerdere regels wordt het regeleinde van de tekstreeks niet in de cache opgeslagen. In Animate worden regels tijdens de runtime afgebroken. Ook worden de regeleinden telkens opnieuw berekend wanneer het tekstveld opnieuw moet worden getekend. Statische tekst levert geen problemen op omdat het afbreken van de regels vooraf tijdens het compileren wordt berekend. Voor dynamische inhoud is het gebruik van dynamische tekstvelden onontkoombaar, maar gebruik, als dat maar enigszins mogelijk is, liever statische tekstvelden dan dynamische tekstvelden.
Maak zo min mogelijk gebruik van transparantie in PNG-bestanden. Bij het opnieuw tekenen moet Animate zelfs de transparante delen van de bitmapafbeelding berekenen. Met een transparant PNG-bestand dat een voorgrondelement voorstelt, moet u bijvoorbeeld niet het transparante PNG-bestand exporteren met de volledige schermgrootte. Exporteer het PNG-bestand in plaats daarvan met de daadwerkelijke grootte van het voorgrondelement.
Probeer de bitmaplagen en de vectorlagen afzonderlijk te groeperen. Animate moet verschillende renderers voor bitmap- en vectorinhoud implementeren en het overschakelen van de ene renderer naar de andere kost tijd.
De compressie van Flash Lite-bitmaps voor mobiele apparaten instellen
Wanneer u bitmaps gebruikt, kunt u opties voor het comprimeren van de afbeelding instellen (voor één bitmapafbeelding of voor alle bitmapafbeeldingen) om de grootte van het SWF-bestand te beperken.
Compressie-opties voor een afzonderlijk bitmapbestand instellen
-
-
Selecteer een bitmap in het venster Library.
-
Klik met de rechtermuisknop (Windows) of klik terwijl u Control ingedrukt houdt (Macintosh) op het bitmappictogram in het venster Library en selecteer Properties in het snelmenu om het dialoogvenster Bitmap Properties te openen.
-
Selecteer in het pop-upmenu Compression een van de volgende opties:
Selecteer de optie Photo (JPEG) voor afbeeldingen met complexe variaties in kleur of toon, zoals foto's of afbeeldingen met verloopvullingen. Deze optie resulteert in een JPEG-bestand. Schakel het selectievakje Use Imported JPEG Data in om de standaardinstelling voor compressiekwaliteit te gebruiken die voor de geïmporteerde afbeelding is opgegeven. Als u een nieuwe instelling voor de compressiekwaliteit wilt instellen, schakelt u het selectievakje Use Imported JPEG Data uit en voert u in het tekstvak Quality een waarde in tussen 1 en 100. Als u een hogere waarde instelt, resulteert dat in een afbeelding van een hogere kwaliteit, maar ook in een groter bestand. Houd hier rekening mee als u de waarde aanpast.
Selecteer de optie voor compressie zonder kwaliteitsverlies (PNG/GIF) voor afbeeldingen met eenvoudige vormen en slechts enkele kleuren. Met deze optie comprimeert u de afbeelding zonder dat er gegevens verloren gaan.
-
Klik op Test om na te gaan wat de resultaten van de bestandscompressie zijn.
Vergelijk de oorspronkelijke bestandsgrootte met de grootte van het gecomprimeerde bestand om te bepalen of de geselecteerde compressie-instelling aanvaardbaar is.
Compressie voor alle bitmapafbeeldingen instellen
-
Selecteer File > Publish Settings en klik vervolgens op het tabblad Flash om de compressie-opties weer te geven.
-
Verschuif de schuifregelaar voor JPEG-kwaliteit of voer een waarde in. Een hogere waarde voor JPEG-kwaliteit leidt tot een afbeelding van hogere kwaliteit, maar ook tot een groter SWF-bestand. Een lagere waarde voor de kwaliteit van de afbeelding, leidt tot een kleiner SWF-bestand. Probeer verschillende instellingen om het gunstigste evenwicht tussen kwaliteit en grootte te bepalen.
Flash Lite-frames optimaliseren voor mobiele apparaten
Op de meeste apparaten die Flash Lite ondersteunen, wordt inhoud afgespeeld met een snelheid van ongeveer 15 tot 20 frames per seconde (fps). De framesnelheid kan in bepaalde gevallen slechts 6 fps bedragen. Tijdens de ontwikkeling van Flash Lite-inhoud kunt u de framesnelheid van het document instellen op ongeveer de afspeelsnelheid van het doelapparaat. Zo kunt u zien hoe de inhoud zal worden afgespeeld op een minder snel apparaat. Voordat u een definitief SWF-bestand publiceert, stelt u de framesnelheid van het document in op ten minste 20 fps of meer om te voorkomen dat het document te langzaam wordt afgespeeld op een apparaat dat een hogere framesnelheid ondersteunt.
Wanneer u gotoAndPlay gebruikt, moet u niet vergeten dat elk frame tussen het huidige frame en het frame dat u opvraagt, moet worden geïnitialiseerd voordat het gevraagde frame door Animate kan worden afgespeeld. Als veel van deze frames ook nog eens inhoud bevatten die erg verschilt van de inhoud van de andere frames, kan het efficiënter zijn om in plaats van de tijdlijn, verschillende filmclips te gebruiken.
Voor bestanden die op een desktopcomputer worden afgespeeld is het verstandig om alle inhoud aan het begin van het bestand te plaatsen, zodat deze vooraf wordt geladen. Maar als u op een mobiel apparaat de inhoud vooraf laadt, kan dat tot gevolg hebben dat er een vertraging optreedt bij het starten van het bestand. Het is beter om de inhoud over het hele bestand te verspreiden, zodat de filmclips pas worden geïnitialiseerd op het moment dat deze worden gebruikt.
ActionScript optimaliseren voor Flash Lite-inhoud op mobiele apparaten
De meeste mobiele apparaten hebben slechts een beperkte verwerkingssnelheid en een beperkte hoeveelheid beschikbaar geheugen. Volg daarom deze richtlijnen bij het ontwikkelen van ActionScript for Flash Lite-inhoud die bestemd is voor mobiele apparaten:
Houd het bestand en de code ervan zo eenvoudig mogelijk. Verwijder filmclips die u niet gebruikt, verwijder overbodige frame- en codelussen en gebruik vooral niet te veel frames of externe frames.
Het gebruik van FOR-lussen kan ook sterk vertragend werken, omdat het controleren van de voorwaarde bij elke iteratie veel tijd kost. Als het gebruik van iteraties en lussen te veel tijd gaat kosten, kunt u beter meerdere bewerkingen afzonderlijk uitvoeren in plaats van lus te gebruiken. De code is in dat geval misschien langer, maar de inhoud wordt wel sneller en beter afgespeeld.
Stop een lusbewerking voor frames zodra deze niet meer nodig is.
Probeer verwerking van tekenreeksen en matrices zoveel mogelijk te voorkomen, want daarmee wordt de CPU zwaar belast.
Probeer altijd rechtstreeks toegang te krijgen tot eigenschappen; gebruik liever geen ActionScript-methoden voor het ophalen en instellen van eigenschappen, omdat deze meer tijd kosten dan andere methodeaanroepen.
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. Wanneer een filmclip uit het geheugen wordt verwijderd, haalt Animate de SWF-gegevens (bijvoorbeeld van intervallen en listeners) niet opnieuw uit het geheugen op als er nog steeds ActionScript-functies zijn die naar de SWF-gegevens verwijzen.
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.
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 object aanwezig zijn.
De volgende twee codevoorbeelden laten zien hoe u geheugen dat door objecten wordt gebruikt, kunt vrijmaken door de variabele die naar deze objecten verwijst, te verwijderen. De voorbeelden zijn identiek, met dit verschil dat met het eerste voorbeeld een tijdlijnvariabele wordt gemaakt en met het tweede een globale variabele.
// Eerste scenario: variabele gekoppeld aan een film of // tijdlijn van filmclip // // Het object Date maken. var mcDateObject = new Date(); // Retourneert de huidige datum als een tekenreeks. trace(mcDateObject); // Het object verwijderen. delete mcDateObject; // Retourneert niet-gedefinieerd. trace(mcDateObject); // // Tweede scenario: algemene variabele gekoppeld aan een film of // tijdlijn van filmclip // // Het object Date maken. _global.gDateObject = new Date(); // Retourneert de huidige datum als een tekenreeks. trace(_global.gDateObject); // Het object verwijderen. delete _global.gDateObject; // Retourneert niet-gedefinieerd. trace(_global.gDateObject);
U kunt, zoals al eerder is aangegeven, de instructie delete niet gebruiken om geheugen vrij te maken dat door een lokale functievariabele wordt gebruikt. In plaats daarvan kunt u de variabeleverwijzing op null instellen, waarmee u hetzelfde bereikt als met de instructie delete.
functie func() { // Het object Date maken. var funcDateObject = new Date(); // Retourneert de huidige datum als een tekenreeks. trace(funcDateObject); // Verwijderen heeft geen effect. delete funcDateObject; // Retourneert nog steeds de huidige datum. trace(funcDateObject); // De objectverwijzing op null instellen. funcDateObject = null; // Retourneert null. trace(funcDateObject); } // Functie func () aanroepen. func ();
Gegevens laden voor mobiele apparaten in Flash Lite
Wanneer u bestanden voor mobiele apparaten ontwikkelt, moet u de hoeveelheid gegevens die u in één keer probeert te laden, minimaliseren. Als u externe gegevens in een Flash Lite-bestand laadt (bijvoorbeeld met XML.load), genereert het besturingssysteem van het apparaat mogelijk een geheugenfout als er onvoldoende geheugenruimte is toegewezen aan binnenkomende gegevens. Deze situatie kan zich zelfs voordoen als de totale hoeveelheid resterend geheugen toereikend is.
Stel dat een bestand een XML-bestand probeert te laden van 100 kB, maar dat in het besturingssysteem van het apparaat slechts 30 kB is toegewezen aan het verwerken van de binnenkomende gegevensstroom. In dat geval wordt er in Flash Lite een foutbericht weergegeven voor de gebruiker met de melding dat er onvoldoende geheugen beschikbaar is.
Als er grote hoeveelheden gegevens moeten worden geladen, moeten deze gegevens worden gegroepeerd in meerdere kleine pakketjes, bijvoorbeeld in meerdere XML-bestanden, en moeten er meerdere aanroepen voor het laden van gegevens voor deze pakketjes worden gemaakt. De grootte van elk gegevenspakketje, en daarmee het aantal aanroepen voor het laden van gegevens die u moet maken, kan per apparaat en bestand verschillen. Om de juiste balans te vinden tussen het aantal gegevensaanvragen en de kans dat er een geheugenfout optreedt, kunt u de bestanden het beste testen op allerlei verschillende doelapparaten.
Probeer voor optimale prestaties, het laden en parseren van XML-bestanden zoveel mogelijk te voorkomen. Sla in plaats daarvan gegevens op in eenvoudige naam/waarde-paren en laad de gegevens vanuit een tekstbestand met loadVars of vanuit vooraf gecompileerde SWF-bestanden.
Klassen uitsluiten van compilatie voor Flash Lite
U kunt om de grootte van een SWF-bestand te beperken, klassen uitsluiten van compilatie, maar daarbij de mogelijkheid behouden om deze klassen te gebruiken voor typecontrole. Probeer dit bijvoorbeeld als u een bestand ontwikkelt dat gebruik maakt van meerdere SWF-bestanden of gedeelde bibliotheken, en vooral als deze bestanden en bibliotheken veelal dezelfde klassen gebruiken. Door klassen uit te sluiten kunt u gemakkelijker voorkomen dat er dubbele klassen in deze bestanden worden gebruikt.
-
Maak een nieuw XML-bestand.
-
Geef het XML-bestand de naam FLA_bestandsnaam_exclude.xml, waarbij 'FLA_bestandsnaam' de naam van het FLA-bestand is zonder de extensie .fla. Als de naam van het FLA-bestand 'aandelenverkoop.fla' is, moet de XML-bestandsnaam 'aandelenverkoop_exclude.xml' zijn.
-
Sla het bestand op in dezelfde map als het FLA-bestand.
-
Plaats de volgende tags in het XML-bestand:
<excludeAssets> <asset name=”className1” /> <asset name=”className2” /> </excludeAssets>
De waarden die voor de naamkenmerken in de <asset>-tags zijn opgegeven, zijn namen van klassen die niet in het SWF-bestand moeten worden opgenomen. Voeg zo veel tags toe als nodig is voor het bestand. Met het volgende XML-bestand kunt u er bijvoorbeeld voor zorgen dat de klassen mx.core.UIObject en mx.screens.Slide niet in het SWF-bestand worden opgenomen:
<excludeAssets> <asset name=”mx.core.UIObject” /> <asset name=”mx.screens.Slide” /> </excludeAssets>