Flash 旋转箭头

以下是Math.atan2、rotation的一个用例:

1、新建一fla,命名RotateToMouse.fla

2、新建一as文件命名RotateToMouse.as、并与RotateToMouse.fla关联

3、新建一as文件命名Arrow.as,在里面绘制一箭头

Arrow.as:

package 
{
import flash.display.Sprite;
public class Arrow extends Sprite
{
public function Arrow()
{
init();
}
public function init():void
{
graphics.lineStyle(1,0,1);
graphics.beginFill(0xffff00);
graphics.moveTo(-50,-25);
graphics.lineTo(0,-25);
graphics.lineTo(0,-50);
graphics.lineTo(50,0);
graphics.lineTo(0,50);
graphics.lineTo(0,25);
graphics.lineTo(-50,25);
graphics.lineTo(-50,-25);
graphics.endFill();
}
}

}

RotateToMouse.as:

package 
{
import flash.display.Sprite;
import flash.events.Event;
import Arrow;


public class RotateToMouse extends Sprite
{
private var arrow:Arrow;
public function RotateToMouse()
{
init();
}
private function init():void
{
arrow = new Arrow();
addChild(arrow);
arrow.x = stage.stageWidth / 2;
arrow.y = stage.stageHeight / 2;
addEventListener(Event.ENTER_FRAME,OnEnterFrame);
}
private function OnEnterFrame(event:Event):void
{
var dx:Number = mouseX - arrow.x;
var dy:Number = mouseY - arrow.y;
//反正切函数Math.atan2()求弧度值
var radians:Number = Math.atan2(dy,dx);
arrow.rotation = radians * 180 / Math.PI;
}
}

}

Ctrl+Enter导出效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西溪漫步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值