private void onTouch(AsTouchEvent _event) { AsMouse.setCursor(mUseHandCursor && mEnabled && _event.interactsWith(this) ? AsMouseCursor.BUTTON : AsMouseCursor.AUTO); AsTouch touch = _event.getTouch(this); if (!mEnabled || touch == null) { return; } if (touch.getPhase() == AsTouchPhase.BEGAN && !mIsDown) { mBackground.setTexture(mDownState); mContents.setScaleX(mContents.setScaleY(mScaleWhenDown)); mContents.setX((1.0f - mScaleWhenDown) / 2.0f * mBackground.getWidth()); mContents.setY((1.0f - mScaleWhenDown) / 2.0f * mBackground.getHeight()); mIsDown = true; } else { if (touch.getPhase() == AsTouchPhase.MOVED && mIsDown) { AsRectangle buttonRect = getBounds(getStage()); if (touch.getGlobalX() < buttonRect.x - MAX_DRAG_DIST || touch.getGlobalY() < buttonRect.y - MAX_DRAG_DIST || touch.getGlobalX() > buttonRect.x + buttonRect.width + MAX_DRAG_DIST || touch.getGlobalY() > buttonRect.y + buttonRect.height + MAX_DRAG_DIST) { resetContents(); } } else { if (touch.getPhase() == AsTouchPhase.ENDED && mIsDown) { resetContents(); dispatchEventWith(AsEvent.TRIGGERED, true); } } } }
private void onTouch(AsTouchEvent _event) { AsMouse.setCursor(_event.interactsWith(this) ? AsMouseCursor.BUTTON : AsMouseCursor.AUTO); }