在我使用AndEngine的游戏应用程序中,我试图检测按钮Sprite上的滑动动作,当手指在按钮Sprite上方时放大按钮,并在手指滑动时将刻度设置回1.0f雪碧。含义:
我试过以下:
myButton = new Sprite(posX, posY, resourcesManager.rightButtonRegion, vbom) {
@Override
public boolean onAreaTouched(final TouchEvent pAreaTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
switch (pAreaTouchEvent.getAction()) {
case TouchEvent.ACTION_DOWN:
this.setScale(1.25f);
break;
case TouchEvent.ACTION_UP:
this.setScale(1.0f);
break;
case TouchEvent.ACTION_MOVE:
this.setScale(1.0f);
break;
case TouchEvent.ACTION_OUTSIDE:
this.setScale(1.0f);
break;
}
return true;
}
};
但是,如果我在按钮外面轻扫并将手指移到按钮上,则按钮的尺寸不会放大。欣赏任何指向如何实现这种效果的指针。如果使用SurfaceView有一个非Andengine解决方案,我也会对此有所了解。
答案 0 :(得分:4)
您只能在TouchEvent.ACTION_DOWN
上设置比例。当您滑入触摸区域时,它不会注册ACTION_DOWN
,因为您没有按下您所在的区域,而是刚刚进入该区域。如果您的触摸序列不在case TouchEvent.ACTION_MOVE:
,也许您可以检查第一次进入该区域时放大的ACTION_DOWN
{/ 1}}。
如果这不起作用,您可以使用提供其他类型的动作事件信息的onGenericMotionEvent(MotionEvent)
之类的内容。