2013-03-16 47 views
0

在我使用AndEngine的游戏应用程序中,我试图检测按钮上的滑动动作Sprite在手指放在按钮Sprite上时放大按钮,并将缩放比例设置回1.0f当手指滑过雪碧时。含义:在Android中检测滑动区域

  • 手指按住外按钮区域
  • 扫过按钮(和按钮大小时),但保持手指按住
  • 继续刷卡开关按钮和按键可以追溯到原单的规模。

我尝试以下操作:

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解决方案,我也很欣赏这方面的观点。

回答

4

您只能在TouchEvent.ACTION_DOWN上设置比例。当您滑入您的触摸区域时,它不会注册ACTION_DOWN,因为您没有按下您所在的区域,而是刚刚进入该区域。如果您的触摸顺序不是ACTION_DOWN,也许您可​​以在第一次进入该区域时放入一张支票,用于放大您的case TouchEvent.ACTION_MOVE:

如果这不起作用,您可以使用诸如onGenericMotionEvent(MotionEvent)之类的东西来传递其他类型的动作事件信息。