Форум 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)
-   -   Не работает Math.round() (http://www.flasher.ru/forum/showthread.php?t=121054)

Dicer 06.02.2009 13:41

Не работает Math.round()
 
1). Подскажите, чет не работает.

Код AS1/AS2:

_root["squ"+i+j]._alpha = Math.round(Math.random()*50);

Значения получаются дробными, а почему?

2). Как можно округлять до определенного значения?

artem_fs 06.02.2009 13:46

да работает вроде

lexa2000lexa 06.02.2009 13:47

1 не знаю как у вас но у меня ваш код номально работает.
2. округлять можно вот так
Код AS1/AS2:

trace(Math.round(1.111*10)/10)


iNils 06.02.2009 13:51

Код:

Значения получаются дробными, а почему?
Вы это у альфы потом смотрите?

Dicer 06.02.2009 13:52

так, понятно что ничего не понятно, привожу код целиком

Код AS1/AS2:

for (i=1; i<=6; i++) {
        for (j=1; j<=6; j++) {
                attachMovie("squ", "squ"+i+j, i*10+j, {_x:50*j, _y:50*i});
                attachMovie("squ_ram", "squ_ram"+i+j, 100+i*10+j, {_x:50*j, _y:50*i});
                z = Math.round(Math.random()*50);
                trace(z);
                _root["squ"+i+j]._alpha = z;
                _root["squ"+i+j].onRollOver = function() {
                        trace(this+"  "+this._alpha);
                };
        }
}

вот z ровное, но когда присвается к объекту как _alpha, становится дробным.

iNils 06.02.2009 13:58

Это особенность реализации альфы. Мы процентный доступ, а внутренняя реализация преобразует проценты в значения диапазона 0..255. Отсюда погрешность. Это нормально.
Код AS1/AS2:

var m = 256 / 100;
for (var i = 0; i < 101; i++) {
        this._alpha = i;
        var alpha = Math.floor (i * m) / m;
        trace (i + " " + (this._alpha == alpha));
}


Dicer 06.02.2009 14:13

lexa2000lexa Спасибо, разобрался.
А с альфой странно конечно, ладно когда я ее вычисляю, могу понять, но когда целое число присваивается, все равно остается дробным...
Спасибо и на этом, а то голову ломал :)


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

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