Dnes máme na programu pokračování práce s Movie Explorerem a začneme s prací s textovými řetězci – objektem Selection.
Hledání a úpravy v Movie Exploreru
- Do pole Find v horní části panelu zadáme jméno prvku, který chceme nají.
- V okně zobrazení sledujeme během a po psaní jména všechny prky s tímto jménem.
- Kliknutím zvolíme požadovaný prvek.
a) Zvolíme Options -> Edit in place nebo Options -> Edit in New Window a můžeme editovat.
b) Vybereme Options -> Rename a je možné měnit jméno.
c) Dvojklikem na daný prvek nastavíme prvek jako editovatelný, což se projevuje dle jeho druhu, možností přejmenování či změny obsahu.

Nahrazení všech výskytů fontu
- Do pole Find zadáme jméno fontu k nahrazení.
- Pomocí myši a klávesy Shift navolíme požadované výskyty fontu.
- Na panelu Character můžeme vlastnosti měnit vlastnosti všech textových prvků.

Hledání instancí
Do pole Find zadáme jméno movie clipu, jehož instance hledáme. Celý postup je podobně jako v předcházejících příkladech jednoduchý a mnohdy nám může ušetřit spoustu práce s „ruční prací“ …
Řetězce
Nyní se od nastavování fontů v Movie Exploreru přesuneme k práci s vstupním textem uživatelů, opět se budeme chvíli zabývat spíše programátorskou prací. Představme si situaci, kdy jsme tvořili náš formulář a používali input text, aby si hráč mohl zadat svoje iniciály a odeslat nám je na web. Ovšem jak postupovat, pokud chceme například zkontrolovat tvar emailové adresy před odesláním dat z flashe? Pomůže nám jednoduchá analýza. V našem případě bychom mohli kontrolovat existenci zavináče v odesílané emailové adrese.
Pro práci s informacemi z textových polí slouží dva objekty – Selection a String. Ten první zjišťuje, které textové pole je právě zvoleno a kde se v něm nachází kurzor. Objekt String pak získává a mění informace příslušného pole.
Objekt Selection
Díky tomu, že tento objekt kontroluje výběr textu ve vstupních textových polích, nemusí být nijak konstruován (jako námi již probíraný objekt Sound), ale může být rovnou použit – vyskytuje se ve filmu vždy pouze na jednou. Jak již bylo předesláno, zjistíme s ním pozici kurzoru v rámci právě aktivního textového pole – tzv. zaostřeného, focused. Jeho vlastnosti můžeme vyčíst z následující tabulky:
Metoda |
Popis |
getBeginIndex() |
Získá index počátku výběru. |
getEndIndex() |
Získá index konce výběru. |
getCaretIndex() |
Získá index pozice kurzoru. |
setSelection(beginIndex, endIndex) |
Nastaví výběr na počáteční a koncový index. |
getFocus() |
Získá jméno proměnné aktuálního textového pole. |
setFocus(variableName) |
Zaostří na textové pole určeném jménem proměnné. |
Výběry v textových polích
Díky takovémuto ovládání textových polí lze v nich zvýrazňovat znaky či slova. Stejně jako se sleduje pozice kurzoru myši se dá sledovat i kurzor v textovém poli. Každý znak v řetězci je číslován a používán jako index pro metody objektu Selection – první znak má index 0, druhý 1 atd. Pokud získáváme index výběru a kurzor není v textovém poli, je vrácena hodnota –1. Jak tedy polohu kurzoru určíme?
Poloha kurzoru
- Vytvoříme textové pole.
- Zvolíme v rámci Text Options volby Input text a Multiline.
- Pojmenujeme textové pole jako vyber.
- Zaškrtneme políčka Border/Bg a Word Wrap.
- Vytvoříme další textové pole.
- Navolíme si Dynamic Text, Multiline, Border/Bg.
- Pojmenujeme pole jako index.
- Textová pole vybereme a sjednotíme v jeden Movie Clip pomocí Insert -> Convert to Symbol.
- Klikneme na tento movie clip a vyvoláme panel Actions -> onClipEvent -> enterFrame.
- Vložíme další akci, Actions -> set variable.
- Do pole proměnné – Variables – vložíme jméno dynamického textu index.
- V poli Value zvolíme Objects -> Selection -> getCaretIndex.
- Zaškrtneme políčko Expression.

Náš příklad si zde můžeme i otestovat.
Výběr v textovém poli
- Navážeme na předchozí příklad a začneme změnami akcí u movie clipu.
- Nahradíme nastavení proměnné příkazem Actions -> if.
- Do pole Condition zadáme ověření stisku kláves Enter – Key.isDown(Key.Enter).
- Vložíme Actions -> evaluate.
- V poli Expression vložíme Objects -> Selection -> setSelection.
- Zadáme počáteční a koncový index, beginIndex bude číslo 0.
- endIndex zaměníme za volbu Objects -> Selection -> getCaretIndex.

A i tentokrát si příklad vyzkoušíme. Povšimněte si především změny počtu znaků, jež nastane v důsledku stisku klávesy Enter, která se do indexu počítá také. Dále je možné sledovat, že opravdu zvolíme znaky od začátku textového pole po aktuální umístění kurzor, pokud napíšeme text a stiskneme Enter někde v něm zpátky.
A příště?
… to se podíváme na obdobu javascriptové funkce focus() v rámci kontroly zaostření našich polí a vytvoříme si jeden programátorsky obtížnější příklad.