PDA

Просмотр полной версии : Минимальное приращение координаты.


Barss07
28.10.2005, 18:32
Так вышло, что мне клип надо было сдвигать на очень маленькое значение. И я столкнулся с проблемкой.

(Извините, если это всем известно.)

mov._x+=1/25; //(в цикле)

Из-за этой строки я чуть не свихнулся, потому что приращение оказалось может быть только кратным 0.05 :)
Т.е. 0.04 прибавить невозможно, оно все равно будет прибавлять 0.05.
Соответственно пришлось вводить какую-то "левую" переменную и "накручивать" ее.

Вот просто интересно - кто-нибудь сталкивался?

Gaen
28.10.2005, 19:05
как-то не приходилось... :)

iNils
29.10.2005, 13:06
Точность математических операций, оставляет желать лучшего.
Пример
for (var i = 6; i < 10; i += .1) {
trace (i);
}

Barss07
29.10.2005, 15:36
Мдя :)
Но это все-таки несколько другой случай.
Тут - явная погрешность вычислений.

Мой же случай - связан именно с координатой.
Там стоит какое-то специальное ограничение, связанное, возможно, с тем, что вряд ли кому-то придется наращивать координату на такое маленькое значение. А у меня такая задача была, один объект должен двигаться в 25 раз медленне другого. И вот тут синхронизация неожиданно (для меня) нарушилась и я долго не мог найти причину.

(Вдруг кому-то пригодится... не наступайте на мои грабли :) )

iNils
29.10.2005, 15:55
Колин Мука:
Дробные значения _x аппроксимилируются во Flash с помощью сглаживания. Базовая единица измерения во Flash - 1/20 часть пиксела, поэтому минимальное допустимое перемещение клипа составляет 0,05 пискела.

iNils
29.10.2005, 15:59
Обойти можно есть два способа:
1. Ввести переменую которой присваивать значение +0.04, эту переменную потом присваивать как координату. Ошибки все равно будут, но они не будут накапливаться.

2. Увеличить объекты в 25, приращение увеличить до 1, и все это засунуть в клип который уменьшить в 25 раз. :)

Barss07
29.10.2005, 16:25
Именно первый вариант я и реализовал.

А насчет Колин Мука - нету пока книги.
Три недели назад заказал по Инету и вот пока все жду...
Надеюсь, с появлением книги и некоторые другие вопросы разрешатся :)

iNils, спасибо за ответ.