# More efficient way to write loop?

**URL:** <https://forum.kirupa.com/t/more-efficient-way-to-write-loop/306867>\
**Category:** flash\
**Created:** [March 23, 2010, 6:47pm UTC](https://forum.kirupa.com/t/more-efficient-way-to-write-loop/306867 "2010-03-23T18:47:40Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Reean917](https://avatars.discourse-cdn.com/v4/letter/r/a698b9/32.png) [@Reean917](https://forum.kirupa.com/u/Reean917)\
**Post date:** [March 23, 2010, 6:47pm UTC](https://forum.kirupa.com/t/more-efficient-way-to-write-loop/306867/1 "2010-03-23T18:47:40Z")

</div>

I’m still learning AS3 so bare with me. I’m curious if there is a more efficient way to write this function. Just seems too bulky but it does work. Any advice would be appreciated. Thanks!

```auto

for (var i:Number = 0; i<btnArray.length; i++) {
 btnArray*.addEventListener(MouseEvent.MOUSE_DOWN, manageMouseDown);
 btnArray*.addEventListener(MouseEvent.MOUSE_OVER, manageMouseOver);
 
 function manageMouseOver(e:MouseEvent):void {
  e.target.buttonMode = true;
 }
 
 function manageMouseDown(e:MouseEvent):void {
  for (var j:Number = 0; j<btnArray.length; j++) {
   if (e.target == btnArray[j]) {
    total = total + costArray[j];
    TweenMax.to(spotArray[j], 3, {scaleX:1.35, scaleY:1.35, ease:Elastic.easeOut});
    a.color = 0xFF9933;
    spotArray[j].orange.transform.colorTransform = a;
    spotArray[j].alpha = .75;
    spotArray[j].spotnum.htmlText = j+1;
    myTotal.htmlText = "$"+total.toFixed(2);
    togArray[j].addEventListener(MouseEvent.MOUSE_OVER, toggleOver);
    togArray[j].addEventListener(MouseEvent.MOUSE_DOWN, toggleDown);
    togArray[j].alpha = 1;
    spotArray[j].removeEventListener(MouseEvent.MOUSE_DOWN, manageSpotDown);
   }
  }
  e.target.alpha = 0.5;
  e.target.removeEventListener(MouseEvent.MOUSE_DOWN, manageMouseDown);
 }
}

```
