go back to your animate action and
onout="breakall();mul(ypos,1,frameheight);txtadd(crop,'0|',get(ypos),'|',get(framewidth),'|',get(frameheight));"
would be even better since it would stop the running action, and reset the frame at the same time.
Unless you have other actions running, then you have to go back to killing the action personally like I did before.
<action name="animate">
ifnot (frame == 40,inc(frame,1));
mul(ypos,frame,frameheight);
txtadd(crop,'0|',get(ypos),'|',get(framewidth),'|',get(frameheight));
delayedcall(0.06, animate() );
</action>