Форум 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)
-   -   Флеш некоректно считает (http://www.flasher.ru/forum/showthread.php?t=128279)

Evgan 04.08.2009 01:12

Флеш некоректно считает
 
доброго времени суток
недумал что когда-нибудт с такой проблемой сталкнусь
может кто переболел таким?:

двигаются картинки галереи по средством переодичного прирощения к их координате значение параметра V

Код:

var Vmax:Number=1;
var V:Number=Vmax;
var dV:Number=0.1;

если наводим на на стрелочки ускорения движения, то переопределяем максимальную скорость:

Код:

Vmax=5;
или (в зовисимости от на какую именно навели)
Код:

Vmax=-5;
в переодичной функции, где происходит прирощение координаты, до этого события есть блок "плавного изменения скорости", что бы плавно "набирали" новую скорость:

Код:

    if (V<Vmax) {
          V += dV;
    }

    if (V>Vmax) {
          V -= dV;
    }

и бывает такие случаи, что установившееся значение скорости принимает непонятные значения:

при Vmax=-5, V=-5.1
при Vmax=2, V=-1.9
при Vmax=3, V=-2.9
при Vmax=4, V=-4.9

пытался найти момент сбоя и нашол (с помощью треев):

Код:

                      trace('_root.Vmax = '+_root.Vmax);
                trace('_root.V n = '+_root.V);
                trace(_root.V<_root.Vmax);
                if (_root.V<_root.Vmax) {
                        _root.V += _root.dV;
                        trace('_root.V изм1 = '+_root.V);
                }
                trace('_root.Vmax = '+_root.Vmax);
                trace('_root.V m= '+_root.V);
                trace(_root.V>_root.Vmax);
                //trace(_root.V == _root.Vmax);
                if (_root.V>_root.Vmax) {
                        _root.V -= _root.dV;
                        trace('_root.V изм2 = '+_root.V);
                }
                trace('_root.V на прир = '+_root.V);

вот что трей выдал (по завершению набора скорости Vmax=-5):

Код:

_root.Vmax = -5
_root.V n = -5
false
_root.Vmax = -5
_root.V m= -5
true
_root.V изм2 = -5.1
_root.V на прир = -5.1

В шестой строчки мы видим true, но как такое может быть что один больше другого, если до этого мгновение трей показывает что действительно V и Vmax равно по -5?! что за чудеса такие?

спасибо всем кто откликниться по поводу этого недорозумения

aksios 04.08.2009 07:49

Флеш по версии АС1 не предназначен для работы с дробями. 5,1 пикселя не бывает.

etc 04.08.2009 08:07

Цитата:

Сообщение от aksios (Сообщение 840367)
Флеш по версии АС1 не предназначен для работы с дробями. 5,1 пикселя не бывает.

5 пиксела и два твипа бывает :)


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

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