exedys Just to be sure, did you checked the "loop" property of the animation?
your problem is that you trigger the animation on a loop when you keep pressed the button, therefore the animation when you keep button down is always going to play from 1st frame, rendering the visual aspect to the 1st frame as it wont move. you need to trigger the animation with a condition trigger one time & button is down.> play animation
in the last picture u showed remove the OR trigger once... that is already applied to the On button pressed condition which triggers only 1 time.
from the 1st picture put the Animation run 1st then the 8 direction simulation lasts, and swap the condition for animation play to 8 direction is simulating control left up down right.
Edited(31/3/2018/ 6:15 pm Romania time):
For left and right movement you can code the frame animation to change +1 frame every 0.2 seconds or 0.1 second as the button is kept down, and when frame = ur max frames in the animation just reset the animation to 1st frame again.
while the system of animation is simple by itself its a bit confusing when ur trying to play animations based on how long users keep the buttons down or not.
You also do not need to have 2 sets of when buttons is pressed....
il make u a C3 example using some color blox ul be able to implement it in ur game it will take a bit .... probably few hrs from this edit time