2009-08-27 1 views
0

フレックスアプリにはButtonAとButtonBの2つのボタンが並んでいます。 ユーザーが2つのボタンのいずれかでマウスをロールオーバーすると、ロールオーバースキン(オーバースキン)が両方のボタン、つまりボタンAとボタンBに表示されます。 私はこれを使用しようとしましたが、ボタンの上にロールオーバーしてロールアウトする

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

し、ユーザーがボタンBIのロールアウト時に行います:ボタンBの上に巻かれたユーザロールイン/アウト、私はボタンAに同じことを行うことはできません

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

ボタンを。スタックオーバーフローの原因となる無限ループが発生します。

これを行う方法は他にありますか?

答えて

1

余分な変数を使用して再帰を明示的に制御します。同じ事で...

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

後方ボタンBに続いてボタンAの展開に:ボタンAでのロールオーバーについて

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

また、これらのボタン上のドキュメントをチェックしてください。ボタンのロールオーバー状態を直接チェックすることで余分な変数を導入することを避けることができます。