Objekt Color:

Použitelné metody

metoda její funkce
getRGB vrací hexadecimální hodnotu barvy
getTransform vrací hodnotu barevné transformace klipu
setRGB nastaví barvu v hexadecimální soustavě
setTransform nastaví klipu barevnou transformaci

Barvíme dynamicky

Jednoduchý příklad na metodu setRGB(). Vytvořte nový movie clip a nakreslete zde nějakou čmáranici a dejte jí výchozí barvu jako modrou. Movie clip přetáhněte do hlavní scény a pojmenujte ho "symbol".

Dále vytvořte tři tlačítka - jedno červené, druhé zelené poslední modré. Opět je přetáhněte na hlavní scénu. Na první snímek umístěte následující skript:

barva=new Color(symbol);

Tímto vytvoříte novou instanci objektu Color, se kterou již můžete normálně pracovat. A jelikož je v závorce uvedena hodnota "symbol", budou se všechny změny instance "barva" týkat movie clipu "symbol". K červenému tlačítku připojte tento skript:

on (release) {
  barva.setRGB(0xFF0000);
}

Po kliknutí na toto tlačítko se nastaví barva na FF0000, což je hexadecimální hodnota pro červenou. K zelenému tlačítku přidejte tento skript:

on (release) {
  barva.setRGB(0x00FF00);
}

a konečně k modrému tento:

on (release) {
  barva.setRGB(0x0000FF);
}

Po stisnkutí se tedy instanci objektu "barva" přiřadí určitá hexadecimální hodnota nějaké barvy a objekt Color již vše provede za vás a obarví čmáranici, kterou máte uloženou na hlavní scéně.

prohlédnout
stáhnout zdroják

Postupná změna barvy

Opět nejprve vytvořte nějaký movie clip s nakresleným objektem. Já zvolil svou oblíbenou kouli, proto instanci na hlavní scéně pojmenujte "koule" a vložte do ní následující - poněkud delší - skript:

onClipEvent(load) {
  i=15;
}
onClipEvent (enterFrame) {
  if (i>255) {
    i=15;
  } else {
    i=i+2;
    R=255;
    G=i;
    B=255;
    cislo=R.toString(16)+G.toString(16)+B.toString(16);
    hexCislo=parseInt(cislo,16);
    barva=new Color(_root.koule);
    barva.setRGB(hexCislo);
  }
}

Nejdříve tedy zadeklarujete proměnnou "i", která bude opět sloužit jako čítač.

Ifu si prozatím nevšímejte, vysvětlím to později. Prvním příkazem za else přičítáte každý frame k "i" dvojku. To aby byla změna barvy rychlejší. Další tři řádky slouží k určení barevné hloubky. R představuje červenou, G zelenou a B modrou (RGB - red green blue). Další dva řádky slouží pouze k převodu těchto čísel na hexadecimální číslo.

Poté vytváříte novou instanci objektu Color a směřujete ji na movie clip "koule".

Posledním řádkem poté barvu, kterou jste před chvílí vypočetli, předáte instanci "barva" a ta následně obarví movie clip koule. A konečně if tam je proto, aby se animace opakovala, protože jakmile by "i" překročilo 255, Flash by dělal problémy, jelikož tak vysoko nesahá stupnice RGB.

prohlédnout
stáhnout zdroják

setTransform

Tato metoda nastavuje stejné hodnoty, jako panel Properties. Zapisuje se takto:

transformace=new Object();
transformace={ ra: '50', rb: '244', ga: '40', gb: '112', ba: '12', bb: '90', aa: '40', ab: '70'};
barva=new Color(symbol);
barva.setTransform(transformace);

Kde "ra" je procento červené, "ga" procento zelené, "ba" procento modré a "aa" procento alphy. "rb" je potom vyrovnání červené, "gb" vyrovnání zelené, "bb" vyrovnání modré a "ab" vyrovnání alphy. Procentuální hodnoty se udávají v rozmezí -100 až +100, vyrovnávací od -255 do +255.

hlavní stránka # o tento web se stará Lukáš Havrlant # lukas.havrlant@gmail.com