mx2004 multiple hitTests

This is probably really basic…but its really doing my head in. So any help would be appreciated.

I have 9 static movieclips arranged in a 3 by 3 grid, and 1 movieclip that moves using keypresses (invisible_mc)

The clips are named as follows

first row…icon1_mc icon2_mc icon3_mc
second row…icon4_mc icon5_mc icon6_mc
third row…icon7_mc icon8_mc icon9_mc

invisible_mc can be moved randomly by the user.

when a hitTest is registered between the invisible_mc and any of the icon_mc’s, The icon_mc goes to and stops on frame 2…else it goes to and stops on frame 1. I have constructed the hitTest as follows…is there anyway to reduce the endless repetition of code?

function hit(){
if (_root.invisible_mc.keyFlag==false){
////////////////icon1/////////////////////////////////
if (_root.invisible_mc.hitTest(_root.icon1_mc)){
_root.icon1_mc.gotoAndStop(2);

_root.icon1_mc.swapDepths(-1);
}

////////////////icon2//////////////////////////////////
if (_root.invisible_mc.hitTest(_root.icon2_mc)){
_root.icon2_mc.gotoAndStop(2);

_root.icon2_mc.swapDepths(-1);
}

////////////////icon3
if (_root.invisible_mc.hitTest(_root.icon3_mc)){
_root.icon3_mc.gotoAndStop(2);

_root.icon3_mc.swapDepths(-1);
}

//////////////icon4//////////////
if (_root.invisible_mc.hitTest(_root.icon4_mc)){
_root.icon4_mc.gotoAndStop(2);

_root.icon4_mc.swapDepths(-1);
}

/////////////icon5//////////////
if (_root.invisible_mc.hitTest(_root.icon5_mc)){
_root.icon5_mc.gotoAndStop(2);

_root.icon5_mc.swapDepths(-1);
}

/////////////icon6////////////////
if (_root.invisible_mc.hitTest(_root.icon6_mc)){
_root.icon6_mc.gotoAndStop(2);

_root.icon6_mc.swapDepths(-1);
}

/////////////icon7////////////////
if (_root.invisible_mc.hitTest(_root.icon7_mc)){
_root.icon7_mc.gotoAndStop(2);

_root.icon7_mc.swapDepths(-1);
}

/////////////icon8////////////////
if (_root.invisible_mc.hitTest(_root.icon8_mc)){
_root.icon8_mc.gotoAndStop(2);

_root.icon8_mc.swapDepths(-1);
}
/////////////icon9////////////////
if (_root.invisible_mc.hitTest(_root.icon9_mc)){
_root.icon9_mc.gotoAndStop(2);

_root.icon9_mc.swapDepths(-1);
}
}
else {_root.icon1_mc.gotoAndStop(1);
_root.icon2_mc.gotoAndStop(1);
_root.icon3_mc.gotoAndStop(1);
_root.icon4_mc.gotoAndStop(1);
_root.icon5_mc.gotoAndStop(1);
_root.icon6_mc.gotoAndStop(1);
_root.icon7_mc.gotoAndStop(1);
_root.icon8_mc.gotoAndStop(1);
_root.icon9_mc.gotoAndStop(1);}
}
setInterval(hit,20);

if think this is what u want…:


function hit(){
for(i=1;i<=9;i++){
if (_root.invisible_mc.keyFlag==false){
if (_root.invisible_mc.hitTest(_root["icon"+i+"_mc"])){ 
_root["icon"+i+"_mc"].gotoAndStop(2);
_root["icon"+i+"_mc"].swapDepths(-1);
}
}
else {
_root["icon"+i+"_mc"].gotoAndStop(1);
}
}
}
setInterval(hit,20);