妳需要壹個隱形的參照點,用它來計算圓形的下壹步的角度增量,然後再把新的角度賦予圓形。
import?flash.display.Shape;var?sp:Shape?=?new?Shape();
sp.x?=?circle_mc.x;
sp.y?=?circle_mc.y;
var?spRot:Number;
var?circle_mcRot:Number;
circle_mc.addEventListener(MouseEvent.MOUSE_DOWN,onSelected);
function?onSelected(e:MouseEvent)
{
circle_mcRot?=?circle_mc.rotation;
onMove(null);
spRot?=?sp.rotation;
circle_mc.addEventListener(MouseEvent.MOUSE_MOVE,onMove);
stage.addEventListener(MouseEvent.MOUSE_UP,onStop);
}
function?onMove(e:MouseEvent)
{
var?a:Number?=?mouseX?-?sp.x;
var?b:Number?=?mouseY?-?sp.y;
if(a?>?0)
{
sp.rotation?=?Math.atan(b/a)?*?180?/?Math.PI;
}
else?if(a?<?0)
{
sp.rotation?=?Math.atan(b/a)?*?180?/?Math.PI?+?180;
}
if(e)
{
circle_mc.rotation?=?circle_mcRot?+?sp.rotation?-?spRot;
e.updateAfterEvent();
}
}
function?onStop(e:MouseEvent)
{
circle_mc.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);
stage.addEventListener(MouseEvent.MOUSE_UP,onStop);
}