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

**URL:** <https://forum.kirupa.com/t/how-to-simplify-a-switch-case-with-a-loop-and-array/264006>\
**Category:** flash\
**Created:** [June 21, 2008, 10:34pm UTC](https://forum.kirupa.com/t/how-to-simplify-a-switch-case-with-a-loop-and-array/264006 "2008-06-21T22:34:03Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Obi\_Wan](https://avatars.discourse-cdn.com/v4/letter/o/e99b99/32.png) [@Obi\_Wan](https://forum.kirupa.com/u/Obi_Wan)\
**Post date:** [June 21, 2008, 10:34pm UTC](https://forum.kirupa.com/t/how-to-simplify-a-switch-case-with-a-loop-and-array/264006/1 "2008-06-21T22:34:03Z")

</div>

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.

```auto

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;
   }
}

```

---

<div class="post-metadata">

**Author:** ![krilnon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/krilnon/32/34_2.png) [@krilnon](https://forum.kirupa.com/u/krilnon)\
**Post date:** [June 21, 2008, 10:43pm UTC](https://forum.kirupa.com/t/how-to-simplify-a-switch-case-with-a-loop-and-array/264006/2 "2008-06-21T22:43:38Z")

</div>

Something like this should work:

```auto
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);
}

```

---

<div class="post-metadata">

**Author:** ![Obi\_Wan](https://avatars.discourse-cdn.com/v4/letter/o/e99b99/32.png) [@Obi\_Wan](https://forum.kirupa.com/u/Obi_Wan)\
**Post date:** [June 21, 2008, 11:03pm UTC](https://forum.kirupa.com/t/how-to-simplify-a-switch-case-with-a-loop-and-array/264006/3 "2008-06-21T23:03:15Z")

</div>

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

```auto
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.

---

<div class="post-metadata">

**Author:** ![Obi\_Wan](https://avatars.discourse-cdn.com/v4/letter/o/e99b99/32.png) [@Obi\_Wan](https://forum.kirupa.com/u/Obi_Wan)\
**Post date:** [June 22, 2008, 2:59am UTC](https://forum.kirupa.com/t/how-to-simplify-a-switch-case-with-a-loop-and-array/264006/4 "2008-06-22T02:59:03Z")

</div>

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

```auto

gotoAndStop('sec' + myNum);

```

---

<div class="post-metadata">

**Author:** ![krilnon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/krilnon/32/34_2.png) [@krilnon](https://forum.kirupa.com/u/krilnon)\
**Post date:** [June 22, 2008, 4:45am UTC](https://forum.kirupa.com/t/how-to-simplify-a-switch-case-with-a-loop-and-array/264006/5 "2008-06-22T04:45:51Z")

</div>

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