Is there a way to limit the scope of the animation listener events? Oftentimes I listen to "layerA.onAnimationEnd" somewhere and it does what I need it to do.
But the unintended side effect is that if I animate layerA somewhere else the event fires again.
How do I confine/limit the event listeners in general to fire once, in a specific scope, or how do I make them more "localized"?
Or maybe there is a better way of doing something ONCE upon animation end and I'm just thinking about it in the wrong way?
There is actual layerA.once Events.AnimationEndthat fires literally "once" :D
I'm thinking, maybe you can scope it manually. Let's say inside block where you want the event to fire, you set additional variable ›fuel = true‹ and inside the event fire the behavior only if ›fuel == true‹.
After your desired behavior ends, set fuel back false. That way, when events tries to kick in somewhere else, ›fuel‹ will be ›false‹ and behavior won't execute :)
Hey Radek Kyselý layerA.once is a great tip! How did you find the layerA.once? I do not see it in the docs.
Anyways I figure the complete syntax is layerA.once Events.AnimationEnd, (animation, layer) ->
Also on the manual scoping I tried it and it kind of works, just need to remember to set conditions outside of the event listener based on which it fires or not. I like your layerA.once suggestion better though cause it is simpler and just works :)
Jacek I just remember someone used it here in the group some time ago and personally use it once in a while :) But yea, I believe it's not documented (lot of stuff isn't, actually) :)
I agree .once is much more elegant than conditionals and variables, but it might not serve all scenarios. I'm glad it works for you though :)