Det skal du få. Jeg skal lige sige at jeg er ikke er AS3-mester, så det er lidt hjemmestrikagtigt
Opsætningen er således:
1 frame hvor der er en stop() i topppen. På et layer er der et MovieClip der har instance-navnet menuOption
Koden, som så lægges umiddelbart efter stop():
var speedY:Number = 0;
var speedX:Number = 0;
var radius:Number = menuOption.height / 2;
var controlSpeed:Boolean = true;
addEventListener (Event.ENTER_FRAME, enterFrameHandler);
function enterFrameHandler (e:Event):void {
//Vi checker om musen er over MovieClippet og hvis ikke er farten bestemt her
if(speedY > 0 && controlSpeed == true){
speedY = 7;
} else if(controlSpeed == true){
speedY = -7;
}
speedX += 0;
menuOption.y += speedY;
menuOption.x += speedX;
//Check om MovieClippet har ramt bund eller top
if (menuOption.y + radius > stage.stageHeight) {
menuOption.y = stage.stageHeight - radius;
speedY *= -1;
} else if (menuOption.y - radius < 0) {
menuOption.y = 0 + radius;
speedY *= -1;
}
}
//Her er så lidt kode, der ændrer hastigheden, når man holder musen over
menuOption.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
menuOption.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
function mouseOverHandler(e:Event):void{
controlSpeed = false;
if(speedY > 0){
speedY = 1;
} else {
speedY = -1;
}
}
function mouseOutHandler(e:Event):void{
controlSpeed = true;
}
Det er henholdsvis 7 og 1, du skal lave om på for at ændre farten.
En del af koden kommer fra denne side:
http://flashmymind.com/Tutorials/Actionscript/Advanced/physics.phpSå jeg har kun rettet lidt. Derfor må du også prøve dig lidt frem med at rette lidt her og der - Det var sådan jeg fik det til at virke.
Indlæg senest redigeret d. 03.02.2009 16:13 af Bruger #10572