PDA

Просмотр полной версии : hitTest объявление номера объета в цикле.


BonKatty
29.05.2009, 15:56
Не могу разобраться как правильно объявить название объекта внутри функции , чтоб в hitTest читалась переменная цикла i.
Вот код:
for (i=1;i<4;i++)
{
eval('part_'+i).onPress = function() {
startDrag(this);
};
eval('part_'+i).onRelease = function () {
this.stopDrag();
trace(this.hitTest(eval('free_'+i)));
};
}
Суть : чтобы когда объект part_i отпускаешь над free_i то тру выдавало. А у меня чёто i внутри функции на онрелиз последнее значение считывает , то есть 4 . Ну и сверяет попадение объкта part_i в зону объкта free_4 . Как правильно это i внутрь функции передать? Помогите начинающим.
Спасибо.

iNils
29.05.2009, 16:00
Для оформления своего кода, надо использовать теги (http://www.flasher.ru/forum/showthread.php?t=122539).

Добавлено через 3 минуты
function press () {
startDrag (this);
}
function release () {
this.stopDrag ();
trace (this.hitTest (this._parent['free_' + this.i]));
}
for (var i:Number = 1; i < 4; i++) {
var mc:MovieClip = this['part_' + i];
mc.onPress = press;
mc.onRelease = release;
mc.onReleaseOutside = release;
mc.i = i;
}

Добавлено через 4 минуты
или так
function press () {
startDrag (this);
}
function release () {
this.stopDrag ();
trace (this.hitTest (this.tag));
}
for (var i:Number = 1; i < 4; i++) {
var mc:MovieClip = this['part_' + i];
mc.onPress = press;
mc.onRelease = release;
mc.onReleaseOutside = release;
mc.tag = this['free_' + i];
}

BonKatty
29.05.2009, 16:50
Спасибо. В будущем учту.:)