2009-08-27 39 views
0

我的兩個按鈕在我的flex應用程序中彼此相鄰,ButtonA和ButtonB。 當用戶在兩個按鈕的任何一個上進行鼠標滾動時,我希望在兩個按鈕(即按鈕A和按鈕B)上都顯示翻轉皮膚(overSkin)。 我試圖在用戶滑過按鈕B:翻轉並在按鈕上滾動

ButtonA.dispatchEvent(new MouseEvent(MouseEvent.ROLL_OVER)); 

,然後當用戶推出按鈕BI的做:

ButtonA.dispatchEvent(new MouseEvent(MouseEvent.ROLL_OUT)); 

按鈕我不能做同樣的上按鈕時輸入/輸出的用戶卷。它會導致無限循環,導致堆棧溢出。

有沒有其他方法可以做到這一點?

回答

1

用額外的變量顯式地控制遞歸。對於側翻按鈕A:

if(!rolledIntoButtons) { 
    rolledIntoButtons = true 
    ButtonB.dispatchEvent(new MouseEvent(MouseEvent.ROLL_OVER)) 
} 

...與向後同樣的事情在按鈕B.然後在部署按鈕答:

if(rolledIntoButtons) { 
    rolledIntoButtons = false 
    ButtonB.dispatchEvent(new MouseEvent(MouseEvent.ROLL_OUT)) 
} 

同時,檢查這些按鈕的文件;您可以通過直接檢查按鈕的翻轉狀態來避免引入額外的變量。