2009-08-27 78 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)) 
} 

同时,检查这些按钮的文件;您可以通过直接检查按钮的翻转状态来避免引入额外的变量。