Можно попробовать что-то типа этого сделать.

Код AS1/AS2:
for(i=0; i<10; i++){
for(j=0; j<10; j++){
//trace(''+i+" "+j);
attachMovie('Мувиклип','Кубик'+i+j,getNextHighestDepth(),{_x:100+j*28.30,_y:100+i*42.40,useHandCursor:false});
eval('Кубик'+i+j)["per"]=10;
eval('Кубик'+i+j)["perx"]=eval('Кубик'+i+j)._y;
}
}
setInterval(search,20);
function search(){
for(var i in _root){
if(eval(i)["per"]==10){
if(eval(i)._ymouse>0 & eval(i)._xmouse>0 & eval(i)._ymouse<eval(i)._height & eval(i)._xmouse<eval(i)._width){
eval(i)._y=eval(i)['perx']-eval(i)['per'];
}
else{
eval(i)._y=eval(i)['perx'];
}
}
updateAfterEvent();
}
}
Всмысле всё время проверять висит ли курсор мыши над дверью и как только он появлется шатать дверь.