A Flash Developer Resource Site

Results 1 to 3 of 3

Thread: shorten the script

  1. #1
    Senior Member
    Join Date
    May 2004
    Posts
    627

    shorten the script

    Can anyone suggest a good way to shorten the script as below?


    function prev2() {
    if (currentBtn==1) {
    //m1.mm1.prevFrame();
    m2.mm2.prevFrame();
    m3.mm3.prevFrame();
    m4.mm4.prevFrame();
    m5.mm5.prevFrame();
    m6.mm6.prevFrame();
    m7.mm7.prevFrame();
    m8.mm8.prevFrame();
    m9.mm9.prevFrame();
    m10.mm10.prevFrame();
    }
    if (currentBtn==2) {
    m1.mm1.prevFrame();
    //m2.mm2.prevFrame();
    m3.mm3.prevFrame();
    m4.mm4.prevFrame();
    m5.mm5.prevFrame();
    m6.mm6.prevFrame();
    m7.mm7.prevFrame();
    m8.mm8.prevFrame();
    m9.mm9.prevFrame();
    m10.mm10.prevFrame();
    }
    if (currentBtn==3) {
    m1.mm1.prevFrame();
    m2.mm2.prevFrame();
    //m3.mm3.prevFrame();
    m4.mm4.prevFrame();
    m5.mm5.prevFrame();
    m6.mm6.prevFrame();
    m7.mm7.prevFrame();
    m8.mm8.prevFrame();
    m9.mm9.prevFrame();
    m10.mm10.prevFrame();
    }
    if (currentBtn==4) {
    m1.mm1.prevFrame();
    m2.mm2.prevFrame();
    m3.mm3.prevFrame();
    //m4.mm4.prevFrame();
    m5.mm5.prevFrame();
    m6.mm6.prevFrame();
    m7.mm7.prevFrame();
    m8.mm8.prevFrame();
    m9.mm9.prevFrame();
    m10.mm10.prevFrame();
    }
    if (currentBtn==5) {
    m1.mm1.prevFrame();
    m2.mm2.prevFrame();
    m3.mm3.prevFrame();
    m4.mm4.prevFrame();
    //m5.mm5.prevFrame();
    m6.mm6.prevFrame();
    m7.mm7.prevFrame();
    m8.mm8.prevFrame();
    m9.mm9.prevFrame();
    m10.mm10.prevFrame();
    }
    if (currentBtn==6) {
    m1.mm1.prevFrame();
    m2.mm2.prevFrame();
    m3.mm3.prevFrame();
    m4.mm4.prevFrame();
    m5.mm5.prevFrame();
    //m6.mm6.prevFrame();
    m7.mm7.prevFrame();
    m8.mm8.prevFrame();
    m9.mm9.prevFrame();
    m10.mm10.prevFrame();
    }
    if (currentBtn==7) {
    m1.mm1.prevFrame();
    m2.mm2.prevFrame();
    m3.mm3.prevFrame();
    m4.mm4.prevFrame();
    m5.mm5.prevFrame();
    m6.mm6.prevFrame();
    //m7.mm7.prevFrame();
    m8.mm8.prevFrame();
    m9.mm9.prevFrame();
    m10.mm10.prevFrame();
    }
    if (currentBtn==8) {
    m1.mm1.prevFrame();
    m2.mm2.prevFrame();
    m3.mm3.prevFrame();
    m4.mm4.prevFrame();
    m5.mm5.prevFrame();
    m6.mm6.prevFrame();
    m7.mm7.prevFrame();
    //m8.mm8.prevFrame();
    m9.mm9.prevFrame();
    m10.mm10.prevFrame();
    }
    if (currentBtn==9) {
    m1.mm1.prevFrame();
    m2.mm2.prevFrame();
    m3.mm3.prevFrame();
    m4.mm4.prevFrame();
    m5.mm5.prevFrame();
    m6.mm6.prevFrame();
    m7.mm7.prevFrame();
    m8.mm8.prevFrame();
    //m9.mm9.prevFrame();
    m10.mm10.prevFrame();
    }
    if (currentBtn==10) {
    m1.mm1.prevFrame();
    m2.mm2.prevFrame();
    m3.mm3.prevFrame();
    m4.mm4.prevFrame();
    m5.mm5.prevFrame();
    m6.mm6.prevFrame();
    m7.mm7.prevFrame();
    m8.mm8.prevFrame();
    m9.mm9.prevFrame();
    //m10.mm10.prevFrame();
    }
    }

  2. #2
    Will moderate for beer
    Join Date
    Apr 2007
    Location
    Austin, TX
    Posts
    6,801
    I would have suggested putting your potential movies in an array to make it easier to process them. But since you've already used a naming convention instead of a proper collection, I'll just suggest how to build one from your existing stuff.

    Code:
    var i:int;
    var mcs:Array = new Array();
    for (i = 1; i <11; i++){
      mcs.push(this["m"+i]["mm"+i]);
    }
    Now, the actual code you posted reduces to this:
    Code:
    function prev2():void {
      for (var i:int = 0; i < mcs.length; i++){
         if (i != currentBtn-1){
           mcs[i].prevFrame();
         }
      }
    }

  3. #3
    Ө_ө sleepy mod
    Join Date
    Mar 2003
    Location
    Oregon, USA
    Posts
    2,441
    I agree with Flax - use an array for this stuff.

    This code will run a little slower than Flax' method but it's easier on memory...although I don't think either will be a problem in this context - just a little shorter.

    PHP Code:
    for(var i:int 1<= 10i++){
        if(
    != currentBtnthis['m' i]['mm' i].prevFrame();

    Please use [php] or [code] tags, and mark your threads resolved 8)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center