Uživatelské nástroje

Nástroje pro tento web


vyuka:prepinani_sceny_drag_and_drop

Přepínání scény

Přepínání mezi jednotlivými scénami .swf stačí u příkazu gotoAndStop nebo gotoAndPlay nastavit druhý parametr - název scény. Funkce gotoAndPlay má dva parametry:

gotoAndStop(číslo/název snímku, jméno scény)

Při vynechání druhého parametru se scéna nemění a uživatel se pohybuje stále po stejné scéně.

zpetGame_btn.addEventListener(MouseEvent.CLICK, zpetGame);

function zpetGame(e:MouseEvent)
{
	gotoAndStop(1,"Menu");
	odstranDeti();
}

Drag and Drop

Funkce drag a drop umožní chycení a puštění objektu myší.

chycení objektu:

jménoObjektu.startDrag();

puštění objektu:

jménoObjektu.stopDrag();

Drag a drop je nutné navázat na určitou akci, např. kliknutí myši. Aby byl objekt zachycen kliknutím a puštěn s uvolněním myši, startDrag spustí posluchač zmáčknutí tlačítka MOUSE_DOWN (jen zmáčknutí, celé kliknutí se skládá ze zmáčknutí a puštění).¨ StopDrag spustí posluchač uvolnění myši MOUSE_UP.

Příklad:

cepice_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
masleModra_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
masleCervena_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
bryle_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
	
function chyt(e:MouseEvent): void{
	e.target.startDrag();
	}
	
cepice_mc.addEventListener(MouseEvent.MOUSE_UP, Pust);
masleModra_mc.addEventListener(MouseEvent.MOUSE_UP, Pust);
masleCervena_mc.addEventListener(MouseEvent.MOUSE_UP, Pust);
bryle_mc.addEventListener(MouseEvent.MOUSE_UP, Pust);
	
function Pust(e:MouseEvent):void{
	e.target.stopDrag();
	}

Pro přehrání obsahu potřebujete Adobe Flash Plugin.

Drag and Dropp + addChild

Posunutí na horní vrstvu

karta1_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
karta2_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
karta3_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
karta4_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
	
function chyt(e:MouseEvent): void{
	e.currentTarget.startDrag();
	addChild(e.currentTarget as MovieClip);
	}
	
karta1_mc.addEventListener(MouseEvent.MOUSE_UP, Pust);
karta2_mc.addEventListener(MouseEvent.MOUSE_UP, Pust);
karta3_mc.addEventListener(MouseEvent.MOUSE_UP, Pust);
karta4_mc.addEventListener(MouseEvent.MOUSE_UP, Pust);
		
function Pust(e:MouseEvent):void{
	e.currentTarget.stopDrag();
	}

Pro přehrání obsahu potřebujete Adobe Flash Plugin.

Drag and Dropp + addChild + removeChild

Při addChild se původní MovieClip smaže a vytvoří se nový se stejnými vlastnostmi, ale je posazený do nejvyšší vrstvy. Díky tomu se umístí nad ostatní objekty. To ovšem může být problém, pokud přecházíme mezi jednotlivými scénami, protože objekty se připojí ke stage, která se s jednotlivými scénami nemění. Objekty by nám v okně zůstaly i při přechodu na jinou scénu. Proto je potřeba je při odchodu ze scény odebrat pomocí příkazu removeChild. Proto, aby tento příkaz fungoval správně, je potřeba přidat všem objektům addChild už při vstupu na scénu. (V jiném případě, pokud by nebyly uživatelem aktivovány všechny objekty, by removeChild vyhodil eror. Tomu se zabrání, když se adChild dá hned na začátku bez ohledu na klikání uživatele.)

Příklad:

import flash.events.MouseEvent;
import flash.display.MovieClip;

//************definice funkci ************************
function pridejDeti():void{
	addChild(ciro_mc)
	addChild(kosile_mc);
	addChild(bryle_mc);
	addChild(pasek_mc);
}

function odstranDeti():void
{
	removeChild(ciro_mc);
	removeChild(kosile_mc);
	removeChild(bryle_mc);
	removeChild(pasek_mc);
}

function chyt(e:MouseEvent)
{
	e.currentTarget.startDrag();
	addChild(e.currentTarget as MovieClip);
}

function pust(e:MouseEvent)
{
	e.currentTarget.stopDrag();
}

//*************** volani funkci ************

pridejDeti();

ciro_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
ciro_mc.addEventListener(MouseEvent.MOUSE_UP, pust);

bryle_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
bryle_mc.addEventListener(MouseEvent.MOUSE_UP, pust);

kosile_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
kosile_mc.addEventListener(MouseEvent.MOUSE_UP, pust);

pasek_mc.addEventListener(MouseEvent.MOUSE_DOWN, chyt);
pasek_mc.addEventListener(MouseEvent.MOUSE_UP, pust);

Pro přehrání obsahu potřebujete Adobe Flash Plugin.

vyuka/prepinani_sceny_drag_and_drop.txt · Poslední úprava: 2013/03/01 16:24 autor: verca