Umíme ve Flashi - 1. díl - novinky ve verzi 8

Flash 8 je již na světě a přinesl nám mnoho zajímavých novinek. Dnešním dílem začneme postupné seznamování se s nejvýznamnějšími změnami. Dnes se podrobněji zaměříme na nový filtr „blur“, který nám umožňuje rozmazávat objekty.

Nové prostředí programu

Popisovat prostředí Flashe 8, by zde bylo zbytečné. Až na drobnosti se shoduje s předchozí verzí MX 2004. Pokud se tedy chcete seznámit s tímto prostředím, odkážu vás na první díly seriálu „Začínáme s Flash MX 2004“.

Jedna změna ale stojí za zmínku. Jedná o znovuzrozeného pomocníka během psaní ActionScriptu – Skript Assist. Po otevření panelu akcí jej spustíme kliknutím na stejnojmenné tlačítko v pravé horní části panelu. Pro mnohé začátečníky je toto opravdu přínosná změna, která ulehčí hodně času při psaní skriptů.

Filtr blur

Jak již z názvu plyne, jedná se o filtr, který nám umožňuje dosáhnout zajímavého efektu rozmazání objektu. Jedná se společně s filtrem pro stín, vyvýšení a vysvícení o nejjednodušší filtr, co se týče parametrů a použití.

Uvedené filtry mimo jiné najde na panelu vlastností, kde, pokud máme vybraný některý objekt, můžeme mu na záložce „filters“ přímo přiřadit potřebný filtr.

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

My už ale umíme pracovat bez problémů s příkazy AS, proto si vyzkoušíme vytvořit filtr pomocí skriptu. Pro ukázku si do nového dokumentu na hlavní scénu umístíme dva objekty. V našem případě jsem zvolil dynamické textové pole vložené v MC a obrázek v MC. Dynamické textové pole jsem zvolil pro ukázku, že i na tento objekt lze aplikovat nové filtry.

Předchozí verze Flashe neměly zrovna přehršel funkcí pro animaci dynamických textových polí. Oba objekty nezapomeneme pojmenovat na panelu vlastností například „objekt1“ a „foto1“.

Klikneme na první snímek hlavní osy a otevřeme si panel akcí. Budeme chtít vytvořit celkem tři funkce. Nejdříve si vytvoříme funkci pro jednorázové vytvoření rozmazaného objektu. Druhá funkce onen objekt opět zaostří a všechno zakončíme poslední funkcí, která nám bude zvolený objekt rozmazávat a následně jej opět zaostří.

Ale teď již k samotnému filtru. Nejdříve si připomeneme novinku, že MC dostaly, mimo dalších, novou vlastnost (indexované pole) „.filters“. Jedná se o pole, které obsahuje případné použité filtry pro zvolený objekt.

Postup je takový, že si nejdříve vytvoříme objekt filtru, kterému přiřadíme určité vlastnosti a poté jej vložíme do pole „filters“ některého MC. Kombinací několika filtrů lze pak dosáhnout velmi zajímavých efektů.

Máme tedy otevřený panel akcí, do kterého nyní vložíme následující skript:

import flash.filters.BlurFilter;
addSum = function (objekt1, velikost) {
 sumX = velikost;
 sumY = velikost;
 sumQ = 3;
 var filtrSum:BlurFilter = new BlurFilter(sumX, sumY, sumQ);
 var poleFiltru:Array = new Array();
 poleFiltru.push(filtrSum);
 objekt1.filters = poleFiltru;
};
removeSum = function (objekt2) {
 var filtr:Array = objekt2.filters;
 hodnota = filtr[0].blurX;
 if (hodnota != undefined) {
  objekt2.onEnterFrame = function() {
   if (hodnota != 0) {
    filtr[0].blurX = hodnota;
    filtr[0].blurY = hodnota;
    objekt2.filters = filtr;
    hodnota--;
   }
  };
 }
};

V prvním řádku musíme před použitím nejdříve požadovaný filtr importovat. Následuje funkce, kterou budeme volat s parametrem (objekt) který definuje objekt, na který se filtr bude aplikovat. Druhý parametr funkce slouží jako hodnota velikosti rozmazání.

Filtr „blur“ má celkem tři parametry. První dva určují velikost rozmazání v x-ovém a y-ovém směru, třetím parametrem je kvalita rozmazání. Kvalita o hodnotě 3 je velmi dobrá, naopak hodnota 1 znamená velmi nízkou kvalitu výsledného efektu.

My si vytvoříme si objekt filtru s názvem „filtrSum“ Velikost určuje parametr funkce „velikost“, kvalitu máme nastavenu na nejlepší. Všimneme si, že nový filtr vkládáme do pole „poleFiltru“, které následně vložíme do pole „filters“ objektu. Použitím uvedené funkce dojde k okamžitému rozmazání objektu, na který je aplikována.

Druhá funkce rozmazaný objekt opět zaostří. Abychom zjistili aktuální hodnotu rozmazání, musíme si vytvořit pomocné pole „filtr“, do kterého vložíme pole filtrů objektu. Protože víme, že jsme použili pouze jeden filtr, najdeme jej ihned v první prvku pole filtrů objektu.

V podmínce zjistíme, jestli jsme již filtr aplikovali, pokud ano, použijeme událost „onEnterFrame“ pro snižování hodnoty rozmazání. Využijeme přitom naše pomocné pole, kde aktualizuje potřebné hodnoty a zpět je vložíme do pole filtrů objektu. Nemusíme vytvářet další objekty filtrů, stačí nám jen aktualizovat příslušné proměnné.

Následuje další část skriptu, ve které zkombinujeme obě dvě funkce:

vytvorSum = function (objekt) {
 objekt.blurring = true;
 rozmaz = true;
 sumX = 1;
 sumY = 1;
 sumQ = 3;
 velikostSumu = 10;
 var filtrSum:BlurFilter = new BlurFilter(sumX, sumY, sumQ);
 var poleFiltru:Array = new Array();
 poleFiltru.push(filtrSum);
 objekt.filters = poleFiltru;
 objekt.onEnterFrame = function() {
  if (objekt.blurring) {
   if (sumX<velikostSumu && rozmaz == true) {
    sumX++;
    sumY++;
   } else {
    rozmaz = false;
    sumX--;
    sumY--;
   }
   if (sumX<0) {
    sumX = 0;
    sumY = 0;
    objekt.blurring = false;
   }
   var filtr:Array = objekt.filters;
   filtr[0].blurX = sumX;
   filtr[0].blurY = sumY;
   objekt.filters = filtr;
  }
 };
};

objekt1.onPress = function() {
 vytvorSum(objekt1);
 addSum(foto1, 6);
};
foto1.onPress = function() {
 removeSum(foto1);
};

Pro efekt postupného rozmazání a opětovného zaostření objektu nám opět dobře poslouží událost „onEnterFrame“ objektu, pomocí níž budeme postupně přidávat a pak ubírat velikost rozmazání.

Nejdříve tedy aplikujeme filtr na příslušný objekt, následuje postupné zvyšování a snižování hodnoty rozmazání a nakonec aktualizace parametrů filtru díky našemu pomocnému poli „filtr“.

Úplný konec skriptu patří jen přiřazení funkcí k příslušným objektům na scéně. Objektu, který zobrazuje textové pole, přiřadíme funkci pro pozvolnou změnu rozmazání a funkci pro jednorázovou aplikaci rozmazání na druhý objekt. Druhému objektu pak přiřadíme funkci pro pozvolné zaostření.

Tento nový filtr umožňuje opravdu zajímavé efekty, ale abychom nezůstali jen u jednoho, v příštím díle se zaměříme na další z nových filtrů.

Zdrojový soubor dnešní ukázky ke stažení zde.

Náhled dnešní ukázky zde. Je potřeba mít nainstalovaný Flashplayer8.

Témata článku: Software, Programování, Pole, Suma, Sumo, Assist

1 komentář

Nejnovější komentáře

  • gully, gully 10. 10. 2005 19:07:08
    http://diskuse-zaciname-s-flash-mx-2004.wz.cz
Určitě si přečtěte

Operační systém běžným počítačům nedal Bill Gates, ale Gary Kildall

Operační systém běžným počítačům nedal Bill Gates, ale Gary Kildall

** Gary Kildall pochopil, že levné výpočetní čipy mohou posloužit jako univerzální počítače pro všechny ** Připravil pro ně proto první operační systém ** Později mu systém vyfoukl Microsoft a nazval ho MS DOS

23.  4.  2017 | Pavel Tronner | 57

Umělá inteligence je sice v plenkách, už teď ale přestáváme rozumět, jak vlastně funguje. To je problém

Umělá inteligence je sice v plenkách, už teď ale přestáváme rozumět, jak vlastně funguje. To je problém

** Už je to tady, lidé přestávají chápat počítače ** Systémy neuronových sítí začínají pracovat tak, že ani jejich tvůrci přesně neví, co se uvnitř děje ** Do budoucna to může být závažný problém

24.  4.  2017 | Jakub Čížek | 112

Před 35 lety měl premiéru legendární počítač ZX Spectrum. Připomeňte si „Gumáka“

Před 35 lety měl premiéru legendární počítač ZX Spectrum. Připomeňte si „Gumáka“

** Slavný osmibitový počítač Sinclair ZX Spectrum byl uveden právě před 35 lety ** Připomeňte si tento průkopnický počítač v tematických článcích ** Podívejte se, jak funguje dnes

23.  4.  2017 | Pavel Tronner | 13

Acer chrlí novinky: levný a tenký Predator, nové Switche a další notebooky

Acer chrlí novinky: levný a tenký Predator, nové Switche a další notebooky

** Acer na konferenci v New Yorku představil velkou spoustu novinek z oblasti počítačů, notebooků i monitorů ** Notebookové novinky se dotkly řad Predator, Swift, Switch i Aspire ** Herní notebooky dostaly nový typ chlazení

27.  4.  2017 | Karel Javůrek | 8

Správný počítač má alespoň dva monitory. Anebo je to jinak?

Správný počítač má alespoň dva monitory. Anebo je to jinak?

** David si nedokáže představit práci bez dvou a více monitorů ** Kubovi naopak stačí jeden a ve více displejích se ztrácí ** Jaký přístup je lepší?

23.  4.  2017 | Jakub Čížek | 59


Aktuální číslo časopisu Computer

Supertéma: moderní cestování

Kdy opravdu přijdou nové baterie?

Velké testy: 6 herních notebooků a 8 volantů

Recenze: AMD Ryzen řady 5