Spusťte aplikaci Animate a vytvořte dokument.
- Příručka uživatele aplikace Adobe Animate
- Úvod do aplikace Animate
- Animace
- Základy animování v aplikaci Animate
- Používání snímků a klíčových snímků v aplikaci Animate
- Animace po jednotlivých snímcích v aplikaci Animate
- Práce s animacemi klasických doplnění v aplikaci Animate
- Nástroj Štětec
- Vodítko pohybu
- Doplnění pohybu a ActionScript 3.0
- O animacích s doplněními pohybu
- Animace s doplněním pohybu
- Vytvoření animace s doplněním pohybu
- Používání klíčových snímků vlastností
- Animování polohy pomocí doplnění
- Úpravy doplnění pohybu v editoru pohybu
- Úpravy cesty pohybu u animace s doplněním
- Úpravy doplnění pohybu
- Přidání vlastního náběhu nebo doběhu
- Vytváření a aplikování přednastavení pohybu
- Nastavení rozsahu doplnění animace
- Práce s doplněními pohybu uloženými jako soubory XML
- Srovnání doplnění pohybu a klasických doplnění
- Doplňování tvarů
- Používání animací nástroje Kost v aplikaci Animate
- Sestavování postav v aplikaci Animate
- Používání vrstev masek v aplikaci Adobe Animate
- Práce se scénami v aplikaci Animate
- Interaktivita
- Vytváření tlačítek v aplikaci Animate
- Převod projektů aplikace Animate na jiné typy dokumentů
- Vytváření a publikování dokumentů HTML5 Canvas v aplikaci Animate
- Přidání interaktivity pomocí fragmentů kódu v aplikaci Animate
- Vytváření vlastních komponent HTML5
- Používání komponent v dokumentech HTML5 Canvas
- Vytváření vlastních komponent: Příklady
- Fragmenty kódu pro vlastní komponenty
- Osvědčené postupy – Tvorba reklam v aplikaci Animate
- Vytváření a publikování virtuální reality
- Pracovní plocha a pracovní postupy
- Vytváření a správa malířských štětců
- Používání písem Google v dokumentech HTML5 Canvas
- Používání knihoven Creative Cloud v aplikaci Adobe Animate
- Používání vymezené plochy a panelu nástrojů v aplikaci Animate
- Pracovní postupy a pracovní plocha aplikace Animate
- Používání webových písem v dokumentech HTML5 Canvas
- Časové osy a ActionScript
- Práce s více časovými osami
- Nastavení předvoleb
- Používání vývojových panelů aplikace Animate
- Vytváření vrstev časové osy v aplikaci Animate
- Export animací pro mobilní aplikace a herní moduly
- Přemísťování a kopírování objektů
- Předlohy
- Příkaz Hledat a nahradit v aplikaci Animate
- Vrácení akce, její zopakování a panel Historie
- Klávesové zkratky
- Používání časové osy v aplikaci Animate
- Vytvoření rozšíření HTML
- Možnosti optimalizace obrázků a animovaných souborů GIF
- Export nastavení pro obrázky a soubory GIF
- Panel Datové zdroje v aplikaci Animate
- Multimédia a video
- Transformace a kombinování grafických objektů v aplikaci Animate
- Vytváření a práce s instancemi symbolů v aplikaci Animate
- Vektorizace obrazu
- Používání zvuku v aplikaci Adobe Animate
- Export souborů SVG
- Vytváření souborů videa používaných v aplikaci Animate
- Přidání videa v aplikaci Animate
- Kreslení a vytváření objektů v aplikaci Animate
- Změna čar a tvarů
- Tahy, výplně a přechody v aplikaci Animate
- Práce s aplikacemi Adobe Premiere Pro a After Effects
- Panely barev v aplikaci Animate
- Otevírání souborů aplikace Flash CS6 v aplikaci Animate
- Práce s klasickým textem v aplikaci Animate
- Vložení grafiky do aplikace Animate
- Importované bitmapy v aplikaci Animate
- 3D grafika
- Práce se symboly v aplikaci Animate
- Kreslení čar a tvarů v aplikaci Adobe Animate
- Práce s knihovnami v aplikaci Animate
- Export zvuků
- Výběr objektů v aplikaci Animate
- Práce se soubory aplikace Illustrator (AI) v aplikaci Animate
- Používání režimů prolnutí
- Uspořádání objektů
- Automatizace úloh pomocí nabídky Příkazy
- Vícejazyčný text
- Používání kamery v aplikaci Animate
- Grafické filtry
- Zvuk a ActionScript
- Předvolby kreslení
- Kreslení nástrojem Pero
- Platformy
- Převod projektů aplikace Animate na jiné typy dokumentů
- Podpora vlastní platformy
- Vytváření a publikování dokumentů HTML5 Canvas v aplikaci Animate
- Vytvoření a publikování dokumentu ve formátu WebGL
- Balení aplikací pro prostředí AIR for iOS
- Publikování aplikací prostředí AIR for Android
- Publikování pro prostředí Adobe AIR pro počítače
- Nastavení publikování jazyka ActionScript
- Osvědčené postupy – Uspořádání ActionScriptu v aplikaci
- Používání jazyka ActionScript v aplikaci Animate
- Usnadnění přístupu v pracovním prostoru aplikace Animate
- Psaní a správa skriptů
- Povolení podpory vlastních platforem
- Přehled podpory vlastních platforem
- Práce se zásuvným modulem pro podporu vlastní platformy
- Ladění jazyka ActionScript 3.0
- Povolení podpory vlastních platforem
- Export a publikování
- Export souborů z aplikace Animate
- Publikování OAM
- Export souborů SVG
- Export grafiky a videa v aplikaci Animate
- Publikování dokumentů AS3
- Export animací pro mobilní aplikace a herní moduly
- Export zvuků
- Osvědčené postupy – Tipy pro vytváření obsahu pro mobilní zařízení
- Osvědčené postupy – Konvence videa
- Osvědčené postupy – Pravidla pro vývoj aplikací SWF
- Osvědčené postupy – Strukturování souborů FLA
- Osvědčené postupy pro optimalizaci souborů FLA pro Animate
- Nastavení publikování jazyka ActionScript
- Nastavení publikování v aplikaci Animate
- Export souborů projektoru
- Export obrázků a animovaných souborů GIF
- Předlohy publikování HTML
- Práce s aplikacemi Adobe Premiere Pro a After Effects
- Rychlé sdílení a publikování animací
- Řešení problémů
Vytváření obsahu v aplikaci Animate pro použití na mobilních zařízení
Chcete-li v aplikaci Animate vytvářet obsah pro mobilní zařízení, dodržujte několik základních principů. Například vývojáři, kteří pracují v aplikaci Animate, se často snaží vyhnout příliš složitým kresbám a nadměrnému používání funkcí doplnění pohybu a průhlednosti.
Vývojáři v aplikaci Flash Lite musí řešit další problémy, protože výkonnost různých mobilních zařízení se podstatně liší. Pokud je nutné vydat obsah pro více různých zařízení, vývojáři někdy musí aplikace uzpůsobit podle nejnižšího společného jmenovatele.
Optimalizace obsahu pro mobilní zařízení vyžaduje kompromisy. Jedna technika může například zajistit lepší vzhled obsahu, zatímco jiná povede k lepšímu výkonu. Při vyhodnocování těchto kompromisů budete opakovaně přecházet mezi testováním v emulátoru a testováním na cílovém zařízení. Obsah je třeba vidět na skutečném zařízení, aby bylo možné vyhodnotit věrnost barev, čitelnost textu, reálné interakce, odezvu uživatelského rozhraní a další aspekty reálné zkušenosti s mobilním zařízením.
Obsah týkající se aplikace Flash Lite nelze použít pro aplikaci Flash CC a vyšší verze.
Pravidla Flash Lite pro animace na mobilních zařízeních
Při vytváření animovaného obsahu pro mobilní zařízení mějte vždy na paměti omezení daná procesorem mobilního zařízení. Dodržováním následujících pravidel můžete předejít pomalému přehrávání obsahu Flash Lite:
Při vytváření nového souboru Flash Lite zkontrolujte, že je dokument správně nastaven. Přestože velikost souborů Animate lze plynule měnit, může dojít k omezení výkonu, pokud soubor nebude spuštěn s původní velikostí plochy a přehrávač bude muset změnit jeho velikost. Pokuste se nastavit velikost plochy dokumentu tak, aby odpovídala rozlišení cílového zařízení. Nastavte také přehrávač Flash Player na správnou verzi prostředí Flash Lite.
Aplikace Flash Lite může vykreslovat vektorové grafiky v nízké, střední a vysoké kvalitě. Čím vyšší je kvalita vykreslování, tím plynuleji a přesněji bude Flash Lite vykreslovat vektorové grafiky a tím vyšší budou požadavky na procesor zařízení. Chcete-li vytvořit složitou animaci, experimentujte s nastavením kvality v přehrávači a pak soubor SWF důkladně otestujte. Chcete-li nastavit kvalitu vykreslování souboru SWF, použijte vlastnost_quality nebo příkaz SetQuality. Platné hodnoty pro vlastnost _quality jsou LOW, MEDIUM a HIGH.
Omezte počet souběžných animací s doplněním pohybu. Omezte počet animací s doplněním pohybu nebo nastavte animace za sebou tak, aby jedna začínala, když druhá končí.
Omezte používání efektů průhlednosti (alfa) pro symboly, protože jsou náročné na výkon procesoru. Zejména se vyhněte doplnění pohybu symbolů s úrovněmi alfa, které nejsou zcela neprůhledné (méně než 100 %).
Vyhněte se vizuálním efektům náročným na výkon procesoru, jako jsou velké masky, rozsáhlý pohyb, prolnutí alfa, široké přechody a složité vektory.
Snažte se dosáhnout co nejefektivnějších výsledků experimentováním s kombinacemi doplnění pohybu, animací s klíčovými snímky a pohybů řízených pomocí skriptu jazyka ActionScript.
Vykreslování vektorových elips a kruhů je paměťově mnohem náročnější, než vykreslování čtyřúhelníků. Používání zaoblených a elipsovitých tahů také podstatně zvyšuje využití procesoru.
Často testujte animace na skutečných koncových zařízeních.
Když aplikace Animate vykresluje oblast s animací, definuje kolem ní obdélníkový ohraničovací rámeček. Optimalizujte vykreslování tím, že bude tento obdélník co nejmenší. Vyhněte se překrývání doplnění pohybu, protože Animate interpretuje takto sloučené plochy jako jeden obdélník a tím vznikne větší celková oblast. K optimalizaci animace v aplikaci Animate použijte funkci Zobrazit překreslované oblasti.
Nepoužívejte parametry _alpha = 0 a _visible = false pro skrytí filmových klipů na obrazovce. Pokud jednoduše vypnete viditelnost filmového klipu nebo změníte jeho hodnotu alfa na nulu, bude klip i nadále zahrnut ve výpočtech vykreslení, což může mít vliv na výkon.
Podobně se nepokoušejte skrýt filmový klip jeho umístěním za jinou část kresby. Byl by přesto zahrnutý do výpočtů v přehrávači. Místo toho přesuňte filmové klipy zcela mimo plochu nebo je odstraňte voláním funkce removeMovieClip.
Bitmapové a vektorové grafiky Flash Lite v mobilních zařízeních
Aplikace Flash Lite umí vykreslovat vektorové i bitmapové grafiky. Každý typ grafiky má své výhody i nevýhody. Důvody pro použití vektorové grafiky místo bitmapové nejsou vždy jednoznačné a rozhodnutí často závisí na více faktorech.
Vektorové grafiky jsou v souborech SWF kompaktně vyjádřené v podobě matematických rovnic a vykreslují se za běhu v přehrávači Flash Lite. Bitmapové grafiky jsou naproti tomu vyjádřené jako pole obrazových prvků (obrazových bodů), která vyžadují více bytů dat. Proto použití vektorových grafik v souboru může pomoci zmenšit velikost souboru a využití paměti.
Vektorové grafiky si také při změně velikosti zachovají plynulé tvary. Bitmapové obrazy se mohou při změně velikosti zobrazovat hrubě čtverečkované nebo rozdělené na jednotlivé obrazové body.
Ve srovnání s bitmapami vyžadují vektorové grafiky větší výkon při vykreslování, obzvláště pokud obsahují mnoho složitých tvarů a výplní. V důsledku toho může široké využití vektorových tvarů někdy snížit celkový výkon pro soubor. Protože bitmapové grafiky nevyžadují tolik času na vykreslení jako vektorové grafiky, představují pro některé soubory lepší volbu. Příkladem může být složitá automapa, která se bude animovat a posouvat na displeji mobilního telefonu.
Mějte na paměti následující pravidla:
Nepoužívejte obrysy u vektorových tvarů. Obrysy mají vnitřní a vnější okraj (výplně mají pouze jeden) a jejich vykreslení vyžaduje dvojnásobek výkonu.
Vykreslování rohů je jednodušší než vykreslování křivek. Pokud to je možné, používejte rovné okraje, zejména pro velmi malé vektorové tvary.
Optimalizace je obzvláště užitečná v případě malých vektorových tvarů, například ikon. Složité ikony mohou po vykreslení ztratit detaily a výkon vynaložený na vykreslení detailů je zbytečně ztracen.
Obecně platí, že bitmapy jsou vhodné pro malé, složité obrazy (například pro ikony) a vektorové grafiky pro větší a jednodušší obrazy.
Importujte bitmapové grafiky ve správné velikosti; neimportujte velké grafiky a nezmenšujte je v aplikaci Animate, protože byste zbytečně zvětšovali velikost souboru a nároky na paměť za běhu.
Přehrávač Flash Lite nepodporuje vyhlazování bitmap. Po změně velikosti nebo otočení bitmapy může mít bitmapa hrubý vzhled. Pokud je změna velikosti nebo otočení grafiky nezbytné, zvažte místo toho použití vektorové grafiky.
Text je v podstatě velmi složitý vektorový tvar. Text je samozřejmě často tím nejdůležitějším, takže se mu lze jen málokdy zcela vyhnout. Když je zapotřebí text, neanimujte ho ani ho neumísťujte přes animaci. Zvažte použití textu ve tvaru bitmapy. Pro víceřádkový dynamický a vstupní text se zalomení řádku textového řetězce neukládá do vyrovnávací paměti. Animate zalamuje řádky za běhu a přepočítává tato zalomení vždy, když je nutné textové pole překreslit. Statická textová pole nejsou problematická, protože zalomení řádku se předem vypočítá v době kompilace. Pro dynamický obsah je použití dynamických textových polí nevyhnutelné, ale pokud to je možné, zvažte místo toho použití statických textových polí.
Minimalizujte používání průhlednosti v souborech PNG; Animate musí vypočítat překreslení i pro průhledné části bitmapy. Například průhledný soubor PNG, představující element popředí, neexportujte jako průhledný PNG v plné velikosti obrazovky. Místo toho ho exportujte ve skutečné velikosti elementu popředí.
Pokuste se seskupit zvlášť vrstvy bitmap a zvlášť vrstvy vektorů. Animate musí použít odlišné vykreslovače pro bitmapový a vektorový obsah a přepínání mezi vykreslovači vyžaduje čas.
Nastavení komprese bitmap Flash Lite pro mobilní zařízení
Při používání bitmap můžete nastavit volby komprese obrazu (pro jednotlivé obrazy nebo globálně pro všechny bitmapové obrazy), které zmenšují velikost souboru SWF.
Nastavení voleb komprese pro jednotlivé bitmapové soubory
-
-
Vyberte bitmapu v okně Knihovna.
-
Klikněte pravým tlačítkem (Windows) nebo se stisknutou klávesou Ctrl (Macintosh) na ikonu bitmapy v okně Knihovna, z kontextové nabídky vyberte Vlastnosti a tím otevřete dialogové okno Vlastnosti bitmapy.
-
V rozbalovací nabídce Komprese vyberte jednu z následujících voleb:
Vyberte volbu Fotografie (JPEG) pro obrazy se složitými gradacemi barev nebo tónů, jako jsou fotografie nebo obrazy s výplněmi používajícími přechody. Tato volba vytvoří soubor JPEG. Pokud chcete použít výchozí kvalitu komprese, určenou pro importovaný obraz, zaškrtněte pole Použít importovaná data JPEG. Chcete-li určit nové nastavení kvality komprese, zrušte zaškrtnutí pole Použít importovaná data JPEG a do textového pole Kvalita zadejte hodnotu mezi 1 a 100. Vyšší nastavení vytvoří obraz s vyšší kvalitou, ale také větší soubor, takže hodnotu nastavte podle potřeby.
Vyberte volbu Bezeztrátová (PNG/GIF) pro obrazy s jednoduchými tvary a s málo barvami. Tato možnost komprimuje obraz pomocí bezeztrátové komprese, která nezpůsobuje ztrátu dat.
-
Klikněte na Testovat, pokud chcete posoudit výsledky komprese souboru.
Porovnejte velikost původního souboru s velikostí komprimovaného souboru a rozhodněte se, zda je vybrané nastavení komprese přijatelné.
Nastavení komprese pro všechny bitmapové obrazy
-
Vyberte Soubor > Nastavení publikování a pak kliknutím na záložku Flash zobrazte volby komprese.
-
Nastavte posuvníkem kvalitu obrazu JPEG nebo zadejte hodnotu. Vyšší hodnota kvality JPEG vytvoří obraz s vyšší kvalitou, ale také větší soubor SWF. Nižší kvalita obrazu vytvoří menší soubor SWF. Zkuste různá nastavení a určete nejvýhodnější kompromis mezi velikostí a kvalitou.
Optimalizace snímků Flash Lite pro mobilní zařízení
Většina zařízení podporujících formát Flash Lite přehrává obsah rychlostí asi 15 až 20 snímků za sekundu (fps). Kmitočet snímků může být i pouze 6 fps. Během vývoje nastavte počet snímků za sekundu dokumentu na přibližnou rychlost přehrávání cílového zařízení. Zjistíte tak, jak se bude obsah přehrávat na zařízení s omezeným výkonem. Před publikováním finálního souboru SWF nastavte kmitočet snímků dokumentu alespoň na 20 fps nebo vyšší, abyste zabránili omezení výkonu v případě, že zařízení podporuje i vyšší počet snímků za sekundu.
Při použití funkce gotoAndPlay si uvědomte, že každý snímek mezi stávajícím a požadovaným snímkem se musí inicializovat předtím, než Animate přehraje požadovaný snímek. Pokud mnoho těchto snímků obsahuje odlišný obsah, může být efektivnější použít různé filmové klipy místo použití časové osy.
Přestože na stolních počítačích má smysl předběžné načtení celého obsahu pomocí jeho uložení na začátek souboru, u mobilních zařízení může předběžné načtení zpozdit spuštění souboru. Obsah rozmístěte v souboru tak, aby se filmové klipy inicializovaly až když se použijí.
Optimalizace ActionScriptu pro obsah Flash Lite na mobilních zařízeních
Vzhledem k omezené rychlosti zpracování a omezené paměti většiny mobilních zařízení dodržujte při vývoji ActionScriptu pro obsah Flash Lite používaný v mobilních zařízeních následující pravidla:
Udržujte soubor a jeho kód co nejjednodušší. Odstraňte nepoužívané filmové klipy, zbytečné snímky a cykly kódu a vyhněte se příliš vysokému počtu snímků nebo nepotřebným snímkům.
Použití cyklů FOR může být náročné na výkon, protože se podmínka kontroluje při každém opakování. Když jsou nároky na iteraci a na režii cyklu srovnatelné, provádějte vícenásobné operace jednotlivě namísto použití cyklu. Kód může být sice delší, ale výkon se zlepší.
Jakmile není opakování založené na snímcích potřeba, zastavte ho.
Pokud to je možné, vyhněte se zpracování řetězců a polí, protože je náročné na výkon procesoru.
Vždy se pokoušejte přistupovat k vlastnostem přímo, namísto používání metod jazyka ActionScript pro získání a nastavení hodnoty, které mají větší režii než volání ostatních metod.
Spravujte události promyšleně. Udržujte pole posluchačů (listener) kompaktní pomocí podmínek, ověřujících, že posluchač existuje (není null), ještě před jeho voláním. Vymažte všechny aktivní intervaly voláním funkce clearInterval a odstraňte všechny aktivní posluchače voláním funkce removeListener ještě před odstraněním obsahu pomocí funkcí unloadapplication nebo removeapplicationClip. Animate neuvolní paměť pro data SWF (například z intervalů a posluchačů) pokud některé funkce ActionScriptu při odstraňování filmového klipu z paměti ještě stále odkazují na data SWF.
Pokud proměnné již nepotřebujete, odstraňte je nebo je nastavte na null, čímž se označí pro uvolnění paměti. Odstraněním proměnných pomůžete optimalizovat využití paměti za běhu, protože nepotřebné prostředky se ze souboru SWF odstraní. Proměnné je vhodnější odstranit, než je nastavit na null.
Před vyčištěním paměti explicitně odstraňte z objektů posluchače tím, že zavoláte funkci removeListener.
Pokud je funkce volaná dynamicky a předává pevnou sadu parametrů, použijte call místo apply.
Jmenné prostory (například cesty) vytvořte kompaktnější, abyste zkrátili čas spouštění. Každá úroveň v balíku se zkompiluje do příkazu IF a způsobí nové volání Object, takže menší počet úrovní v cestě ušetří čas. Například cesta s úrovněmi com.xxx.yyy.aaa.bbb.ccc.názevFunkce způsobí vytvoření instance objektu pro com.xxx.yyy.aaa.bbb.ccc. Někteří vývojáři ve Flashi používají software předprocesoru k redukci cesty na jedinečný identifikátor, například 58923409876.názevFunkce, před zkompilováním kódu SWF.
Pokud je soubor tvořen několika soubory SWF, které používají stejné třídy jazyka ActionScript, vylučte tyto třídy během kompilace z vybraných souborů SWF. To může zkrátit dobu stahování souboru a požadavky na paměť za běhu.
Vyhněte se používání funkcí Object.watch a Object.unwatch, protože každá změna vlastnosti objektu vyžaduje, aby přehrávač určil, zda je nutné odeslat oznámení o změně.
Pokud kód ActionScript prováděný v klíčovém snímku na časové ose vyžaduje k provedení více než 1 sekundu, zvažte rozdělení tohoto kódu tak, aby byl prováděn v několika klíčových snímcích.
Při publikování souboru SWF odstraňte z kódu příkazy trace. To provedete tak, že zaškrtnete pole Vynechat akce sledování v záložce Flash v dialogovém okně Nastavení publikování.
Dědičnost zvyšuje počet volání metod a používá více paměti: třída, která zahrnuje všechny své funkce, je za běhu efektivnější než třída, která zdědila některé své funkce z nadřazené třídy. Proto může být nutné dělat při návrhu kompromisy mezi rozšiřitelností tříd a výkonností kódu.
Když jeden soubor SWF načítá jiný soubor SWF, který obsahuje speciální třídu jazyka ActionScript (například foo.bar.VlastníTřída) a pak soubor SWF uvolní, definice této třídy zůstane v paměti. Chcete-li ušetřit paměť, explicitně odstraňte všechny vlastní třídy v uvolněných souborech SWF. Použijte příkaz delete a určete plně kvalifikovaný název třídy, například: delete foo.bar.VlastníTřída.
Omezte používání globálních proměnných. Protože při odebrání filmového klipu, který je definoval, nejsou při čištění paměti označeny k uvolnění.
Nepoužívejte standardní komponenty uživatelského rozhraní (dostupné v panelu Komponenty v programu Flash). Tyto komponenty jsou navrženy pro práci na stolních počítačích a nejsou optimalizované pro spouštění na mobilních zařízeních.
Vyhýbejte se co nejvíce hluboce vnořeným funkcím.
Nepoužívejte odkazy na neexistující proměnné, objekty nebo funkce. Ve srovnání s verzí přehrávače Flash Player pro stolní počítače vyhledává aplikace Flash Lite 2 odkazy na neexistující proměnné pomalu, což může výrazně ovlivnit výkon.
Nedefinujte funkce s použitím anonymní syntaxe. Například mujObj.eventName = function{ ...}. Explicitně definované funkce jsou efektivnější, například function mojeFunkce { ...}; mujObj.eventName = mojeFunkce;.
Minimalizujte používání matematických funkcí a čísel s pohyblivou řádovou čárkou. Výpočty těchto hodnot zpomalují výkon. Pokud musíte používat matematické procedury, zvažte vypočítání hodnot předem a jejich uložení do pole proměnných. Načtení hodnot z datové tabulky je mnohem rychlejší, než když je Flash musí počítat v době běhu.
Správa paměti souboru Flash Lite pro mobilní zařízení
Aplikace Flash Lite pravidelně odstraňuje z paměti všechny objekty a proměnné, na které již soubor neodkazuje. Říká se tomu čištění paměti (garbage collection). Aplikace Flash Lite spouští proces čištění paměti každých 60 sekund nebo vždy, když se využití paměti souboru náhle zvýší o 20 % nebo více.
Přestože nemůžete kontrolovat, jak ani kdy aplikace Flash Lite toto čištění paměti provádí, můžete část nepotřebné paměti uvolnit sami záměrně. Pro proměnné časové osy a globální proměnné použijte k uvolnění paměti, kterou objekty jazyka ActionScript používají, příkaz delete. Pro místní proměnné, například proměnné definované v rámci definice funkce, nemůžete k uvolnění paměti objektu použít příkaz delete, ale můžete proměnnou, která na objekt odkazuje, nastavit na null. Za předpokladu, že na tento objekt neexistují žádné další odkazy, se tím uvolní paměť, kterou tento objekt používá.
Následující dva příklady kódu ukazují, jak lze odstraněním proměnné, která odkazuje na objekty, uvolnit paměť, kterou tyto objekty používají. Příklady jsou identické, kromě toho, že první příklad vytváří proměnnou časové osy a druhý vytváří globální proměnnou.
// První případ: proměnná připojená k filmu nebo // časová osa filmového klipu // // Vytvořte objekt Date. var mcDateObject = new Date(); // Vrátí aktuální datum jako řetězec. trace(mcDateObject); // Odstraňte objekt. delete mcDateObject; // Vrátí nedefinovanou hodnotu. trace(mcDateObject); // // Druhý případ: globální proměnná připojená k filmu nebo // časová osa filmového klipu // // Vytvořte objekt Date. _global.gDateObject = new Date(); // Vrátí aktuální datum jako řetězec. trace(_global.gDateObject); //Odstraňte objekt. delete _global.gDateObject; // Vrátí nedefinovanou hodnotu. trace(_global.gDateObject);
Jak bylo uvedeno výše, k uvolnění paměti, kterou využívá místní proměnná funkce, nelze použít příkaz delete. Místo toho nastavte odkaz proměnné na null, což má stejný efekt jako použití příkazu delete.
function func() { // Vytvořte objekt Date. var funcDateObject = new Date(); // Vrátí aktuální datum jako řetězec. trace(funcDateObject); //Odstranění nemá žádný účinek. delete funcDateObject; // Stále vrací aktuální datum. trace(funcDateObject); //Nastavte odkaz na objekt na hodnotu null. funcDateObject = null; //Vrátí hodnotu null. trace(funcDateObject); } //Zavolejte funkci func(). func();
Načítání dat pro mobilní zařízení ve Flash Lite
Při vývoji souborů pro mobilní zařízení minimalizujte objem dat, která chcete načítat najednou. Pokud načítáte externí data do souboru Flash Lite (například pomocí příkazu XML.load), může operační systém zařízení vygenerovat chybu „chyba paměti“, pokud pro přicházející data není přidělen dostatek paměti. Tato situace může nastat i v případě, že celková velikost zbývající paměti je dostatečná.
Předpokládejme například, že se některý soubor pokusí načíst soubor XML o velikosti 100 KB, ale operační systém zařízení přidělil pro práci s tímto příchozím datovým tokem jen 30 kB. V takovém případě zobrazí aplikace Flash Lite uživateli chybovou zprávu o nedostatku paměti.
Chcete-li načíst velký objem dat, seskupte data do menších částí – například do několika souborů XML – a použijte více volání pro načtení jednotlivých částí dat. Velikost jednotlivých částí dat a tím i počet volání pro načtení dat, která musíte použít, se liší podle zařízení a souboru. Chcete-li určit vhodné vyvážení mezi počtem požadavků o data a pravděpodobností chyby paměti, otestujte soubory na různých cílových zařízeních.
Chcete-li dosáhnout optimálního výkonu, pokud možno se vyhněte načítání a analýze souborů XML. Místo toho uložte data v jednoduchých párech název/hodnota a načítejte data z textového souboru pomocí loadVars nebo z předem zkompilovaných souborů SWF.
Vyloučení tříd z kompilace pro Flash Lite
Chcete-li zmenšit velikost souboru SWF, zvažte vyloučení tříd z kompilace se zachováním možnosti přístupu k nim a jejich použití pro kontrolu typu. Pokud například vyvíjíte soubor využívající několik souborů SWF nebo sdílených knihoven, zvláště pokud využívají mnoho stejných tříd, zkuste následující postup. Vyloučení tříd pomáhá vyhnout se duplicitě tříd v těchto souborech.
-
Vytvořte nový soubor XML.
-
Pojmenujte soubor XML FLA_názevSouboru_exclude.xml, kde FLA_názevSouboru je název souboru FLA bez přípony .fla. Pokud se například soubor FLA jmenuje prodejAkcií.fla, název souboru XML musí být prodejAkcií_exclude.xml.
-
Uložte soubor do stejné složky, ve které je soubor FLA.
-
Do souboru XML umístěte následující tagy:
<excludeAssets> <asset name=”className1” /> <asset name=”className2” /> </excludeAssets>
Hodnoty, specifikované pro atributy názvu v tagu <asset> představují názvy tříd, které by měly být vyloučeny ze souboru SWF. Přidejte jich tolik, kolik je pro soubor potřeba. Například následující soubor XML vyloučí ze souboru SWF třídy mx.core.UIObject a mx.screens.Slide:
<excludeAssets> <asset name=”mx.core.UIObject” /> <asset name=”mx.screens.Slide” /> </excludeAssets>