I think I know the problem, but it's hard to explain for me. But I'll try.
When you touch the button, while paper is playing, construct notices the touch and sets the button's animation to rock. Now construct goes on checking for events (upper events before lower events, since it's a script language). Two events later it checks for "Animation "rocks" is playing. Since we set the animation to rocks right before, this event is also triggered and sets player back to "rocks".
I'm not 100% sure about the solution, but try this: Make A System->Wait 0 event right before changing to another Animation.