AS3 角度算法与实现
学习as3制作动画的时候发现一个好例子,箭头指向鼠标方向很有意思跟大家分享一下,都很简单的例子,箭头实体类代码如下
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();
}
}
}
{
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();
}
}
}
package
{
import flash.display.SpreadMethod;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.ui.Keyboard;
public class test extends Sprite
{
private var arrow:Arrow;
public function test()
{
init();
}
public function init():void{
arrow = new Arrow();
addChild(arrow);
arrow.x = stage.stageWidth/2;
arrow.y = stage.stageHeight/2;
addEventListener(Event.ENTER_FRAME,ratation);
}
public function ratation(event:Event):void{
var dy:Number = mouseY-arrow.y;
var dx:Number = mouseX-arrow.x;
var ratation:Number = Math.atan2(dy,dx);
arrow.rotation = ratation*180/Math.PI;
}
}
}
{
import flash.display.SpreadMethod;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.ui.Keyboard;
public class test extends Sprite
{
private var arrow:Arrow;
public function test()
{
init();
}
public function init():void{
arrow = new Arrow();
addChild(arrow);
arrow.x = stage.stageWidth/2;
arrow.y = stage.stageHeight/2;
addEventListener(Event.ENTER_FRAME,ratation);
}
public function ratation(event:Event):void{
var dy:Number = mouseY-arrow.y;
var dx:Number = mouseX-arrow.x;
var ratation:Number = Math.atan2(dy,dx);
arrow.rotation = ratation*180/Math.PI;
}
}
}
相关文章