Здравствуйте!
Хочу сделать кнопку, которая при наведении на нее указателя мыши плавно увеличивает размер. Когда указатель мыши уходит, кнопка так же плавно уменьшается до исходного размера. Для этого воспользовался библиотекой TweenLite.
Код AS3:
this.button.addEventListener(MouseEvent.MOUSE_OVER, _onMouseOver);
this.button.addEventListener(MouseEvent.MOUSE_OUT, _onMouseOut);
private function _onMouseOut(e:MouseEvent):void
{
TweenLite.to(this, 0.5, { scaleX:1, scaleY:1, ease:Strong.easeInOut } );
}
private function _onMouseOver(e:MouseEvent):void
{
TweenLite.to(this, 0.5, { scaleX:1.2, scaleY:1.2, ease:Strong.easeInOut } );
}
Проблема в том, что когда я навожу мышь на кнопку и она начинает масштабироватся, событие MOUSE_OVER и MOUSE_OUT срабатывает несколько раз, из-за этого кнопка увеличивается рывками. Пока что не придумал ничего умнее, чем сделать флаг (например, _scaleFlag), который будет равен true, если кнопка увеличивается в данный момент, а потом написать вот так:
Код AS3:
private function _onMouseOut(e:MouseEvent):void
{
if (!_scaleFlag)
TweenLite.to(this, 0.5, { scaleX:1.2, scaleY:1.2, ease:Strong.easeInOut } );
}
Существует ли более грамотное решение?