2013-03-16 81 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)之類的東西來傳遞其他類型的動作事件信息。