PDA

Просмотр полной версии : for или while?


Newrgun
02.08.2007, 07:15
Помогите пожалуйста, как сделать через for или while так, чтобы один и тот же кусок кода повторялся с добавлением цыферки в коде.

Вот собственно мой несчастный код:

_root.other_id.masked.pic1.onRelease = function() {
changepage(1);
};
_root.other_id.masked.pic2.onRelease = function() {
changepage(2);
};
_root.other_id.masked.pic3.onRelease = function() {
changepage(3);
};
_root.other_id.masked.pic4.onRelease = function() {
changepage(4);
};
_root.other_id.masked.pic5.onRelease = function() {
changepage(5);
};
_root.other_id.masked.pic6.onRelease = function() {
changepage(6);
};
_root.other_id.masked.pic7.onRelease = function() {
changepage(7);
};
_root.other_id.masked.pic8.onRelease = function() {
changepage(8);
};
_root.other_id.masked.pic9.onRelease = function() {
changepage(9);
};
_root.other_id.masked.pic10.onRelease = function() {
changepage(10);
};

total_count_ - это количество всех кнопок

Код выше работает, но если этих кнопок будет много :wacko:

Я делаю все это через while:

var j:Number = 1;
while (j<total_count_) {
with (_root.other_id.masked["pic"+j]) {
var numm = j;
onRelease = function () {
changepage(numm);
};
j++;
}
}

и почему-то при нажатии на одну из кнопок, запускается changepage(total_count_);

А если то же самое сделать через for:

for (var j:Number = 1; j<total_count_; j++) {
with (_root.other_id.masked["pic"+j]) {
onRelease = function () {
changepage(j);
};
}
}

При нажатии на одну из кнопок тоже перескакивает на последний. :(

Люди дайте совет как это сделать.

DarkLight
02.08.2007, 07:22
Вот так:
for (var j:Number = 1; j<total_count_; j++) {
_root.other_id.masked["pic"+j].id = j;
_root.other_id.masked["pic"+j].onRelease = function ():Void {
changepage(this.id);
};
}
}

Newrgun
02.08.2007, 07:57
спасибо большое, все работает, незнал что можно делать так.
тема закрыта

etc
02.08.2007, 10:21
Темы закрывают модераторы.

Читабельность кода надо улучшать:
for (var j = 1; j<total_count_; j++) {
var mc = _root.other_id.masked["pic"+j];
mc.id = j;
mc.onRelease = function () {
changepage(this.id);
};
}
}

Newrgun
02.08.2007, 11:25
извините, незнал