Switch statement the right one for this job?

Hey all,

Can someone take a look at this code a tell me what’s wrong? I’m trying to get a sprite to move in the directions stated in an arrray when a play button is pressed. For some reason it only plays the first command in the history array. It’ll play both forward and rotateRight if theyre in the first two slots of the array.

I’m assuming a switch statement isn’t ideal for what i’m trying to do?

ForwardButton code:
ActionScript Code:
[FONT=Courier New][LEFT][COLOR=#0000FF]on[/COLOR] COLOR=#000000[/COLOR] [COLOR=#000000]{[/COLOR]
history.[COLOR=#0000FF]push[/COLOR]COLOR=#000000[/COLOR];
historyList.[COLOR=#0000FF]text[/COLOR]=history;
[COLOR=#000000]}[/COLOR]
[/LEFT]
[/FONT]

RotateRight code:
ActionScript Code:
[FONT=Courier New][LEFT][COLOR=#0000FF]on[/COLOR] COLOR=#000000[/COLOR] [COLOR=#000000]{[/COLOR]
history.[COLOR=#0000FF]push[/COLOR]COLOR=#000000[/COLOR];
historyList.[COLOR=#0000FF]text[/COLOR]=history;
[COLOR=#000000]}[/COLOR]
[/LEFT]
[/FONT]

Frame 1 code:
ActionScript Code:
[FONT=Courier New][LEFT][COLOR=#000000]var[/COLOR] myInterval
[COLOR=#000000]var[/COLOR] myInterval2
[COLOR=#000000]var[/COLOR] dist = [COLOR=#000080]100[/COLOR]
[COLOR=#000000]var[/COLOR] currentPos
[COLOR=#000000]var[/COLOR] degrees = [COLOR=#000080]90[/COLOR]
[COLOR=#000000]var[/COLOR] currentRotation = [COLOR=#000080]0[/COLOR]
[COLOR=#000000]var[/COLOR] arrayPos = [COLOR=#000080]0[/COLOR];
history = [COLOR=#000000]new[/COLOR] [COLOR=#0000FF]Array[/COLOR]COLOR=#000000[/COLOR];

[COLOR=#000000]function[/COLOR] moveRightCOLOR=#000000[/COLOR] [COLOR=#000000]{[/COLOR]

[COLOR=#0000FF]if[/COLOR] [COLOR=#000000]([/COLOR]myClip_mc.[COLOR=#0000FF]_x[/COLOR] <currentPos[COLOR=#000000])[/COLOR] [COLOR=#000000]{[/COLOR]

myClip_mc.[COLOR=#0000FF]_x[/COLOR] += [COLOR=#000080]2[/COLOR]; [COLOR=#808080]*// move the clip 2 px to the right*[/COLOR]

[COLOR=#000000]}[/COLOR] [COLOR=#0000FF]else[/COLOR] [COLOR=#000000]{[/COLOR]

[COLOR=#808080]*// so stop the setInterval from executing anymore*[/COLOR]
myClip_mc.[COLOR=#0000FF]_x[/COLOR] =currentPos
[COLOR=#0000FF]clearInterval[/COLOR][COLOR=#000000]([/COLOR]myInterval[COLOR=#000000])[/COLOR];

[COLOR=#000000]}[/COLOR]

[COLOR=#000000]}[/COLOR] [COLOR=#808080]// end moveClip()[/COLOR]

[COLOR=#000000]function[/COLOR] rotateRightCOLOR=#000000[/COLOR] [COLOR=#000000]{[/COLOR]

[COLOR=#0000FF]if[/COLOR] [COLOR=#000000]([/COLOR]currentRotation < degrees[COLOR=#000000])[/COLOR] [COLOR=#000000]{[/COLOR]

myClip_mc.[COLOR=#0000FF]_rotation[/COLOR] += [COLOR=#000080]2[/COLOR]; [COLOR=#808080]*//*[/COLOR]
currentRotation += [COLOR=#000080]2[/COLOR];

[COLOR=#000000]}[/COLOR] [COLOR=#0000FF]else[/COLOR] [COLOR=#000000]{[/COLOR]

[COLOR=#808080]*// so stop the setInterval from executing anymore*[/COLOR]
[COLOR=#0000FF]if[/COLOR] [COLOR=#000000]([/COLOR]currentRotation == [COLOR=#000080]90[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#000000]{[/COLOR]
    currentRotation = [COLOR=#000080]0[/COLOR];
[COLOR=#000000]}[/COLOR]

[COLOR=#0000FF]clearInterval[/COLOR][COLOR=#000000]([/COLOR]myInterval2[COLOR=#000000])[/COLOR];

[COLOR=#000000]}[/COLOR]

[COLOR=#000000]}[/COLOR] [COLOR=#808080]// end moveClip()[/COLOR]

play_btn.[COLOR=#0000FF]onPress[/COLOR] = [COLOR=#000000]function[/COLOR]COLOR=#000000[/COLOR] [COLOR=#000000]{[/COLOR]
[COLOR=#0000FF]while[/COLOR] [COLOR=#000000]([/COLOR]arrayPos < history.[COLOR=#0000FF]length[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#000000]{[/COLOR]
[COLOR=#0000FF]switch[/COLOR] COLOR=#000000[/COLOR] [COLOR=#000000]{[/COLOR]
[COLOR=#0000FF]case[/COLOR] [COLOR=#FF0000]“forward”[/COLOR] :
[COLOR=#0000FF]clearInterval[/COLOR]COLOR=#000000[/COLOR];
currentPos = myClip_mc.[COLOR=#0000FF]_x[/COLOR]+dist
myInterval = [COLOR=#0000FF]setInterval[/COLOR][COLOR=#000000]([/COLOR]moveRight, [COLOR=#000080]5[/COLOR][COLOR=#000000])[/COLOR];
[COLOR=#0000FF]break[/COLOR];
[COLOR=#0000FF]case[/COLOR] [COLOR=#FF0000]“rotateRight”[/COLOR] :
[COLOR=#0000FF]clearInterval[/COLOR]COLOR=#000000[/COLOR];
myInterval2 = [COLOR=#0000FF]setInterval[/COLOR][COLOR=#000000]([/COLOR]rotateRight, [COLOR=#000080]5[/COLOR][COLOR=#000000])[/COLOR];
[COLOR=#0000FF]break[/COLOR];
[COLOR=#000000]}[/COLOR]
arrayPos += [COLOR=#000080]1[/COLOR];
[COLOR=#000000]}[/COLOR]
[COLOR=#000000]}[/COLOR]
[/LEFT]
[/FONT]

Thanks in advanced :slight_smile: