Tvorba jazykové verze ve flashi

Jistě znáte ten pocit, kdy musíte ve Flashi udělat více jazykových verzí a nechce se vám dělat každy soubor zvlášť. Flash má k tomuto účelu šikovnou funkci. Pojďme se na ni podívat.

Nejdříve na scénu vložte dyamické textové pole, ve kterém bude náš text v různých jazykových mutacích. Následně jděte do menu “Window – Other Panels – Strings” nebo stačí jen stisknout kombinaci kláves Ctrl+F11. Objeví se nám okno “Strings”, kde nejprve musíme kliknout na tlačítko “Settings”,zde za okamžik nastavíme potřebné parametry. Okno “Settings” vypadá následovně.

settings

V levém sloupci označeném “Languages” vybereme přslušné jazykové verze, které hodláme používat. Stačí na ně kliknout a přidat pomocí tlačítka “Add”. Dále pak musíme vybrat jednu ze tří možností, jak se budou jednotlivé jazyky nastavovat.

  • První možnost je “automatically at runtime”, označení této možností způsobí, že se použije jazyková varianta stejná jaká je nastavená v operačním systému daného počítače.
  • Další možnost je “manually using stage language”, tato možnost zpusobí použití jazyka, který je nastaven v okně “Strings”, jako defaultní.
  • Třetí možnost a nejzajímavější je”via ActionScript at runtime”, zaškrtnutí této volby způsobí, že budeme moci nastavit jazykovou verzi pomocí ActionScriptu.

My prozatím použijeme druhou volbu, “tedy manually using stage language”. Nastavení jazyka pomocí ActionScriptu se budeme věnovat v jiném článku. Nastavení potvrdíme stiskem tlačítka “OK”. Tim se dostaneme opět do okna “Strigs”.

strings

Nyní můžeme do pole s označením “ID” napsat náš libovolný dentifikátor a do pole s označením “String” vepsat libovolný textový řetězec. Jetě potvrdit talčítkem “Apply” a můžeme vkládat další jazykové verze. To uděláme tak ,že doplníme text do příslušných kolonek, v tabulce pod tlačítke “Apply”.

Nyní se můžeme podívat, jak se náš text zobrazuje. V okně “Strings” vybereme z roletkového menu s názvem “Stage Language”, které je uvedeno jako první položka v tomto okně, jazykovou variantu. A pozorujeme ,co se děje na scéně.

czechVolba “Stage Language” nastavena na “cs”.

deutschVolba “Stage Language” nastavena na “de”.

english

Volba “Stage Language” nastavena na “en”.

Ovšem vše dle jazyků, které jsou nastaveny v okně “Settings”.

Nyní si vaši práci uložte a exportujte do SWF souboru. Nahlédněte do adresáře, kde máte vyexportovaný SWF soubor.

folderZde zjistíte, že jsou vytvořeny nové adresáře s názvy jednotlivých jazykových variant.

filePokud se do jednoho podívate zjistíte, že obsahuje XML subor, který obsahuje vlastní data.

xml_source

Tyto data pak můžete velice pohodlně měnit. Výhoda spočívá v tom, že pokud je již vyexportovaný SWF soubor, tak můžu měnit texty v animaci bez zdrojového FLA souboru.

Tolik prodnešek vše k tématu jazykové verze ve Flashi. Doufám ,že vám tento základ napomůže při vaši vlastní tvorbě a usnadní vám práci. Pokud se budete chtít podělit o další vychytávky, tak neváhejte a napište nám.

Animace založené na čase (Time based animation)

V tomto příspěvku se budu
věnovat flashové animaci založené na čase. Proč? Nu, často je potřeba zajistit,
aby naše animace byla přesně načasovaná, aby její konec nastal přesně
v dobu kdy má. Často potřebujeme synchronizovat animace s dalšími
prvky, třebas videem . Dokážete si představit, že by animace vteřinové ručičky
trvala 70 vteřin a né 60? Byla by to jistě krásná představa, kdyby minuta
trvala 70 vteřin. Nicméně má jen 60. Jak zajistit, aby ručička v animaci
oběhla ciferník přesně za 60 vteřin? Někdo to řeší pomocí nastavení fps, ale to
není příliš schůdná cesta, představíme-li si, že nastavenou vyšší hodnotu fps
animace málokdy dosáhne. Někdy prostě zobrazení jednoho snímku trvá déle než
1/fps vteřiny. Komplikací muže být „pomalý“ počítač, náročná grafická operace
atd. atd. Zkuste si někdy ve flashi vložit několik poloprůhledných objektů přes
sebe a různě je animovat. Zjistíte, že pokud si nastavíte třebas hodnotu 100
fps, tak animace „trvající“ 100 framů nebude trvat přesně 1 vteřinu. Flash je
nástroj založený na tvorbě animace po snímcích tzv. „frame based animation“.
Naštěstí pomocí ActionScriptu lze tuto skutečnost změnit a animovat
v závislosti na čase. Pojďme se podívat jak?

V našem příkladu vytvoříme
pomyslnou vteřinovou ručičku, která oběhne ciferník hodinek za jednu minutu.
Docílíme toho tak ,že budeme v každém framu kontrolovat čas, který uběhl
od začátku animace a výpočtem zjistíme , kde se má právě naše ručička nacházet
a tam ji také zobrazíme. Výhodou je, že ručička skutečně oběhne ciferník za 1
minutu. Na druhou stranu každá sranda něco stojí a každá mince má i rub.
V našem případě to je fakt, že na „pomalém“ počítači se naše ručička
nemusí zobrazit na každé poloze ciferníku. Prostě pokud zobrazení některého
snímku bude trvat déle, tak v následujícím snímku se čas dožene tím, že se
ručička posune dále. Teoreticky na „rychlém“ počítači naše ručička bude tikat
každou vteřinu, ale na „pomalém“ se muže zobrazit jen v polohách např.
1/4, 1/2 , 3/4, 1 .

image001Napřed si připravíme ciferník.
Můžete si nakreslit jaký chcete nebo můžete vložit obrázek hodinek. Vložíme jej
do vrstvy, kterou pojmenujeme ciferník. Dále si vytvoříme novou vrstvu do které
za malou chvilku vložíme ručičku a pojmenujeme ji ručička. Vše by mělo vypadat
přibližně ,jako na obrázku výše.

image002Nyní si vytvořte nový movieclip a
pojmenujte ho ručička. Uvnitř tohoto klipu nakreslete čáru, která bude
představovat naši ručičku. Její spodní konec umístěte do středu movieclipu, tak
jak je znázorněno na obrázku výše.

image003Nyní vložte do vrstvy pojmenované
ručička náš movieclip ručička, tak aby spodní okraj ručičky zasahoval do středu
ciferníku (viz. obrázek). Označte instanci klipu ručička a přejděte do okna
ActionScriptu klávesou F9.

image004

Zde vložte skript, který je
uveden na obrázku. Tento skript nám rotuje s movieclipem ručička, přičemž
každou vteřinu pootočí ručičkou o 6 stupňů. Hodnota 1000 je ve výpočtu jen
proto, že funkce getTimer vrací hodnotu v milisekundách, tak musíme tuto
hodnotu upravit na sekundy. No a časový interval je dán rozdílem času před a po
zobrazení dvou po sobě jdoucích snímků.

Tolik ActionScriptu. Nyní si
můžete naši animaci vyzkoušet. Zkuste nejdříve hodnotu frame rate nastavit na 1
fps a spustit animaci. Poté vyzkoušejte animaci s nastavenou hodnotou
frame rate např. 60 fps. V obou případech naše animace bude trvat minutu,
jen plynulost pohybu bude rozdílná.