Есть допустим три квадрата, которые надо сбросить драгом в 3 разных локациях.
Создается клип base по размеру квадрата mc, в который будет квадрат сброшен и квадрату присвоются координаты клипа.
Например (полностью коды писать не буду):

Код:
x = mc._x;
y = mc._y;
mc.onRelease = function() {
stopDrag();
if (eval(mc._droptarget) == eval("_root."+base)) {
mc._x = base._x;
mc._y = base._y;
} else { //если сброшен не туда, но возвращается на прежнее место
mc._x = x;
mc._y = y;
}
}
С этим все ясно. это работает.
Но проблема возникла, когда для кучи клипов ["mc"+i], находящихся в клипе holder, с кучей base создал цикл:

Код:
//продублировал base c разными координатами в цикле:
//цикл:
for (i=0; i<3; i++) {
base.duplicateMovieClip("base"+i, this.getNextHighestDepth(), {_x:100*i, _y:0}); // имеют координаты по х: 0,100,200
holder["mc"+i].onRelease = function() {
stopDrag();
if (eval(this._droptarget) == eval("_root.base"+i)) {
//....координаты = коорд. базы
} else {
//....координаты = прежние
}
};
По идее должны создаться в цикле три функции , где для каждого mc будет своя base.
но ничерта не работает. Если вписать в правой части eval какую-нибудь одну базу. base1 , то все работает. Либо не верно написал там адрес баз в eval, либо i в функцию onRelease не передается нормально. Подскажите?