
Код AS3:
private var _timeoutId:int = -1;
sprite.addEventListener(MouseEvent.ROLL_OVER, onSpriteMouseRollOver);
sprite.addEventListener(MouseEvent.ROLL_OUT, onSpriteMouseRollOut);
private function onSpriteMouseRollOver(event:MouseEvent):void
{
_timeoutId= setTimout(timeoutFunction, 500);
}
private function onSpriteMouseRollOut(event:MouseEvent):void
{
clearTimout();
}
private function clearTimout():void
{
if (_timeoutId != -1)
{
clearTimeout(_timeoutId);
_timeoutId = -1;
}
}
private function timeoutFunction():void
{
clearTimout();
// do something
}
По поводу того, что лучше использовать Timer вместо setTimout очень спрорный вопрос. Зачем плодить тяжелую сущность, если нам нужно просто поставить таймаут, а больше никакая информация не нужна