 		}
 		
 		
-		/** 單隻手指使用控制按鈕 放大縮小旋轉 **/
-		private function resizeAndRotationByCtrlButton(touches:Vector.<Touch>):void
-		{
-			
-				var touchA:Touch = touches[0];
-				var touchB:Touch = touchA.clone();		//模擬B點		
-				var n = touchA.getLocation(this);
-				//鏡射A點坐標
-				touchB.globalX = n.x * 1
-				touchB.globalY = n.y * -1
-							
-				var currentPosA:Point  = touchA.getLocation(this);
-				var previousPosA:Point = touchA.getPreviousLocation(this);
-				
-				//鏡射A點
-				var currentPosB:Point  = currentPosA.clone();
-				currentPosB.x *=-1;
-				currentPosB.y *=-1;				
-				//鏡射A點
-				var previousPosB:Point  = previousPosA.clone();
-				previousPosB.x *=-1;
-				previousPosB.y *=-1;
-				
-				var currentVector:Point  = currentPosA.subtract(currentPosB);
-				var previousVector:Point = previousPosA.subtract(previousPosB);
-				
-				var currentAngle:Number  = Math.atan2(currentVector.y, currentVector.x);
-				var previousAngle:Number = Math.atan2(previousVector.y, previousVector.x);
-				
-				var deltaAngle:Number = currentAngle - previousAngle;
-				
-				// rotate
-				rotation += deltaAngle;
-				
-				// scale
-				var sizeDiff:Number = currentVector.length / previousVector.length;
-				scaleX *= sizeDiff;
-				scaleY *= sizeDiff;
-				
-				//_ctrlButton 保持原比例
-				if(_ctrlButton){
-					_ctrlButton.scaleX /= sizeDiff
-					_ctrlButton.scaleY /= sizeDiff
-				}
-				
-				
-			
-		}
-		
-		/** 使用兩隻手指 使用放大縮小旋轉 保留官方功能 **/
-		private function resizeAndRotationByTwoFingers(touches:Vector.<Touch>):void
-		{
-			//保留官方原本兩隻手指操作的功能
-			// two fingers touching -> rotate and scale
-			var touchA:Touch = touches[0];
-			var touchB:Touch = touches[1];
-			
-			var currentPosA:Point  = touchA.getLocation(parent);
-			var previousPosA:Point = touchA.getPreviousLocation(parent);
-			var currentPosB:Point  = touchB.getLocation(parent);
-			var previousPosB:Point = touchB.getPreviousLocation(parent);
-			
-			var currentVector:Point  = currentPosA.subtract(currentPosB);
-			var previousVector:Point = previousPosA.subtract(previousPosB);
-			
-			var currentAngle:Number  = Math.atan2(currentVector.y, currentVector.x);
-			var previousAngle:Number = Math.atan2(previousVector.y, previousVector.x);
-			var deltaAngle:Number = currentAngle - previousAngle;
-			
-			// update pivot point based on previous center
-			var previousLocalA:Point  = touchA.getPreviousLocation(this);
-			var previousLocalB:Point  = touchB.getPreviousLocation(this);
-			trace(previousLocalA , previousLocalB)
-			
-			pivotX = (previousLocalA.x + previousLocalB.x) * 0.5;
-			pivotY = (previousLocalA.y + previousLocalB.y) * 0.5;
-			
-			// update location based on the current center
-			x = (currentPosA.x + currentPosB.x) * 0.5;
-			y = (currentPosA.y + currentPosB.y) * 0.5;
-			
-			// rotate
-			rotation += deltaAngle;
-			
-			// scale
-			var sizeDiff:Number = currentVector.length / previousVector.length;
-			scaleX *= sizeDiff;
-			scaleY *= sizeDiff;
-		}
-		
-		/**檢查是否touch 控制按鈕**/
-		private function isTouchCtrlButton(target:*):Boolean
-		{			
-			
-			var _do		:DisplayObject
-			var _doc	:DisplayObjectContainer
-
-			if(_ctrlButton is  DisplayObjectContainer){
-				_doc = _ctrlButton as DisplayObjectContainer
-				return _doc.contains(target)
-			} 
-			else if(_ctrlButton is DisplayObject)
-			{
-				_do = _ctrlButton as DisplayObjectContainer
-				return _do == target
-			} 
-			return false			
-		}
-
-		private function onTouch(event:TouchEvent):void
+		protected function onTouch(event:TouchEvent):void
 		{
 			var touches:Vector.<Touch> = event.getTouches(this, TouchPhase.MOVED);
 			var touch:Touch		
 			
+			
 			touch = event.getTouch(this, TouchPhase.BEGAN);			
 			onTouchBegan(touch)
 			
 			//一隻手指
 			if (touches.length == 1)
 			{
-								
 				//檢查是否是Ctrl
 				if(isTouchCtrlButton(event.target) )
 				{
-					
 					resizeAndRotationByCtrlButton(touches)
-					
-					
-				}else{
+				}
+				else
+				{
 					//一隻手指平移
 					var delta:Point = touches[0].getMovement(parent);
 					
 					x += delta.x;
 					y += delta.y;
 				}				
-				
 			}
 			else if (touches.length == 2)
 			{
+				//兩隻手指
 				resizeAndRotationByTwoFingers(touches)
 			}
 			

				throw new ArgumentError("Texture is Null!")
			}
		}
		/** 設定控制按鈕 by 物件 可以是 image sprite button **/
		public function setCtrlButtonInitByObject( obj:DisplayObject ):void
		{

//			_useCtrlButton = value;
//		}
		
		//Const Vars
		protected static const CTRL_BUTTON_NAME:String = "HandlectrlBtn"
		public static const ALIGN_CENTER:String = "center"
		public static const ALIGN_LT:String = "LT"
		
		
		
		//UI
		protected var _contents:DisplayObject		
		protected var _ctrlButton:DisplayObject
		protected var _selectedGroup:Sprite
		
		
		public function HandleSheet(contents:DisplayObject=null)
