2011-11-09 59 views
0

我是Android遊戲開發新手。android - 動畫預防點擊事件

我有一個遊戲,我需要點擊移動按鈕或TextViews(不重要)。 我擴展了FrameLayout類,並添加了一些按鈕(通過addView方法)。然後我嘗試使用TranslateAnimation,但它似乎沒有更新點擊事件的座標(即,當我點擊新位置上的移動按鈕時,該事件無法處理,但是當我點擊原始位置時(它所在的位置開始移動),即使按鈕離開這個地方,該事件也會被捕獲)。

問題:如何創建處理點擊事件的可移動標籤(或按鈕)?我需要使用像命中測試這樣的技巧嗎?或者,我可能會對遊戲使用完全錯誤的方法(例如,我需要繪製文本而不是在佈局中添加視圖)?如果你能提出另一種解決方案,我會很高興。

回答

2

這是Android中動畫的限制。他們在Android 3.0中修復了這個問題。讀到這裏瞭解更多信息http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html

摘錄:

「最後,以前的動畫改變了目標對象的視覺外觀...但他們並沒有真正改變物體本身你可能遇到了這個問題,比方說你想要將一個按鈕從屏幕的一側移動到另一側,你可以使用一個TranslateAnimation這樣做,並且按鈕會很開心地滑動到屏幕的另一側。當動畫完成後,它會很高興地重新回到它原來的位置,所以你在Animation上找到setFillAfter(true)方法並再次嘗試,這次按鈕保持在plac e在它被動畫的位置。你可以點擊它來驗證 - 嘿! 按鈕怎麼沒有點擊?問題在於,動畫在按鈕被繪製的地方改變,但不在容器內物理存在按鈕的位置。如果你想點擊該按鈕,你必須點擊它用來住,或者位置,作爲一個更有效的解決方案(和一個只是一點點給你的用戶更有用),你必須編寫代碼,以真正改變按鈕的位置在佈局時,動畫結束。」

+1

所以,似乎需要編寫自己的動畫類?事實上,有沒有更好的解決辦法? – 2xMax

+0

我居然不知道如何在android <3.0中解決這個問題,我只知道問題的原因是什麼。 – hovanessyan