forked from: 矢印
こういう回転ではなくて、
矢印の中心を軸に回転させたいのですがどうしたらいいのでしょうか?
どうぞよろしくお願いします。
/**
* Copyright narutohyper ( http://wonderfl.net/user/narutohyper )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/WY72
*/
// forked from 084's 矢印
//こういう回転ではなくて、
//矢印の中心を軸に回転させたいのですがどうしたらいいのでしょうか?
//どうぞよろしくお願いします。
package {
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite {
private var arrow:Sprite;
public function Main():void {
arrow = new Sprite();
with (arrow.graphics) {
lineStyle(1, 0, 1);
beginFill(0xffff00);
//moveTo(60, 70);
//lineTo(90, 70);
//lineTo(90, 60);
//lineTo(120, 80);
//lineTo(90, 100);
//lineTo(90, 90);
//lineTo(60, 90);
//Arrowの中心を0,0にするのが一番手っ取り早い
//x=60,y=60,width=60,height=40の矢印なので、
//全ての座標を x-=(60+60/2) y-=(60+40/2) とすれば0,0を中心とした矢印が出来上がる
//中心トンボ
moveTo(0,-5);
lineTo(0,5);
moveTo(-5,0);
lineTo(5,0);
//矢印
moveTo(60-90, 70-80);
lineTo(90-90, 70-80);
lineTo(90-90, 60-80);
lineTo(120-90, 80-80);
lineTo(90-90, 100-80);
lineTo(90-90, 90-80);
lineTo(60-90, 90-80);
endFill();
}
//ずらした分を移動
arrow.x=90
arrow.y=80
this.addChild(arrow);
arrow.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void {
var dx:Number = mouseX-arrow.x;
var dy:Number = mouseY-arrow.y;
var radians:Number = Math.atan2(dy, dx);
event.target.rotation = radians * 180 / Math.PI;
}
}
}