Flash Help
Flash
ActionScript
Příklady





Webmaster

      Martin Hozík
      hozikm@seznam.cz
      ICQ: 323756613


W3C Validita

      HTML 4.0 validní




UI komponenty

Co je to komponent?

Komponent, někdy také zvaný SmartClip je MovieClip, který je naprogramovaný pro určitý účel, z něhož jsou na povrch "vyvedeny" některé proměnné, které jsou důležité pro chod komponentu. Tyto proměnné pak může animátor editovat. Komponent si lze představit jako zamčenou černou skříňku s ovládacím panelem (který však vidí jen animátor). Komponent ze strany uživatele vypadá jako obyčejný MovieClip.

UI znamená zřejmě User Interface. Komponenty jako takové existují už od verze 5, ale UI komponenty používají nové funkce ActionScriptu, takže ve verzi 5 nefungují.

Instanci UI komponentu umístíte na scénu jeho přetažením z okna "Components" (Window -> Components)

Jen doplním, že všechny příkazy ovlivňující UI komponenty naleznete v sekci "Flash UI Components"



Druhy komponentů

Druhy UI komponentů prakticky vychází z formulářů v jazyce HTML.

  • PushButton (tlačítko)
  • ComboBox (roletové menu)
  • ListBox (roletové menu - trvale otevřené)
  • CheckBox (zaškrtávací pole)
  • RadioButton (výběrové pole)
  • Scrollbar (posuvník)
  • SrollPane (něco jako frame - umožňuje zobrazovat MovieClip)



1. Push button

První a nejjednodušší z rodiny UI Komponetů. Jedná se o klasické tlačítko

Pokud ho přetáhnete na scénu, zobrazí se na panelu "Properties" okno s názvem "Parameters":



Parametry UI komponetu



Právě v tomto okně jsou vyvedeny ony editovatelné proměnné. V tomto případě jen 2.

  • Label (popisek)
    - Jedná se o zobrazovaný text. Kliknutím na položku je možné ji editovat.
  • Click Handler (funkce)
    Do tohoto pole je nutné napsat název funkce, která bude zavolána po kliknutí na tlačítko
    function akce1() {
              gotoAndPlay(15);
    }
    
    Pokud tedy do položky "Click Handel" napíšete "akce1" a v prvním snímku definujete funkci "akce1", přejde běh animace po kliknutí na snímek 15.


Metody objektu PushButton:

getEnabled Vrací hodnotu true/false jestli je komponent zablokovaný
getLabel Vrací hodnotu popisku
setClickHandel Nastavuje funkci, která bude volána po kliknutí
setEnabled Umožňuje zablokovat/odblokovat komponent
setLabel Nastavuje popisek
setSize Nastavuje rozměry (W, H)



2. Combo Box

Volný překlad by byl nejspíš "roletové menu".

Combo Box obsahuje několik položek, ze kterých je možno jednu zvolit.

  • Editable (true/false)
    Pokud zvolíte "true", půjde, kromě volby jedné možnosti, napsat vlastní hodnota
  • Labels (popisky)
    Pokud klepnete na lupu vpravo, otevře se okno, kde je možné definovat popisky možností
  • Data
    Zde přiřadíte možnostem hodnoty, které budou nastavovat
  • Row Count (číslo)
    Počet řádků, které mají být viditelné při rozbalení
  • Change Handler (funkce)
    Funkce, která má být volána při zvolení položky


Parametry komponentu ComboBox



function akce() {

           gotoAndStop(_root.roletka1.getValue());

}

Zde je použita metoda objektu ComboBox getValue() udávající hodnotu "Data" vybrané položky. Je samozřejmě nutné instanci komponentu pojmenovat (roletka1). Pokud teď vybereme napřklad položku "hrušky", přejde animace na snímek 2.


Metody objektu ComboBox:

addItem Přidá položku:   addItem("popisek", data)
addItemAt Přidá položku na určené místo (index)
getItemAt Vrací popisek: getItemAt(4).label nebo data: ...(4).data
getLength Vrací počet položek
getRowCount Vrací počet řádků při rozbalení
getScrollPosition Vrací index položky zobrazené nejvýše v seznamu
getSelectedIndex Vrací index vybrané položky
getSelectedItem Vrací popisek/data vybrané položky (viz getItemAt)
getValue Vrací data vybrané položky
removeAll Odstraní všechny položky
removeItemAt Odstranění určité položky (index)
replaceItemAt Přepsat položku: replaceItemAt(4, "novynazev", data)
setChangeHandler nastavení funkce, která má být volána při zvolení položky
setDataProvider Nastaví hodnotu dat položek podle pole Array()
setEditable viz Editable
setItemSymbol Zobrazení symbolu v rozbalovacím seznamu
setRowCount Nastaví počet řádků při rozbalení
setSelectedIndex Nastaví index vybrané položky
setValue Nastaví hodnotu editovatelné položky (viz Editable)
SortItemsBy Seřadí položky buď podle popisku nebo podle dat
...ostatní viz dříve  



3. List Box

Pracuje na stejném principu jako Combo Box (v kódu HTML tyto 2 objekty dokonce reprezentuje jeden tag). Jedná se o trvale rozbalené menu

Jediná odlišnost je v možnosti vybrat více položek najednou (Select Multiple)

 

Metody objektu ListBox:

getSelectedIndices Vrací indexy vybraných prvků zapsané do pole Array
getSelectedItems Vrací popisky/data vybraných prvků zapsané do pole Array (syntaxe viz getItemAt)
getSelectMultiple Sděluje jestli jsou povoleny vícenásobné volby
setAutoHideScrollBar Nastavuje zobrazení posuvníku (true/false)
setSelectedIndices Nastavuje vybrané prvky podle indexů zapsaných v poli Array
setSelectMultiple Povoluje nebo zakazuje vícenásobné volby
...ostatní viz dříve  


4. Check Box

Zašktrávací pole. Nabývá jen 2 hodnot: označeno/neoznačeno (true/false)

  • Label
    viz dříve
  • Initial value (true/false)
    Počáteční hodnota
  • Label Placement (left/right)
    Pozice popisku
  • Change Handler
    viz dříve


Metody objektu CheckBox:

getValue Získání hodnoty pole (true/false)
setValue Nastavení hodnoty pole (true/false)
setLabelPlacement Nastavení pozice popisku ("left"/"right")
...ostatní viz dříve  


5. Radio Button

Podobná funkce jako v předchozím případě s tím rozdílem, že Radio Buttonů musí být 2 a více v jedné skupině a je možné vybrat vždy jen jednu z možností v jedné skupině.

  • Label
    viz dříve
  • Initial State
    viz dříve
  • Group Name (název skupiny)
    Název skupiny musí být samozřejmě u všech prvků skupiny stejný
  • Data
    Data přidělená položce
  • Label Placement
    viz dříve
  • Change Handler
    viz dříve


Parametry komponentu RadioButton



Metody objektu RadioButton:

getGroupName Získání názvu skupiny
setGroupName Nastavení názvu skupiny
getState Získání stavu (true/false)
setState Nastavení stavu (true/false)
...ostatní viz dříve  


6. Scrollbar

Posuvník, který je možno připojit k textovému poli typu "Multiline". Pokud scrollbar přesunete "dovnitř" textového pole, automaticky se přichytí a nastaví se target.

  • Target TextField (jméno instance - nikoliv zobrazované proměnné)
    Ovládané textové pole
  • Horizontal (true/false)
    Pokud zvolíte true, bude posuvník vodorovný

Metody objektu ScrollBar:

getScrollPosition Udává číslo řádku zobrazeného nejvýše
setHorizontal vodorovný (true) nebo normální (false) posuvník
setLargeScroll Nastavuje posuv (řádky) v případě kliknutí do dráhy
setScrollPosition Nastavuje pozici posuvníku (číslo nejvyššího řádku)
setScrollProperties setScrollProperties(celk. počet řádků, č. řádku v nejvyšší pozici jezdce, č. řádku v nejnižší pozici jezdce)
setScrollTarget Nastaví jméno ovládané instance textového pole
setSize Nastavuje délku posuvníku v pixelech
setSmallScroll Nastavuje posuv (řádky) při kliknutí na šipku
...ostatní viz dříve  


7. Scroll Pane

Poslední z rodiny UI komponentů. Tento element se tak trochu podobá in line frame z HTML. Je to okno, které umí uvnitř zobrazovat MovieClipy. Pokud je MC větší, než okno, zobrazí se patřičný posuvník.

  • Scroll Content (Jméno MovieClipu)
    Zobrazovaný obsah
  • Horizontal Scroll (auto/true/false)
    Vodorovný posuvník
  • Verical Scroll (auto/true/false)
    Svislý posuvník
  • Drag Content (true/false)
    Povolit/zakázat možnost uchopení MC


Metody objektu ScrollPane:

getPaneHeight Udává šířku pole
getPaneWidth Udává výšku pole
getScrollContent Udává název zobrazovaného MovieClipu
getScrollPosition pozice MC (za příkaz je nutno přidat .x nebo .y)
loadScrollContent Načte do pole externí SWF nebo JPEG

(URL, [funkce zavolaná po načtení], [pozice funkce])

refreshPane znovunačtení obsahu (např. po změně jeho vlastností)
setDragContent Povolit/zakázat možnost uchopení MC
setHScroll Zobrazení vodorovného posuvníku (auto/true/false)
setVScroll Zobrazení svislého posuvníku (auto/true/false)
setScrollContent Nastavení zobrazovaného MC
setScrollPosition Nastavení pozice MC (viz getScrollPosition)
setSize(š, v) Nastavení velikosti pole
...ostatní viz dříve  


Stylování UI komponentů

Stylování komponentů považuji za jejich nejsilnější zbraň. Žel bohu se jedná převážně jen o změnu barvy toho kterého prvku. Existuje několik možností stylování

1. Globální

Týká se veškerých komponentů v animaci. Používá se objektu globalStyleFormat.

Malý příklad:

globalStyleFormat.arrow = 0xFF0000;
globalStyleFormat.applyChanges();

V prvním řádku je definována vlastnost objektu globalStyleFormat "arrow" jako hexadecimální barevná hodnota (v našem případě červená)

Následuje metoda applyChanges(), která aplikuje změny.

Důsledek bude takový, že veškeré šipky (ComboBox, ScrollBar, ...) budou obarveny na červeno.

Povšimněte si, že objekt globalStyleFormat nepotřebuje konstruktor (viz Objekty).

 

 

2. Skupinové

Jak již víte, objekt globalStyleFormat ovlivňuje všechny instance komponentů na scéně. My si ale teď vytvoříme vlastní objekt, který bude ovlivňovat jen určitou skupinu komponentů.

skupina1 = new FStyleFormat();

skupina1.addListener(radio1);
skupina1.addListener(radio2);

skupina1.radioDot = 0xFF0000;

skupina1.applyChanges();

Zde již musíme použít konstruktor "new" pro vytvoření svého objektu. Dále musíme nastavit, kterých instancí se bude formátování týkat addListener(nazev instance). Přirozeně je nutné instance pojmenovat. Opačný efekt má metoda removeListener(název instance).

Ve 4. řádku pak definujeme vlastnost radioDot jako opět červenou barvu. Nakonec musíme opět aplikovat změny.

Konečný efekt bude obarvení teček RadioButtonů "radio1" a "radio2"

 

 

3. Přímé

Třetí možnost je přímé adresování vlastnosti danému komponentu:

názevInstance.setStyleProperty("vlastnost", hodnota);
Myslím, že je to víc než jasné. Jen nezapomeňte uzavřít název vlastnosti do uvozovek, aby nebyl chápán jako proměnná.
Malá ukázka:
seznam1.setStyleProperty("arrow", 0xFF0000);

Tento příkaz tedy obarví na červeno šipku v instanci komponentu "seznam1


Seznam vlastností:



arrow Barva šipky
background Barva pozadí
backgroundDisabled Barva pozadí u neaktivního komponentu
check Barva "fajfky" []  u CheckBox
darkshadow Barva tmavého stínu
embedFonts [true/false] Použití přibaleného fontu (font musí být již přibalen do některého textového pole, nebo musí být umístěn v knihovně a musí být definován font komponentu pomocí textFont)
face Barva pozadí tlačítek a vnitřních ploch scrollbarů
fadeRate Postupné rozsvícení (ms) vybrané položky u Combo a ListBox
PopUpFade Postupné objevení (ms) seznamu u ComboBox
foregroundDisabled Obarvení šipek neaktivního komponentu
highlight Obarvení plochy "highlight"
highlight3D Obarvení plochy "highlight 3D"
radioDot Barva tečky RadioButton komponentu
scrollTrack Barva dráhy posuvníku
selection barva výběru u ComboBox a ListBox
selectionDisabled Barva vybrané položky u neaktivního komponentu ListBox
selectionUnfocused Barva vybrané položky ListBox, který není právě editován
shadow Barva stínu
textAlign Zarovnání textu ("left" / "right")
textBold Tučný text (true/false)
textColor Barva textu
textDisabled Barva textu neaktivního komponentu
textFont Použitý font ("Arial" / "Verdana" /...)
textIndent Levé odsazení textu (px)
textItalic Kurzíva (true/false)
textLeftMargin Levý okraj textu (px)
textRightMargin Pravý okraj textu (px)
textSelected Text vybrané položky u ComboBox a ListBox
textSize Velikost textu (px)
textUnderline Podtržený text (true/false)


Obrázek některých nejasných ploch:

Ukázka barevných ploch UI komponentů





Nahoru

Copyright © Martin Hozík - All rights reserved.
Flash are registered trademark of Macromedia Inc.