2011-09-05 23 views
0

我在舞臺上有一個SimpleButton,在它的單擊事件中,我使用removeChild()將其刪除。當重新添加按鈕時,它會重新添加到「超過」狀態,而不是預期的「向上」狀態。用removeChild()取出的按鈕被重新添加到它的狀態

我很確定這是一個bug,所以我已經提交了一個JIRA:http://bugs.adobe.com/jira/browse/SDK-31445,現在我的問題是如何解決它,如果有人有類似的經驗。

我已經試過什麼:

  • 使用visible = false而不是工作,但我寧願完全刪除掉期作爲我的工作可以有很多的彈出窗口/屏幕的遊戲。
  • 手動觸發​​事件 - 不起作用,並且在任何情況下,​​事件都會按預期觸發(也許在重置爲up狀態之前,它會檢查它是否添加到舞臺,找出它是不是,然後提前退出)
  • 重置舞臺焦點 - 我認爲這是舞臺焦點問題,因爲當按鈕隱藏時失去焦點,但重置它並沒有修復它。
  • 當我隱藏時,我可以暫時交換它的狀態,但這看起來像一個醜陋的修復。
+0

你可以發佈代碼嗎?因爲我覺得這不是一個錯誤,而是代碼中的一些邏輯錯誤。 –

+0

如果您點擊鏈接到jira,那麼會有一個包含項目和代碼的郵編 – divillysausages

+0

hmm,只是快速瀏覽它。對我來說似乎也是一個錯誤。我注意到我沒有在我的Flash Player或FireFox中播放它。 (我只使用IE和Chrome)。也許你應該製作自己的自定義按鈕? –

回答

1

我一直有這個問題,以及刪除一個按鈕,並添加另一個響應單獨sprite上的鼠標向上事件。IE瀏覽器鼠標不在當時的任何按鈕,但是當第一個按鈕(帶有問題的按鈕)先前被移除時,鼠標確實在它上面,所以它沒有收到mouseOut事件並保持自己處於超過狀態。使用可見性來解決這個問題,這對我的需求是可以的,但是替代方案是在將按鈕添加到顯示列表之前替換爲新的按鈕實例。

+0

感謝您的答案嘈雜。然後在按鈕上觸發mouseOut事件(從jira下載代碼,你會看到),這就是爲什麼我認爲它是一個錯誤。用新實例替換它並不是一個壞主意,但我不喜歡在我不需要時創建新對象,並且在您將Flash用於您的藝術時會中斷它(例如,藝術家可能會做圖形用戶界面,在這種情況下,它被設置爲導出的按鈕本身,只是父GUI) – divillysausages