 		private var _x:Number = 0;
 		private var _y:Number = 0;
 		private var _z:Number = 0;
+		private var isButtonDown:Boolean = false;
 		
 		/**
 		 * Stage is a singular instance per window and cannot be instantiated twice.

				_mouseY = e.pageY - canvas.offsetTop;
				if (hasEventListener(flashType)) {
					if(flashType!=MouseEvent.MOUSE_MOVE){
						dispatchEvent(new MouseEvent(flashType,true,false,_mouseX,_mouseY,null,e.ctrlKey,e.altKey,e.shiftKey,e.buttons>0,e.wheelDelta));
					}else {
						needSendMouseMove = e;
					}

			//if (delta >= interval) {
			//	lastUpdateTime = now - (delta % interval);
				if (needSendMouseMove) {
					dispatchEvent(new MouseEvent(MouseEvent.MOUSE_MOVE, true, false, _mouseX, _mouseY,null,needSendMouseMove.ctrlKey,needSendMouseMove.altKey,needSendMouseMove.shiftKey,(needSendMouseMove.buttons!=null)?(needSendMouseMove.buttons>0):isButtonDown));
					needSendMouseMove = null;
				}
				if (needSendTouchMove) {
