I would imagine that you would use a property for this, if the player velocity = 0 then the property is reduced until it is == 0, otherwise the property has a similar value as the velocity (which gets added as you start to move).
Then apply an animation actuator with the play type ‘property’ and play it whenever the property is changed.
You could use states (the little waffle like thing in the controller logic brick. Looks like layers) and messages.
When the player is running it sends a message “running” which gets picked up by a message sensor on the crosshair. They change state. The new state has an action actuator which makes it smaller and a message sensor looking for the message “walking”.