FLASH rychle a snadno 16.

Tímto dílem si odpovíme mimo jiné na zásadní otázku: „Jak ve Flash zaostřit textové pole?“, a ukážeme si i praktické využití při tvorbě dynamických nápověd u formulářů.

Kde je právě zaostřeno?

Pokud chceme uživateli usnadnit vyplňování formulářů, jednou z možností je zaostřit mu v konkrétních případech – na začátku vyplňování, při odeslání nesprávných hodnot apod. – některé textové pole. Tato operace někdy vyžaduje i zjištění právě aktivního textového pole (focused) před konkrétními údaji pozice kurzoru. Proto si představíme metody getFocus a setFocus.

getFocus

Tato metoda vrací řetězec s absolutní cestou k textovému poli, napřífklad volání z textového pole jmenopole by z kořenové časové osy by vrátilo takovouto hodnotu:

„_level0.jmenopole“

Je tedy nutností považovat vrácenou hodnotu za řetězec používající termín _level0 – porovnávání s termíny _root nebo this či bez uvozovek by Flash neprovedl korektně. Další důležitou vlastností této metody je vrácení hodnoty null v případě, že momentálně není aktivní žádné textové pole. Nyní si ukážeme, jak by šlo tuto metodu v praxi použít například jako nápovědu při vyplňování textových polí formuláře.

Aktivní textové pole

  1. Vytvoříme na scéně textové pole.
  2. Modifikujeme ho na Input text a Single Line.
  3. Pojmenujeme ho pole1.
    Klepněte pro větší obrázek
  4. Obdobně vytvoříme další 2 textová pole a pojmenujeme je pole2 a pole3.
  5. Vytvoříme další textové pole, Dynamic text a Multiline.
  6. Zaškrtneme u něj Word Wrap.
  7. Pojmenujeme ho popisek.
    Klepněte pro větší obrázek
  8. Všechny tyto pole označíme a zkonvertujeme v Movie clip.
  9. Pojmenujeme instanci tohoto movie clipu na scéně jako klip.
    Klepněte pro větší obrázek
  10. Zvolíme pro tuto instanci panel Actions -> onClipEvent -> enterFrame
  11. Vložíme podmínkovou akci Actions -> if
  12. Napíšeme podmínku do pole Condition – Objects -> Selection -> getFocus.
  13. Doplníme za metodu getFocus == null.
    Klepněte pro větší obrázek
  14. Zvolíme Actions -> set variable.
  15. Do pole Variable zadáme proměnnou popisek.
  16. V poli Value se nám objeví úvodní popisková zpráva pro případ, kdy ještě není zvoleno textové pole.
    Klepněte pro větší obrázek
  17. Vložíme další akci Actions -> else if.
  18. Napíšeme do pole Condition metodu getFocus a porovnáme ji s proměnnou pole1 vyjádřenou výše uvedeným polohováním.
    Klepněte pro větší obrázek
  19. Zvolíme Actions -> set variable.
  20. Proměnné popisek přiřadíme zprávu pro toto textové pole.
  21. Pomocí dalších 2 podmínek elseif doplníme skript i o popisky pro pole2 a pole3.

Klepněte pro větší obrázek

Celý náš příklad si můžete stáhnout TADY a samozřejmě si jej taky můžete otestovat:).

setFocus

Další obvyklou vlastností formulářů je, že když vyplníme nějaké pole a stiskneme Enter, kurzor se přesune se do pole dalšího (u HTML závislé na TAB INDEXu). Tuto vlastnost musíme opět konstruovat sami, a přesně tady se nám uplatní obdobně stavěná (a pozicovaná) metody jako getFocus – setFocus. Ta slouží k přeostřování polí na základě jejich přesné adresy. Nyní tedy navážeme na náš předchozí příklad a rozšíříme si ho o takovéto přeostřování polí:

  1. Vybereme náš programový kód instance.
  2. V rámci prvního příkazu else if za něj doplníme další podmínku if.
  3. V poli Condition bude Key.isDown(Key.ENTER) pro kontrolu stisku Enteru.
    Klepněte pro větší obrázek
  4. Zvolíme Actions -> evaluate.
  5. Do pole Expression vložíme Objects -> Selection -> setFocus.
  6. Parametr variableName zaměníme za za absolutně cestu k textovému poli pole2.
  7. Přidáme takto podmínky i k dalším dvěma polím.

Klepněte pro větší obrázek

I tento příklad si můžete STÁHNOUT. A podívat se na něj taktéž.

Za týden

V následujícím díle začneme mluvit o Objektu String, protože je zásadní pro práci s řetězci.

Váš názor Další článek: Česká verze WinRAR 3.0 k dispozici

Témata článku: Software, Programování, Flash, Textový řetězec, Scala, Movie, Quality, Pole, Loop, Textové pole


Určitě si přečtěte

Platby kartou se můžou rozšířit úplně všude. Jako terminál poslouží mobil
Lukáš Václavík
BankaPlacení mobilemNFC
Elon Musk podpořil Signal jako náhradu WhatsAppu. Aplikaci okamžitě zavalili uživatelé
Markéta Mikešová
WhatsAppElon MuskFacebook
Messenger a Instagram přicházejí v Evropě o funkce. Kvůli nové směrnici o soukromí
Vladislav Kluska
EvropaInstagramFacebook Messenger
Dostali jste nový počítač? Tohle s ním udělejte, než ho začnete používat

Dostali jste nový počítač? Tohle s ním udělejte, než ho začnete používat

** Každý nový počítač si zaslouží počáteční péči ** Odinstalujte bloatware a nezapomeňte na vhodné nastavení ** Poradíme, jak se o počítač s Windows 10 postarat

David Polesný, Stanislav Janů | 75

David PolesnýStanislav Janů
PočítačeNotebooky
Finanční správa tento měsíc spustí Moje Daně. Přiznání má být hračka
Lukáš Václavík
eIdentitaČeskoeGovernment