get bound 2d

by lizhi
...
@author lizhi
♥0 | Line 44 | Modified 2016-03-01 13:13:31 | MIT License
play

ActionScript3 source code

/**
 * Copyright lizhi ( http://wonderfl.net/user/lizhi )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/AFQy
 */

package
{
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.geom.Matrix;
	import flash.geom.Point;
	
	/**
	 * ...
	 * @author lizhi
	 */
	public class Main extends Sprite 
	{
		private var s:Sprite;
		private var w:Number = 100;
		private var h:Number = 50;
		public function Main() 
		{
			s = new Sprite;
			s.graphics.beginFill(0xff0000);
			s.graphics.drawRect(0, 0, 100, 50);
			addChild(s);
			
			s.x = 300;
			s.y = 200;
			addEventListener(Event.ENTER_FRAME, enterFrame);
		}
		
		private function enterFrame(e:Event):void 
		{
			s.rotation++;
			
			var m:Matrix = s.transform.matrix;
			graphics.clear();
			graphics.lineStyle(0);
			var a:Number = m.a * w;
			var b:Number = m.c * h;
			var c:Number = m.d * h;
			var d:Number = m.b * w;
			var minX:Number = Math.min(0, a, b, a + b);
			var maxX:Number = Math.max(0, a, b, a + b);
			
			var minY:Number = Math.min(0, c, d, c + d);
			var maxY:Number = Math.max(0, c, d, c + d);
			
			graphics.moveTo(minX + m.tx, minY + m.ty);
			graphics.lineTo(maxX + m.tx, minY + m.ty);
			graphics.lineTo(maxX + m.tx, maxY + m.ty);
			graphics.lineTo(minX + m.tx, maxY + m.ty);
			graphics.lineTo(minX + m.tx, minY + m.ty);
		}
	}
	
}