Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Логика работы do while (http://www.flasher.ru/forum/showthread.php?t=87200)

Dimalar 31.10.2006 16:03

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

Код:

_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 создает цикл внутри одного кадра до тех пор пока нужные параметры условие не будут удовлетворять условиям. Вам же нужно делать только одно приращение.


Часовой пояс GMT +4, время: 00:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.