import mx.events.EffectEvent; import mx.effects.Effect; import spark.effects.animation.RepeatBehavior; private var animatingTargets:Object = new Object(); private function animateHover(target:Object):void { if (animatingTargets[target.id] === undefined) { var effect:Effect; if (rotationButton.selected) effect = rotator; else effect = mover; effect.target = target; animatingTargets[target.id] = effect; effect.play(); } } private function effectEndHandler(event:EffectEvent):void { delete animatingTargets[event.effectInstance.target.id]; }