In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: 矢印

こういう回転ではなくて、
矢印の中心を軸に回転させたいのですがどうしたらいいのでしょうか?
どうぞよろしくお願いします。
Get Adobe Flash player
by narutohyper 03 Feb 2010
    Embed
/**
 * 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; 
		}
    }

}