Skip to main content
January 3, 2011
Answered

Add event listener within loop

  • January 3, 2011
  • 2 replies
  • 819 views

Hi,

I have this list of event listeners I would like to add but no matter how I try to loop it I can't seem to do it

Do I need to create a nested loop to specify the function names or would it be possible using just one loop ? :-

gamePage.infoBox.l1i1.addEventListener(MouseEvent.MOUSE_OVER,l1i1MouseOver);
gamePage.infoBox.l1i2.addEventListener(MouseEvent.MOUSE_OVER,l1i2MouseOver);
gamePage.infoBox.l11i1.addEventListener(MouseEvent.MOUSE_OVER,l11i1MouseOver);
gamePage.infoBox.l11i2.addEventListener(MouseEvent.MOUSE_OVER,l11i2MouseOver);
gamePage.infoBox.l21i1.addEventListener(MouseEvent.MOUSE_OVER,l21i1MouseOver);
gamePage.infoBox.l21i2.addEventListener(MouseEvent.MOUSE_OVER,l21i2MouseOver);
gamePage.infoBox.l21i3.addEventListener(MouseEvent.MOUSE_OVER,l21i3MouseOver);
gamePage.infoBox.l21i4.addEventListener(MouseEvent.MOUSE_OVER,l21i4MouseOver);
gamePage.infoBox.l31i1.addEventListener(MouseEvent.MOUSE_OVER,l31i1MouseOver);
gamePage.infoBox.l31i2.addEventListener(MouseEvent.MOUSE_OVER,l31i2MouseOver);
gamePage.infoBox.l31i3.addEventListener(MouseEvent.MOUSE_OVER,l31i3MouseOver);
gamePage.infoBox.l41i1.addEventListener(MouseEvent.MOUSE_OVER,l41i1MouseOver);
gamePage.infoBox.l41i2.addEventListener(MouseEvent.MOUSE_OVER,l41i2MouseOver);
gamePage.infoBox.l41i3.addEventListener(MouseEvent.MOUSE_OVER,l41i3MouseOver);
gamePage.infoBox.l51i1.addEventListener(MouseEvent.MOUSE_OVER,l51i1MouseOver);
gamePage.infoBox.l51i2.addEventListener(MouseEvent.MOUSE_OVER,l51i2MouseOver);
gamePage.infoBox.l51i3.addEventListener(MouseEvent.MOUSE_OVER,l51i3MouseOver);
gamePage.infoBox.l51i4.addEventListener(MouseEvent.MOUSE_OVER,l51i4MouseOver);
gamePage.infoBox.l51i5.addEventListener(MouseEvent.MOUSE_OVER,l51i5MouseOver);
gamePage.infoBox.l51i6.addEventListener(MouseEvent.MOUSE_OVER,l51i6MouseOver);
gamePage.infoBox.l51i7.addEventListener(MouseEvent.MOUSE_OVER,l51i7MouseOver);
gamePage.infoBox.l51i8.addEventListener(MouseEvent.MOUSE_OVER,l51i8MouseOver);
gamePage.infoBox.l61i1.addEventListener(MouseEvent.MOUSE_OVER,l61i1MouseOver);
gamePage.infoBox.l61i2.addEventListener(MouseEvent.MOUSE_OVER,l61i2MouseOver);
gamePage.infoBox.l61i3.addEventListener(MouseEvent.MOUSE_OVER,l61i3MouseOver);
gamePage.infoBox.l61i4.addEventListener(MouseEvent.MOUSE_OVER,l61i4MouseOver);
gamePage.infoBox.l61i5.addEventListener(MouseEvent.MOUSE_OVER,l61i5MouseOver);
gamePage.infoBox.l61i6.addEventListener(MouseEvent.MOUSE_OVER,l61i6MouseOver);
gamePage.infoBox.l61i7.addEventListener(MouseEvent.MOUSE_OVER,l61i7MouseOver);
gamePage.infoBox.l61i8.addEventListener(MouseEvent.MOUSE_OVER,l61i8MouseOver);
gamePage.infoBox.l71i1.addEventListener(MouseEvent.MOUSE_OVER,l71i1MouseOver);
gamePage.infoBox.l71i2.addEventListener(MouseEvent.MOUSE_OVER,l71i2MouseOver);
gamePage.infoBox.l71i3.addEventListener(MouseEvent.MOUSE_OVER,l71i3MouseOver);
gamePage.infoBox.l71i4.addEventListener(MouseEvent.MOUSE_OVER,l71i4MouseOver);
gamePage.infoBox.l71i5.addEventListener(MouseEvent.MOUSE_OVER,l71i5MouseOver);
gamePage.infoBox.l71i6.addEventListener(MouseEvent.MOUSE_OVER,l71i6MouseOver);
gamePage.infoBox.l71i7.addEventListener(MouseEvent.MOUSE_OVER,l71i7MouseOver);
gamePage.infoBox.l71i8.addEventListener(MouseEvent.MOUSE_OVER,l71i8MouseOver);

This topic has been closed for replies.
Correct answer kglad

you're welcome.

2 replies

kglad
Community Expert
Community Expert
January 3, 2011

// you can probably use one listener function and simplify that part of this code, too

// and that's a very screwy naming scheme

var tl:MovieClip=this;

var numA:Array=[2,2,4,3,3,8,8,8]

for(var i:uint=0;i<=7;i++){

for(var j:uint=1;j<=numA;j++){

if(i==0){

gamePage.infoBox["I1i"+j].addEventListener(MouseEvent.MOUSE_OVER,tl["I1i"+j+"MouseOver"]

} else {

gamePage.infoBox["I"+i+"1i"+i+j].addEventListener(MouseEvent.MOUSE_OVER,tl["I"+i+"1i"+i+j+"MouseOver"]

}

}

}

January 9, 2011

thanks for the answers, and sorry for the delayed response.. I decided to let it drop due to the awful naming scheme I chose.. as you rightly pointed out !

kglad
Community Expert
kgladCommunity ExpertCorrect answer
Community Expert
January 9, 2011

you're welcome.

January 3, 2011

names should be:

i0 , i1 , i2, , ..... ix

or every level should have same number of buttons to use a loop....

and you can use just one mouseOverFunction , use select case and check evt.currentTarget.name