reklama

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
reklama
Určitě si přečtěte

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

Vybíráte herní periferii nebo hardware? Pak zapomeňte na nálepku Gaming

** Herní hardware se od toho běžného často liší jen vzhledem ** Při výběru stále nezapomínejte na základní parametry ** Poradíme jak vybrat herní hardware i periferie

20.  2.  2017 | Stanislav Janů | 36

10 nejhorších produktů v historii Microsoftu

10 nejhorších produktů v historii Microsoftu

20.  2.  2017 | Karel Javůrek | 141

AMD oficiálně představilo procesory Ryzen. Známe i jejich české ceny

AMD oficiálně představilo procesory Ryzen. Známe i jejich české ceny

** AMD uvedlo první tři procesory Ryzen 7 ** Všechny budou pracovat s osmi jádry a šestnácti vlákny ** Na pulty obchodů se dostanou už za týden

22.  2.  2017 | Stanislav Janů | 132

Pojďme programovat elektroniku: Žádný bastlíř se neobejde bez armády švábů

Pojďme programovat elektroniku: Žádný bastlíř se neobejde bez armády švábů

** Každý bastlíř se po čase neobjede bez armády švábů ** Dnes si některé z nich vyzkoušíme ** Třeba zázračný posuvný registr

19.  2.  2017 | Jakub Čížek | 40

EU se děsí Windows 10. Prý o nás vědí až příliš. Microsoft chystá změny

EU se děsí Windows 10. Prý o nás vědí až příliš. Microsoft chystá změny

** Evropští úředníci chtějí, aby byly Desítky transparentnější ** Microsoft od jara skutečně chystá změny ** Ochráncům soukromí to ale nestačí

21.  2.  2017 | Jakub Čížek | 218

Remix Singularity: Microsoft si na tom vylámal zuby. Jak dopadne Android?

Remix Singularity: Microsoft si na tom vylámal zuby. Jak dopadne Android?

** Microsoft do svých telefonů integroval desktopové prostředí ** Moc to ale nevyšlo, chyběl pořádný výkon ** Teď to zkoušejí ex-googleři s Remix Singularity

23.  2.  2017 | Jakub Čížek | 74


Aktuální číslo časopisu Computer

Supertéma o počítačové bezpečnosti

AMD Ryzen přichází

Velké testy kinoprojektorů a levných špuntových sluchátek

Příslušenství do USB-C

reklama
reklama