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

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

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

Регистрация: May 2011
Адрес: 0,0,0 относительно меня
Сообщений: 123
По умолчанию особенности хранения дробных чисел?

Меняю альфу объекта таймером: +0.01 за тик.
Трэйс выводит следующие значения альфы:
Код:
0.0078125
0.015625
0.0234375
0.03125
0.0390625
0.046875
0.0546875
...
Итого за 100 итераций значение альфы изменилось от 0 до 0.78125 вместо единицы.
В общем как мне выполнить задуманное? т.е. за сто итераций плавно поменять значение альфы от нуля до единицы.

Старый 07.08.2013, 20:42
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 2  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Мне тоже это интересно)

Добавлено через 37 секунд
Тот же намбер равняется сто...а альфа нет.

Добавлено через 5 минут
Если посмотреть на первое значение, то складывается чувство, что она от значения 250 отсчитывается и при делении или переводе по чуть-чуть режет.

Старый 07.08.2013, 21:36
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 3  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Сообщение от zxcv Посмотреть сообщение
В общем как мне выполнить задуманное? т.е. за сто итераций плавно поменять значение альфы от нуля до единицы.
Ничего необычного. Читайте.
А по вопросу... Считайте номер шага. Считайте альфу напрямую из номера шага (одно деление).

Старый 07.08.2013, 21:40
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 4  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Объяснение, почему так происходит, можете почитать здесь.

Старый 07.08.2013, 22:05
zxcv вне форума Посмотреть профиль Отправить личное сообщение для zxcv Найти все сообщения от zxcv
  № 5  
Ответить с цитированием
zxcv
 
Аватар для zxcv

Регистрация: May 2011
Адрес: 0,0,0 относительно меня
Сообщений: 123
Спасибо за ссылки - наконец, до конца вник в это дело! А то я знал, что бывают округления, но подумал, что в данном случае оно слишком грубое.
Еще раз спасибо! И картинка хороша, да)

Старый 08.08.2013, 16:28
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 6  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Кстати, немного оффтоп, но тем не менее, кто нибудь натыкался на as3 библиотеки для арифметики с Numbers? На яваскрипте такие есть, на as3 не встречал.

Старый 08.08.2013, 16:43
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 7  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Там не совсем в ошибках округления дело. Альфа - на самом деле один байт всего. Т.е. всего 256 значений. Потому точность крайне низкая. Держите параллельно Number, увеличивайте его и альфу присваивайте этому Number.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 08.08.2013, 17:35
FlashRus вне форума Посмотреть профиль Отправить личное сообщение для FlashRus Найти все сообщения от FlashRus
  № 8  
Ответить с цитированием
FlashRus
 
Аватар для FlashRus

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 918
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
Раз уж такая пляска....

Код AS3:
 
var alphaCounter:int = 0
 
function timerHandler(e:TimerEvent):void {
	alphaCounter ++;
	мойDO.alpha = alphaCounter / 100;
}
И памяти меньше займёт и точность выше будет.
__________________
ЛОДКИ

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

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

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


 


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


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