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.