intrecttranslator.as

来自「Basic AS3 Geom Package」· AS 代码 · 共 91 行

AS
91
字号
package de.geom
{
	import flash.display.Sprite;
	
	
	import de.math.UintScaler;
	import de.geom.IntRectangle;
	import de.geom.IntPoint;
	
	
	import org.aswing.ASColor;
	import org.aswing.graphics.*
	  
	
	public class IntRectTranslator
	{
		
		private var _startRect:IntRectangle;
		private var _destRect:IntRectangle;
		
		private var _xScaler:UintScaler;
		private var _yScaler:UintScaler;
		
		private var _resultRect:IntRectangle;
		
		private var _checkMove:Boolean;
		
		
		public function IntRectTranslator(startRect:IntRectangle,destRect:IntRectangle,checkMove:Boolean=false){
			
			_checkMove=checkMove
			
			_startRect=startRect;
			_destRect=destRect;
			
			_xScaler=new UintScaler(_startRect.x,_startRect.x+_startRect.width,_destRect.x,_destRect.x+_destRect.width,_checkMove);
			_yScaler=new UintScaler(_startRect.y,_startRect.y+_startRect.height,_destRect.y,_destRect.y+_destRect.height,_checkMove);
			
			normalize();
		
		}
		
		public function updateRange(startRect:IntRectangle,destRect:IntRectangle):IntRectangle{
			
			_xScaler=new UintScaler(startRect.x,startRect.x+startRect.width,destRect.x,destRect.x+destRect.width);
			_yScaler=new UintScaler(startRect.y,startRect.y+startRect.height,destRect.y,destRect.y+destRect.height);
			
			return normalize();
			
		}
		
		public function getResult():IntRectangle{
			
			return normalize();
			
		}
		
		public function drawResultRect (target:Sprite):void{
			
			var g:Graphics2D = new Graphics2D(target.graphics);
  			var color:ASColor = new ASColor(0xff6600)
  			/*
  			var pen:Pen = new Pen(color);
  			g.drawRectangle(pen,_resultRect.x,_resultRect.y,_resultRect.width,_resultRect.height);
  			*/
  			var brush:SolidBrush=new SolidBrush(ASColor.ORANGE)
  			g.fillRectangle(brush,_resultRect.x,_resultRect.y,_resultRect.width,_resultRect.height);
  			
  			//trace(_resultRect+ "___"+_startRect)
  			 
		}
		
		
		private  function normalize():IntRectangle{
			
			var result:IntPoint=new IntPoint();
			
			var resultRect:IntRectangle=new IntRectangle()
			
			resultRect.x=_xScaler.getResult(_startRect.x);
			resultRect.y=_yScaler.getResult(_startRect.y);
			resultRect.width=_xScaler.getResult(_startRect.width);
			resultRect.height=_yScaler.getResult(_startRect.height);
			
			_resultRect=resultRect;
			
			return resultRect;
		}
		
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?