ROLOVACIE MENU                                                                        as3


    V tomto tutoriály vám ukážem ako spraviť jednoduché rolovacie menu aktivované prechodom myši na niektorú stranu. V tomto prípade ide o horizontálne rolovanie ,ale nieje prblém to jednoducho prerobiť na vertikálne. Tlačidlá sú plne upravovateľné, ukážka dole je len jeden z možných prípadov. Na konci tutoriálu by sme mali dostať niečo podobné tomuto:




    Otvorte nový actionscript 3.0 flash dokument a vložte 5 vrstiev na časovú os. Piata, najspodnejšia vrstva bude pozadie, či jednoduchá farba alebo obrázok je už len na vás. Na 4. vrstve vytvorte (v tomto prípade) 5 tlačidiel a zrovnajte ich vedľa seba. Nechajte medzi nimi malé medzery, bude to vyzerať krajšie vo výsledku. Do ich instace names napíšte skyfall_btn, brave_btn, iceage_btn, expandables_btn, batman_btn alebo hocičo iné, to je len na vás, len sa uistite že mená súhlasia s menami v actionscripte, v opačnom prípade to nebude fungovať. Teraz označte všetkých 5 (alebo iný váš počet) tlačidiel a skonvertujte ich všetky do jedného movieclipu. Pomenujte ho zoznam. Posunte tento movieclip na X=42 alebo ľubovolnú inú pozíciu ktorú chcete aby bol ľavý okraj menu. Teraz na tretej vrstve nakreslite obdĺžnik taký veľký akú oblasť chcete zobraziť vo výsledku a spravte z tejto vrstvy masku. Týmto spôsobom zakryjeme okraje ktoré nechceme aby bolo vidieť keď sa menu začne pohybovať. Maskovacia vrstva by mala vyzerať takto:



Teraz na druhej vrstve vytvorte dve tlačidlá a pomenujte ich left a right . Presunte jedno na ľavú a druhé na pravú stranu scény. Tie budú slúžiť ako spúšťač rolovania keď nad ne prejdete kurzorom myši. Teraz vyberte prvú vrstvu, otvorte actions panel (F9) a vložte nasledovný actionscript kód:



// function that moves the buttons to right
function MOVEright(){
	zoznam.x=zoznam.x+5;
	if (zoznam.x>42) {
		zoznam.x=42;	//stops the moving if the list hits the edge 
	}
}
//function that moves the buttons to left
function MOVEleft(){
	zoznam.x=zoznam.x-5;
	if (zoznam.x<-496) {
		zoznam.x=-496;	//stops the moving if the list hits the other edge 
	}
}

// function that moves the list of buttons if mouse cursor hovers over moving buttons
// on left or right side and calls the moving functions to move the list of buttons
this.addEventListener( Event.ENTER_FRAME, handleCollision);
function handleCollision( e:Event ):void {
	var _point:Point=localToGlobal(new Point(mouseX,mouseY));
	
	if (right.hitTestPoint(_point.x,_point.y,true)) {		
		MOVEright();
	}	
	if (left.hitTestPoint(_point.x,_point.y,true)) {
		MOVEleft();
	} 
}

//adding functionality to all the buttons
zoznam.brave_btn.addEventListener(MouseEvent.CLICK, BRAVEbtnclick);
function BRAVEbtnclick(ev:MouseEvent):void
{
	var BRAVEurl:URLRequest = new URLRequest("http://google.com"); 
	navigateToURL(BRAVEurl,"_blank");
}

zoznam.skyfall_btn.addEventListener(MouseEvent.CLICK, SKYFALLbtnclick);
function SKYFALLbtnclick(ev:MouseEvent):void
{
	var SKYFALLurl:URLRequest = new URLRequest("http://google.com"); 
	navigateToURL(SKYFALLurl,"_blank");
}

zoznam.iceage_btn.addEventListener(MouseEvent.CLICK, ICEAGEbtnclick); 
function ICEAGEbtnclick(ev:MouseEvent):void
{
	var ICEAGEurl:URLRequest = new URLRequest("http://google.com"); 
	navigateToURL(ICEAGEurl,"_blank");
}

zoznam.expandables_btn.addEventListener(MouseEvent.CLICK, EXPANDbtnclick);
function EXPANDbtnclick(ev:MouseEvent):void
{
	var EXPANDurl:URLRequest = new URLRequest("http://google.com"); 
	navigateToURL(EXPANDurl,"_blank");
}

zoznam.batman_btn.addEventListener(MouseEvent.CLICK, BATMANbtnclick);
function BATMANbtnclick(ev:MouseEvent):void
{
	var BATMANurl:URLRequest = new URLRequest("http://google.com"); 
	navigateToURL(BATMANurl,"_blank");
}

//hides most of the right click menu options
stage.showDefaultContextMenu = false;



     Riadky 1-15 sú dve funkcie ktoré posúvaju movieclip s tlačidlami doľava alebo doprava. Rýchlosť pohybu je nastavená na 5. Ak chcete zvýšiť rýchlosť tak namiesto 5 dajte vyššie číslo ak naopak spomaliť tak číslo menšie ako 5. if podmienka kontroluje či sa movieclip dostal na jeden alebo druhý nastavený okraj a ak áno tak posúvanie zastaví. V tomto prípade sú okraje natavené na 42 a -496. Tieto dve čísla závisia od dĺžky movieclipu a od polohy kde chcete aby sa zastavil. Upravte tieto dve čísla ak sa menu zastaví príliš skoro alebo neskoro. Na riadkoch 18-28 je funkcia ktorá kontroluje či sa kurzor myši dotkol lavého alebo pravého tlačidla .Ak áno tak spustí odpovedajúcu funkciu na pohyb menu do jednej alebo druhej strany podľa toho ktoré tlačidlo to bolo. Riadky 30-64 patria funkciám pre obe tieto tlačidlá. Riadok 67 odstranuje flash menu ktoré sa objaví pri pravom kliknutí myšou a redukuje ho len na základne informácie. Tento riadok nieje nevyhnutný pre fungovanie.



STIAHNUT ZDROJOVY SUBOR