跟随鼠标旋转这问题,看试很简单,往往很多人做成后,只是一侧会旋转。其实他们忽略了Math.atan与Math.atan2的区别
如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package{ import flash.display.sprite import flash.events.Event public class RotateMouse extends Sprite{ private function var arrow:Arrow public function RotateMouse(){ arrow=new arrow addChild(arrow) arrow.x=stage.stageWidth/2 arrow.y=stage.stageHeight/2 addEventListener(Event.ENTER_FRAME,onEnterFrame) } public function onEnterFrame{ var dx:Number=mouseX-arrow.x var dy:Number=mouseY-arrow.y var radians:Number=Math.atan2(dy,dx) arrow.rotation=radians*180/Math.PI } } } |
注:arrow是事先画好图象的as文件
这简简单单语句,很多人误写2个函数
1):Math.atan2写成Math.atan 这样当鼠标在arrow左侧是,arrow不会跟随鼠标动,而是背离它
2):Math.atan2(dy,dx)写成Math.atan2(dx,dy) 说明你粗心或还没完全掌握三角函数