I've been working with Pathfinding behavior for a sprite character that has 'run' animations in four-directions on a 3/4 perspective playing field. I've struggled with the same issue of triggering the correct animation when the sprite is moving along the path.
Pathfinding.MoveAngle changes constantly and in fractions of a degree, so the suggestion Newt offered inspired a solution that works for me. I created a global variable set to:
PathfindingMoveAngle (Global Variable): floor(sprite.pathfinding.moveangle)
Since this still frequently returns angles between the four directions of 0,90,180,270...I created a second global variable that converts any angle to one of the four angles aligned with the desired direction.
For example, any angle between 46 and 135 is converted to 90. Then I set the animation speed to Pathfinding.Speed/2 (after fiddling around with different frame-rates).
Additionally, I set a condition that tests the pathfinding.speed, so if the sprite's pathfinding speed is below 1 pixel per second, it defaults to an 'idle' animation triggered by the last 'run' animation that just finished.
I named my animations based on the angles governing the four-directions?as Newt suggested?and it's worked pretty well.
Thanks,
Jason