Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.08.2009, 01:12
Evgan вне форума Посмотреть профиль Отправить личное сообщение для Evgan Найти все сообщения от Evgan
  № 1  
Ответить с цитированием
Evgan

Регистрация: Jun 2008
Сообщений: 283
Thumbs up Флеш некоректно считает

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

двигаются картинки галереи по средством переодичного прирощения к их координате значение параметра 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?! что за чудеса такие?

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


Последний раз редактировалось Evgan; 04.08.2009 в 01:17.
Старый 04.08.2009, 07:49
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 2  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Флеш по версии АС1 не предназначен для работы с дробями. 5,1 пикселя не бывает.

Старый 04.08.2009, 08:07
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от aksios Посмотреть сообщение
Флеш по версии АС1 не предназначен для работы с дробями. 5,1 пикселя не бывает.
5 пиксела и два твипа бывает

Создать новую тему Ответ Часовой пояс GMT +4, время: 08:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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