 				case "touchstart":
 					flashType = TouchEvent.TOUCH_BEGIN;
 					flashType2 = MouseEvent.MOUSE_DOWN;
+					isButtonDown = true;
 					e.preventDefault();
 					break;
 			}

				case "touchcancel":
					flashType = TouchEvent.TOUCH_END;
					flashType2 = MouseEvent.MOUSE_UP;
					break;
				case "touchend":
					flashType = TouchEvent.TOUCH_END;
					flashType2 = MouseEvent.MOUSE_UP;
					break;
				case "touchmove":
					flashType = TouchEvent.TOUCH_MOVE;

				}
				if (hasEventListener(flashType)) {
					if(flashType!=TouchEvent.TOUCH_MOVE){
						dispatchEvent(new TouchEvent(flashType, true, false, 0, true, _mouseX, _mouseY,null,e.ctrlKey,e.altKey,e.shiftKey,(e.buttons!=null)?(e.buttons>0):isButtonDown));
					}else {
						needSendTouchMove = true;
					}
				}
				if (hasEventListener(flashType2)) {
					if(flashType2!=MouseEvent.MOUSE_MOVE){
						dispatchEvent(new MouseEvent(flashType2, true, false, _mouseX, _mouseY,null,e.ctrlKey,e.altKey,e.shiftKey,(e.buttons!=null)?(e.buttons>0):isButtonDown));
					}else {
						needSendMouseMove = e;
					}
				}
				if (flashType===TouchEvent.TOUCH_END&&hasEventListener(MouseEvent.CLICK)) {
					dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false, _mouseX, _mouseY,null,e.ctrlKey,e.altKey,e.shiftKey,(e.buttons!=null)?(e.buttons>0):isButtonDown));
				}
			}
		}
