2009-07-23 49 views
0

我有一個actionscript3項目的以下問題。使用actionscript3的組滾動效果

我有一組按鈕通過坐在持有人精靈中的類來設置。

當我翻轉其中一個按鈕時,我會遍歷持有者中的所有按鈕,然後運行tweenlite將alpha調整爲.4,除非該名稱與當前活動按鈕匹配。

當我推出時,我將所有按鈕通過tween twite重新設置回alpha 1。

這在大部分時間都能正常工作。是我有問題如下:

  • 當我從一個按鈕,滾動直線到另一個有很多閃爍
  • 有時當我捲到另一個按鈕,它在隨後淡出再次
  • 我有一種情況,而不是將所有按鈕返回到alpha 1我需要將它們返回到初始狀態alpha。

我已經嘗試使用tweengroup,但這似乎也沒有幫助。

讓我知道你是否需要更多的細節。代碼被集成到很多其他的東西,這就是爲什麼我沒有發佈它,但如果需要我可以把東西放在一起。

謝謝。

喬希

回答

1

海事組織,你應該爲那些按鈕的類,在內部保持狀態......所以從外面,你只能調用兩個方法,讓我們說fadeDownfadeUp,上的按鈕... Buttons自己知道,他們的alhpa是什麼,如果有一個補間運行等等......將永遠殺死他們自己的補間(或繼續,如果它是正確的補間)......然後開始正確的動畫得到他們的內部狀態的正確的視覺表示......你可能會考慮使用state pattern這個事情......來保持你的代碼清潔......(簡單地使用私有類不會導致文件太多)......

另外,這樣做的一個好處是,動畫與邏輯分離,因此您可以輕鬆地在邏輯上下文之外重新使用按鈕,和/或更改動畫概念(例如,模糊的按鈕,而不是衰落下來)withouth的的邏輯沒有任何影響......

希望這有助於...;)

格爾茨

back2dos

0

爲了避免閃爍,你可以使用補間的一點點延遲,讓他們互相覆蓋(在TweenLite頁面上查看)

要將問題返回給初始alpha,簡單的if不起作用?