Button speel mouse_out niet

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
Als ik snel met de muis over mijn knoppen beweeg, dan word de mouse_over event gestart. maar de mouse_out word niet gestart.

Dit zal best een beginners fout/probleem zijn. Maar ik an geen oplossing verzinnen/vinden.

Kan iemand mij ermee helpen?

mijn AC3 is

Code:
// Set up knoppen
b1.butTekst.buttText.text = "Home";
b1.addEventListener(MouseEvent.ROLL_OVER, Over);
b1.addEventListener(MouseEvent.ROLL_OUT, Out);
b1.addEventListener(MouseEvent.CLICK, Click);
b2.butTekst.buttText.text = "Contact";
b2.addEventListener(MouseEvent.ROLL_OVER, Over1);
b2.addEventListener(MouseEvent.ROLL_OUT, Out1);
b2.addEventListener(MouseEvent.CLICK, Click1);
b3.butTekst.buttText.text = "Portfolio";
b3.addEventListener(MouseEvent.ROLL_OVER, Over2);
b3.addEventListener(MouseEvent.ROLL_OUT, Out2);
b3.addEventListener(MouseEvent.CLICK, Click2);
// Setup knop functies
// Knop b1
function Over(event:MouseEvent):void
{
	b1.gotoAndPlay(2);
}

function Out(event:MouseEvent):void
{
	b1.gotoAndPlay(6);
}
function Click(event:MouseEvent):void
{
	gotoAndPlay(1);
}
// Knop b2
function Over1(event:MouseEvent):void
{
	b2.gotoAndPlay(2);
}

function Out1(event:MouseEvent):void
{
	b2.gotoAndPlay(6);
}
function Click1(event:MouseEvent):void
{
	gotoAndPlay(5);
}
// Knop b3
function Over2(event:MouseEvent):void
{
	b3.gotoAndPlay(2);
}

function Out2(event:MouseEvent):void
{
	b3.gotoAndPlay(6);
}
function Click2(event:MouseEvent):void
{
	gotoAndPlay(10);
}
stop();

ik heb het ook online gezet. www.morphius.nl
 
ROLL_OVER? Ik zou het proberen met MOUSE_OVER en MOUSE_OUT. Kijk eens of dat beter werkt :)

(of is dit actionscript 2?)

edit: sorry ik zie nu dat het AS3 is.

Je kan trouwens ook gewoon een aparte class maken voor die buttons. Dan hoef je niet voor elke button drie aparte functies te schrijven ;-) Als je dat nuttig lijkt kan ik je daar wel mee helpen :) Dat is 3 minuutjes werk ofzo :)

Ook is je tekst selecteerbaar waardoor je muiscursor verandert. Ik zou hiervoor je tekstvelden veranderen van dynamic naar static, dat ziet er (naar mijn idee) wat mooier uit :)
 
Laatst bewerkt:
Geen probleem :)

Dit is de code die ik heb geschreven:

Code:
package
{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	
	public class MenuButton extends MovieClip
	{
		public function MenuButton():void
		{
			addEventListener(MouseEvent.MOUSE_OVER, onMouseOver, false, 0, true);
			addEventListener(MouseEvent.MOUSE_OUT, onMouseOut, false, 0, true);
			addEventListener(MouseEvent.CLICK, onMouseClick, false, 0, true);
		}
		
		private function onMouseOver(e:MouseEvent):void
		{
			gotoAndPlay(2);
		}
		
		private function onMouseOut(e:MouseEvent):void
		{
			gotoAndPlay(6);
		}
		
		private function onMouseClick(e:MouseEvent):void
		{
			gotoAndPlay(1);
		}
	}
}

Je zet dit in een apart actionscript 3 bestand en dat geef je de naam 'MenuButton.as'. Vervolgens zet je het in dezelfde map als je .fla bestand.

Waar je vervolgens ook op moet letten is dat je de eigenschappen van je knoppen goed zet. Hiervoor open je je library, rechtsklik je op een button en kies je voor 'properties'. Zorg hier dat de opties 'Export for ActionScript' en 'Export in first frame' aangevinkt zijn. De classname mag je zelf verzinnen, en de baseclass moet zijn 'MenuButton'.

Dit moet je herhalen voor alle drie de knoppen.

Overigens heb ik nu de frame nummers hard gecodeerd (gotoAndPlay(2)). Als je later iets aan die knoppen wilt veranderen is dat niet zo handig aangezien de frames kunnen verschuiven ;-) Je kan beter labels aanmaken en daar naar verwijzen. Dit doe je door in de MovieClip een nieuwe layer aan te maken. Maak op die layer vervolgens een paar lege keyframes aan en klik daarop. Je ziet dan in je property inspector het vakje 'label' staan. Daar kan je een naam invullen, zoals 'over'. Vervolgens verwijs je in de code ook naar dit label 'over' in plaats van naar '2'.

Ik zal vast wat niet duidelijk genoeg hebben gemaakt, dus stel gerust al je vragen die je hebt :)
 
is het ook mogelijk dat mouse out pas start als de movie van mouse over geëindigd is. En dat de movie van mouse over niet op het einde blijft hangen. Zo als het nu gebeurt?
 
Je eerste vraag is zeker mogelijk, ik zal even kijken hoe ik dat efficient kan coderen. Je tweede vraag begrijp ik (denk ik) niet goed. Wil je dat de mouse over zichzelf blijft herhalen zolang je op de knop staat?
 
du zijn niet 2 vragen. Ik bedoel alleen of het mogelijk is dat de mouse nut movie pas begint als de mouse over movie is geëindigd. Ook al ben ik al met de mouse voor het einde van de movie van de knop.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan