How to simplify a switch case with a loop and array?

I have this switch and I know there must be an easier way to accomplish this. For example if the user selects something it sets that button to a certain frame in this case nSelected, and sets all other buttons to a frame labeled nDefault.


function releasePagNum ():Void
{
   var myPgNum:Array = this._name.split ("m");
   var myNum:Number = myPgNum[1];
   switch (myNum)
   {
      case "1" :
         movePageIndicator (-7.9,1);
         pageNumMc.num2.gotoAndStop ("nDefault");
         pageNumMc.num3.gotoAndStop ("nDefault");
         pageNumMc.num4.gotoAndStop ("nDefault");
         pageNumMc.num5.gotoAndStop ("nDefault");
         pageNumMc.num6.gotoAndStop ("nDefault");
         pageNumMc.num7.gotoAndStop ("nDefault");
         pageNumMc.num8.gotoAndStop ("nDefault");
         pageNumMc.num9.gotoAndStop ("nDefault");
         pageNumMc.num10.gotoAndStop ("nDefault");
         gotoAndStop ("sec1");
         break;
      case "2" :
         movePageIndicator (9,1);
         pageNumMc.num1.gotoAndStop ("nDefault");
         pageNumMc.num3.gotoAndStop ("nDefault");
         pageNumMc.num4.gotoAndStop ("nDefault");
         pageNumMc.num5.gotoAndStop ("nDefault");
         pageNumMc.num6.gotoAndStop ("nDefault");
         pageNumMc.num7.gotoAndStop ("nDefault");
         pageNumMc.num8.gotoAndStop ("nDefault");
         pageNumMc.num9.gotoAndStop ("nDefault");
         pageNumMc.num10.gotoAndStop ("nDefault");
         gotoAndStop ("sec2");
         break;
      case "3" :
         movePageIndicator (26,1);
         pageNumMc.num1.gotoAndStop ("nDefault");
         pageNumMc.num2.gotoAndStop ("nDefault");
         pageNumMc.num4.gotoAndStop ("nDefault");
         pageNumMc.num5.gotoAndStop ("nDefault");
         pageNumMc.num6.gotoAndStop ("nDefault");
         pageNumMc.num7.gotoAndStop ("nDefault");
         pageNumMc.num8.gotoAndStop ("nDefault");
         pageNumMc.num9.gotoAndStop ("nDefault");
         pageNumMc.num10.gotoAndStop ("nDefault");
         gotoAndStop ("sec3");
         break;
      case "4" :
         movePageIndicator (43,1);
         pageNumMc.num1.gotoAndStop ("nDefault");
         pageNumMc.num2.gotoAndStop ("nDefault");
         pageNumMc.num3.gotoAndStop ("nDefault");
         pageNumMc.num5.gotoAndStop ("nDefault");
         pageNumMc.num6.gotoAndStop ("nDefault");
         pageNumMc.num7.gotoAndStop ("nDefault");
         pageNumMc.num8.gotoAndStop ("nDefault");
         pageNumMc.num9.gotoAndStop ("nDefault");
         pageNumMc.num10.gotoAndStop ("nDefault");
         gotoAndStop ("sec4");
         break;
      case "5" :
         movePageIndicator (59,1);
         pageNumMc.num1.gotoAndStop ("nDefault");
         pageNumMc.num2.gotoAndStop ("nDefault");
         pageNumMc.num3.gotoAndStop ("nDefault");
         pageNumMc.num4.gotoAndStop ("nDefault");
         pageNumMc.num6.gotoAndStop ("nDefault");
         pageNumMc.num7.gotoAndStop ("nDefault");
         pageNumMc.num8.gotoAndStop ("nDefault");
         pageNumMc.num9.gotoAndStop ("nDefault");
         pageNumMc.num10.gotoAndStop ("nDefault");
         gotoAndStop ("sec5");
         break;
      case "6" :
         movePageIndicator (76,1);
         pageNumMc.num1.gotoAndStop ("nDefault");
         pageNumMc.num2.gotoAndStop ("nDefault");
         pageNumMc.num3.gotoAndStop ("nDefault");
         pageNumMc.num4.gotoAndStop ("nDefault");
         pageNumMc.num5.gotoAndStop ("nDefault");
         pageNumMc.num7.gotoAndStop ("nDefault");
         pageNumMc.num8.gotoAndStop ("nDefault");
         pageNumMc.num9.gotoAndStop ("nDefault");
         pageNumMc.num10.gotoAndStop ("nDefault");
         gotoAndStop ("sec6");
         break;
      case "7" :
         movePageIndicator (92,1);
         pageNumMc.num1.gotoAndStop ("nDefault");
         pageNumMc.num2.gotoAndStop ("nDefault");
         pageNumMc.num3.gotoAndStop ("nDefault");
         pageNumMc.num4.gotoAndStop ("nDefault");
         pageNumMc.num5.gotoAndStop ("nDefault");
         pageNumMc.num6.gotoAndStop ("nDefault");
         pageNumMc.num8.gotoAndStop ("nDefault");
         pageNumMc.num9.gotoAndStop ("nDefault");
         pageNumMc.num10.gotoAndStop ("nDefault");
         gotoAndStop ("sec7");
         break;
      case "8" :
         movePageIndicator (109,1);
         pageNumMc.num1.gotoAndStop ("nDefault");
         pageNumMc.num2.gotoAndStop ("nDefault");
         pageNumMc.num3.gotoAndStop ("nDefault");
         pageNumMc.num4.gotoAndStop ("nDefault");
         pageNumMc.num5.gotoAndStop ("nDefault");
         pageNumMc.num6.gotoAndStop ("nDefault");
         pageNumMc.num7.gotoAndStop ("nDefault");
         pageNumMc.num9.gotoAndStop ("nDefault");
         pageNumMc.num10.gotoAndStop ("nDefault");
         gotoAndStop ("sec8");
         break;
      case "9" :
         movePageIndicator (125,1);
         pageNumMc.num1.gotoAndStop ("nDefault");
         pageNumMc.num2.gotoAndStop ("nDefault");
         pageNumMc.num3.gotoAndStop ("nDefault");
         pageNumMc.num4.gotoAndStop ("nDefault");
         pageNumMc.num5.gotoAndStop ("nDefault");
         pageNumMc.num6.gotoAndStop ("nDefault");
         pageNumMc.num7.gotoAndStop ("nDefault");
         pageNumMc.num8.gotoAndStop ("nDefault");
         pageNumMc.num10.gotoAndStop ("nDefault");
         gotoAndStop ("sec9");
         break;
      case "10" :
         movePageIndicator (142,1);
         pageNumMc.num1.gotoAndStop ("nDefault");
         pageNumMc.num2.gotoAndStop ("nDefault");
         pageNumMc.num3.gotoAndStop ("nDefault");
         pageNumMc.num4.gotoAndStop ("nDefault");
         pageNumMc.num5.gotoAndStop ("nDefault");
         pageNumMc.num6.gotoAndStop ("nDefault");
         pageNumMc.num7.gotoAndStop ("nDefault");
         pageNumMc.num8.gotoAndStop ("nDefault");
         pageNumMc.num9.gotoAndStop ("nDefault");
         gotoAndStop ("sec10");
         break;
   }
}


Something like this should work:

function releasePagNum():Void {
	var myPgNum:Array = this._name.split ("m");
	var myNum:Number = parseInt(myPgNum[1]);
	var positions:Array = new Array(-7.9, 9, 26, 43, 59, 76, 92, 125, 142);
	movePageIndicator(positions[myNum - 1], 1);
	for(var i:Number = 1; i < 10; i++){
		if(myNum !== i){
			pageNumMc['num' + i].gotoAndStop('nDefault');
		}
	}
	gotoAndStop('sec' + myNum);
}

[QUOTE=Krilnon;2346917]Something like this should work:

function releasePagNum():Void {
	var myPgNum:Array = this._name.split ("m");
	var myNum:Number = parseInt(myPgNum[1]);
	var positions:Array = new Array(-7.9, 9, 26, 43, 59, 76, 92, 125, 142);
	movePageIndicator(positions[myNum - 1], 1);
	for(var i:Number = 1; i < 10; i++){
		if(myNum !== i){
			pageNumMc['num' + i].gotoAndStop('nDefault');
		}
	}
	gotoAndStop('sec' + myNum);
}

[/QUOTE]

That worked great! That is far better than what I had previously posted, thanks a lot.

The rest of the code worked great but this last section does not go to the frame labeled sec2?


gotoAndStop('sec' + myNum);

Try putting calling trace there to see what’s happening.