PDA

Просмотр полной версии : onRelease для каждого мувика


sir_URLik
11.09.2008, 16:14
делаю в цикле (по переменной skip) вот так:

var dayBox_mc = calendar_mc.createEmptyMovieClip("calendar" + skip + "_mc", 400 + skip);
var dayBox_txt = dayBox_mc.createTextField("day" + skip + "_txt", 400 + skip + 50, j * boxWidth + 5, i * boxHeight + this.title_mc.month_txt._height + 5, boxWidth, boxHeight);
dayBox_txt.setNewTextFormat(this.title_tf);
dayBox_txt.text = skip;
dayBox_mc.onRelease = function () {
var base = this._parent._parent;
base.$drawCalendar(dayBox_mc.dayBox_txt.text, 2);
}
но в функции dayBox_mc.dayBox_txt.text всегда равно последнему значению из цикла. Как сделать, чтобы для каздого мувика было свое?

MrPoma
11.09.2008, 16:43
dayBox_txt.skip = skip;

sir_URLik
11.09.2008, 16:50
dayBox_txt.skip = skip;
Да, пробовал так. В skip записывается нужное число. Но функция вызывается только в момент нажатия мыши и поэтому там всегда последнее значение :(

Волгоградец
11.09.2008, 17:27
Сдается мне
dayBox_mc.dayBox_txt
вообще выдаст undefined.
А вообще, вот эта строка
var dayBox_txt = dayBox_mc.createTextField
в цикле переписывает переменную dayBox_txt каждый раз, когда вызывается и соответственно при обращении к ней эта переменная явлеется той, которую создали последний раз.
for (var skip:Number = 0; skip < 5; skip ++){
this["dayBox_mc"+skip] = this.createEmptyMovieClip("calendar" + skip + "_mc", 400 + skip);
var dayBox_txt = this["dayBox_mc"+skip].createTextField("day_txt", 400 + skip + 50, skip * boxWidth + 5, skip * boxHeight + 5, boxWidth, boxHeight);
dayBox_txt.border = true;
dayBox_txt.text = skip;
this["dayBox_mc"+skip].onRelease = function () {
trace(this.day_txt.text)
}
}

sir_URLik
11.09.2008, 18:07
Точно! Получилось! Спасибо!