Перевернись и раскатайся по кнопкам - PullRequest
0 голосов
/ 27 августа 2009

У меня в гибком приложении две кнопки рядом друг с другом, ButtonA и ButtonB. Когда пользователь выполняет наведение мыши на любую из двух кнопок, я хочу, чтобы обложка при наведении курсора (overSkin) отображалась на обеих кнопках, то есть на кнопках A и B. Я пытался сделать это с помощью этого, когда пользователь перевернул кнопку B:

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

и затем, когда пользователь выкатился из кнопки B, я делаю:

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

Кнопка Я не могу сделать то же самое для кнопки А, когда пользователь входит / выходит. Это вызывает бесконечный цикл, приводящий к переполнению стека.

Есть ли другой способ сделать это?

1 Ответ

1 голос
/ 27 августа 2009

Контролируйте рекурсию явно с помощью дополнительной переменной. Для переключения в кнопке A:

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

... с той же вещью назад в кнопке B. Затем при развертывании в кнопке A:

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

Кроме того, проверьте документацию по этим кнопкам; Вы можете избежать введения дополнительной переменной, проверив состояние переключения кнопок непосредственно.

...