I am trying to create a “circular” menu, where you can click on the menu buttons and a “pointer” moves to that menu button on a circle path.
i can’t figure out how to calculate the movement from one button to the next.
I know, i have to calculate the distance between the angles and i would like to “ease” pointer to that new target point.
Help would be really appreciated.
here is the code i have so far:
var angle:Number = new Number();
var centerX:Number = Stage.width/2;
var centerY:Number = Stage.height/2;
var radius:Number = 125;
var speed:Number = new Number();
var tx:Number = button1._x - centerX;
var ty:Number = button1._y - centerY;
onEnterFrame = function(){
angle = Math.atan2(ty, tx);
box._x = centerX + Math.cos(angle) * radius;
box._y = centerY + Math.sin(angle) * radius;
angle += speed;
ang = angle * 180/Math.PI;
trace(ang);
var dx:Number = centerX - box._x;
var dy:Number = centerY - box._y;
var dist:Number = Math.sqrt(dxdx + dydy);
var rot:Number = Math.atan2(dy,dx);
rot *= 180/Math.PI;
box._rotation = rot;
}
button1.onRelease = function(){
speed = -0.1;
tx = button1._x - centerX;
ty = button1._y - centerY;
trace(angle);
}
button2.onRelease = function(){
speed = -0.1;
tx = button2._x - centerX;
ty = button2._y - centerY;
trace(angle);
}
button3.onRelease = function(){
speed = -0.1;
tx = button3._x - centerX;
ty = button3._y - centerY;
trace(angle);
}
button4.onRelease = function(){
speed = -0.1;
tx = button4._x - centerX;
ty = button4._y - centerY;
trace(angle);
}
button5.onRelease = function(){
speed = -0.1;
tx = button5._x - centerX;
ty = button5._y - centerY;
trace(angle);
}
fla is attached as well as a screenshot.