PDA

Просмотр полной версии : Логика работы do while


Dimalar
31.10.2006, 16:03
Помогите разобраться в логике данного скрипта:

_root.mc3.onPress=function() {
this.onEnterFrame=function() {
do {
this._height +=1;
this._width +=1;
} while (this._height<300 && this._width<500);
}
}

Изначально размер клипа 40X40. Что присходит: размер клипа резко становится 500X300, после этого начинается его плавное увеличение.

Разве он не должен плавно увеличиваться до тех пор, пока размеры не станут 500X300, а затем остановиться?

iNils
31.10.2006, 16:11
_root.mc3.onPress = function () {
this.onEnterFrame = function () {
var flag = 0;
if (this._height < 300) {
this._height += 1;
} else {
flag++;
}
if (this._width < 500) {
this._width += 1;
} else {
flag++;
}
if (flag == 2) {
delete this.onEnterFrame;
}
};
};

Dimalar
31.10.2006, 16:21
Спасибо большое, помогло!
И всё-таки интересно, почему do while не сработал?

iNils
31.10.2006, 16:23
Потому, что do while создает цикл внутри одного кадра до тех пор пока нужные параметры условие не будут удовлетворять условиям. Вам же нужно делать только одно приращение.