actionscript 3 - AS3: Fast hovering doesn't execute rollOut -
i'm having serious problem getting me nervous:
i've made button _btn includes rollover , rollout animations coding (an nested movieclip instance called barra increases half alpha when hover on , decreases when hover out).
[here should go descriptive image i'm new , need 10 reputation. i'll appreciate help]
this works the problem occurs when move cursor 1 point another, button in between. seems rollout function not detected, rollover animation keeps working (and if carefully, animation stops few seconds , continues).
[here should go descriptive image too]
this code in actions layer:
//funciones roll on function _btnover(event:mouseevent):void { _btn.buttonmode = true; _btn.addeventlistener(event.enter_frame,_btnfadein); } function _btnfadein(event:event):void { _btn.barra.alpha += 0.1; if (_btn.barra.alpha >= 0.5) { _btn.removeeventlistener(event.enter_frame,_btnfadein); } } _btn.addeventlistener(mouseevent.roll_over,_btnover); //funciones roll out function _btnout(event:mouseevent):void { _btn.addeventlistener(event.enter_frame,_btnfadeout); } function _btnfadeout(event:event):void { _btn.barra.alpha -= 0.1; if (_btn.barra.alpha <= 0.2) { _btn.removeeventlistener(event.enter_frame,_btnfadeout); } } _btn.addeventlistener(mouseevent.roll_out,_btnout);
click here if want download fla , swf files, can see problem clearly.
i barely know how use actionscript 3 (my programming knowledge processing) , don't have time learn head toe, i've researched problem , it's still not clear.
with tutorials , guides, managed learn how create , understand code, , i think problem might in functions of events roll_over , roll_out, contain addeventlistener of enter_frame events (where animations are), respectively. don't know have fix it, should add or change.
i glad if this, i'm frustrated! recommend me do?
thanks in advance
(pd: don't understand of programming language. if can clear , direct possible, i'll appreciate it)
i edited code in here, checking hover state onloop function, can change settings on here
import flash.events.event; var isrolledover:boolean = false; //funciones roll on function _btnover(event:mouseevent):void { isrolledover = true; } function _btnout(event:mouseevent):void { isrolledover = false; } _btn.addeventlistener(mouseevent.roll_over,_btnover); _btn.addeventlistener(mouseevent.roll_out,_btnout); this.addeventlistener(event.enter_frame,onloop); function onloop(e){ if(this.isrolledover){ if(_btn.barra.alpha < 0.5) _btn.barra.alpha += 0.1; } else{ if(_btn.barra.alpha > 0.5 || _btn.barra.alpha > 0) _btn.barra.alpha -= 0.1; } }
i added sample fla in case
Comments
Post a Comment