Probably the easiest way would be with the Repeat loop and a Broadcast block. Like this:
On Sprite 1, have this script
[blocks]
<when green flag clicked>
<repeat( 3
...blocks that do cool movement and stuff...
<switch to costume[ 2
<end>
<broadcast[ Change Sprite 2
[/blocks]
Then, on Sprite 2, have a script like this:
[blocks]
<when I receive[ Change Sprite 2
<switch to costume[ 3
[/blocks]
So this method has Sprite 1 telling Sprite 2 when to change. There are ways to do it more like what you asked with Sprite 2 watching Sprite 1 and doing things based on what Sprite 1's actions are - but they require using variables and the sensing block which I think is a more complicated approach.
Offline