
Код AS3:
import flash.utils.setInterval;
import flash.utils.Timer;
import flash.events.TimerEvent;
stage.addEventListener(MouseEvent.MOUSE_MOVE,аnimating);
var delay:int=0;
var t:Timer = new Timer(delay);
t.addEventListener(TimerEvent.TIMER, selectSide)
function аnimating(e:MouseEvent):void {
t.stop()
t.delay=200-Math.round(150/(Math.round(stage.width/2)/Math.round(Math.abs(stage.mouseX-stage.width/2))));
t.start()
e.updateAfterEvent();
}
function selectSide(event:TimerEvent):void {
if(stage.mouseX<stage.width/2){ goNext()}
else goPrev();}
// Update after event to ensure no lag
function goNext():void{
trace('goNext '+ t.delay)
if (foranim.currentFrame < foranim.totalFrames)
foranim.gotoAndStop(foranim.currentFrame + 1);
else
foranim.gotoAndStop(1);}
function goPrev():void{
trace('goPrev '+t.delay)
if (foranim.currentFrame >1)
foranim.gotoAndStop(foranim.currentFrame - 1);
else
foranim.gotoAndStop(foranim.totalFrames);}
с таймером тоже тормозит
Добавлено через 2 часа 15 минут
отказалась от mouseEvent - работает отлично - спасибо всем!