all groups > flash actionscript > september 2006 >
You're in the

flash actionscript

group:

Targeting items in for loop


Targeting items in for loop lunchBoxCoder
9/30/2006 6:43:59 PM
flash actionscript:
I have this simple for loop which does everything it suppose to do..
load movies onto the Stage

for(var i=0;i<Items;i++)
{
var t = this.attachMovie("holder","holder"+i,i+1);
t.onRollOver = over;
}

My question is I'm tring to target each movie seperately
on a onRollOver event.
I've done a trace(this) which gives me what I'd expect
holder0
holder1
holder2
etc. etc.
but if i say
function over()
{
if (holder0)
{
// do some thing
trace(this)
}
}
it does it to all Items.

what I'm I doing wrong???
Re: Targeting items in for loop coldMiner
9/30/2006 7:01:22 PM
// create an array that holds the MCs
var mcArray:Array = new Array();
for(var i=0;i<Items;i++)
{
var t = this.attachMovie("holder","holder"+i,i+1);
mcArray.push(t);
mcArray[i].onRollOver = function(){
_root.over(i);
};
}
function over(who:Number){
switch(who){
case 0:
trace(mcArray[who]);
// do something
break:
case 1:
trace(mcArray[who]);
// do something
break:
// etc
}
}
Re: Targeting items in for loop kglad
9/30/2006 9:38:33 PM
over() doesn't know which movieclip is undergoing a rollover. to remedy use
something like:



for(var i=0;i<Items;i++)
{
var t = this.attachMovie("holder","holder"+i,i+1);
t.ivar=i;
t.onRollOver = over;
}



function over()
{
if (this.ivar==0)
{
// do some thing to holder0
trace(this)
}
}
AddThis Social Bookmark Button