V předchozím článku jsme kombinovali prvky Flashe a HTML, resp. využili jsme elementu IFRAME. Tentokrát k tomu ale použijeme pouze prvky Flashe a seznámíme se s některými novými funkcemi MX. Věnovat se tedy budu spíše začátečníkům.

Pro tuto ukázku jsem zvolil velikost plochy 300 x 300 px, kterou nastavíme v panelu Properties (Ctrl+F3). Zvolení barevného pozadí a rychlosti můžeme ponechat v základním nastavení. Jelikož budeme umisťovat obrázky větší než bude hrací plocha, je možné s obrázkem posunovat, kam potřebujete. Vytvoříte tak vlastní náhled (příp. výřez).

Tím máme připravenou základní hrací plochu a můžeme začít skriptovat. Jednotlivé další prvky si připravíme pomocí ActionScriptu.

Klávesou F9 si vyvoláme panel Actions.

Actions

V pravém rohu zvolíte pro zápis AS mód Expert nebo Normal a vložíte na první a jediný snímek následující kód:

_root.createEmptyMovieClip(„klip“, 1);
klip.loadMovie(„foto.jpg“);
klip._x = klip._y=50;
_root.onMouseDown = function() {
   startDrag(„klip“);
};
_root.onMouseUp = function() {
   stopDrag();
};

V prvním řádku vytvoříme na hlavní ose prázdný Movie clip, který umístíme do vrstvy 1 a tuto instanci pojmenujeme „KLIP“. V druhém řádku do této instance nahrajeme bitmapu ve formátu JPG (pro tuto funkci lze dále využít jenom SWF, nikoli GIF ad.). Nezapomeňte si připravit obrázek (foto.jpg), který budete nahrávat a který by se měl nacházet ve stejném adresáři jako soubor SWF, pokud neurčíte jinak.

Ve třetím řádku přiřadíme levému hornímu rohu instance KLIP počáteční hodnoty souřadnic x a y. Následující řádky testují, zda bylo na hrací ploše stisknuto tlačítko myši. Pokud ano, můžete s obrázkem pohybovat. Pokud tlačítko uvolníte, KLIP, resp. obrázek, zůstává v té pozici, kde se nacházela myš.

Výše uvedeného postupu můžete použít k dynamickému načítání obrázků bez dalších úprav do formátu SWF nebo dříve uvedeného postupu za pomocí iframe pro tvorbu např. minifotogalerie.

Kontrola načtení obrázku (dat)

Stává se, že začínající Flashaři zapomínají kontrolovat, zda je již načten celý soubor a chtějí s ním pracovat dříve, než je celá operace vykonána. Postup, který si nyní popíšeme, lze také použít v předchozí verzi Flashe 5. Tento způsob testování připomíná funkci Preloaderu a kontroluje obsah MC. Způsobů kontroly je samozřejmě více.

Tento příklad si ukážeme na nové ukázce. Pomocí kláves Ctrl+F8 si vytvoříme nový, tzv. prázdný Movie clip, který pojmenujeme KONTEJNER. Tento MC přemístíme z knihovny (Ctrl+L) libovolně na plochu. Na ploše se zobrazí jako prázdné kolečko. V panelu Instance pojmenujeme OBSAH. Buď pravým tlačítkem myši nad touto instancí nebo přímo z panelu Instancí vyvoláme Actions a pro tento objekt přiřadíme následující akce:

onClipEvent (enterFrame) {
   var total=this.getBytesTotal;
   var bytes=this.getBytesLoaded;
   if (total==bytes) {
       _root.gotoAndPlay(4);
   } else {
       _root.gotoAndPlay(2);
   }
}

Tyto příkazy nám kontrolují, kolik dat bylo načteno do naší instance OBSAH (this). Je-li obsah Movie clipu načten, program může pokračovat dál ve vykonávání funkcí a pošle hrací hlavu na frame 4, kde jsou další příkazy nebo pokračuje animace.

Do samostatné vrstvy (Insert Layer) umístíme následující akce. Do prvního frame vložíme akci:

loadMovie („priklad.swf“, obsah);

Tento příkaz nám zajistí načtení souboru PRIKLAD.SWF (jakési animace) do naší instance OBSAH. Na frame 3, který si vytvoříme pomocí klávesy F5, umístíme akci:

stop ();

Actions

Od frame 4 by mohli pokračovat další akce a vaše animace. Stejně jako u klasického preloaderu, můžete zde také zobrazovat, kolik procent dat už bylo nataženo.

Zdrojové příklady k vlastnímu prostudování si můžete stáhnout.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět