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

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

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

Регистрация: Oct 2013
Сообщений: 126
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Альфа хранится в 8-битном канале, и то, что вы указываете, сначала конвертируется в int, а для получения обратно из int во float.
Более подробно вот тут написано http://stackoverflow.com/questions/1...ults-in-the-al
Поэтому ни о какой подобной точности можно даже не мечтать в данном случае

Что-то мне подсказывает, что это здесь не поможет. Числа то храниться будут, но на альфу это скорее всего не подействует
действительно, не подействовало. Использовал отдельную переменную _al:Number, менял в шаге её:
Код AS3:
_al -= .0001;
alpha = _al;
В итоге trace сначала выдал число 0.99609375 около 40 раз подряд, затем столько же - 0.9921875, и так далее. Так что, выходит, что минимальный шаг изменения alpha - 0.004. Всем спасибо за познавательные советы!
А, нет, ещё один вопрос: раз уж флэш всё равно округляет указываемые числа до минимального (т.е. в данном случае до 0.004), верным ли будет утверждение, что лучше тогда не менять alpha на число, меньшее данного предела, чтобы не занимать память лишними вычислениями? (т.е. менять alpha на 0.005 ещё имеет смысл, а на 0,003 уже нет)

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

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Я вижу тут 3 решения проблемы - либо твинер, либо таймер, либо написать функцию которая будет декреминтировать значение через несколько шагов ENTER-FRAME. А замедлить "таянье" объекта напрямую, как хочет ТС не получится.

Старый 22.01.2015, 13:51
KBAC вне форума Посмотреть профиль Отправить личное сообщение для KBAC Найти все сообщения от KBAC
  № 13  
Ответить с цитированием
KBAC
 
Аватар для KBAC

Регистрация: Jan 2006
Адрес: Москва (Нижний Новгород)
Сообщений: 229
Записей в блоге: 1
Отправить сообщение для KBAC с помощью Skype™
Цитата:
В итоге trace сначала выдал число 0.99609375 около 40 раз подряд, затем столько же - 0.9921875, и так далее. Так что, выходит, что минимальный шаг изменения alpha - 0.004.
Так вы же получили нужное замедление. Неважно что реальная alpha не будет меняться несколько кадров - скорость её пропадания стала меньше. Визуально будет выглядеть как надо.
__________________
Будь проще.

Старый 22.01.2015, 15:52
a7s1h1 вне форума Посмотреть профиль Отправить личное сообщение для a7s1h1 Найти все сообщения от a7s1h1
  № 14  
Ответить с цитированием
a7s1h1

Регистрация: Oct 2013
Сообщений: 126
Цитата:
Сообщение от KBAC Посмотреть сообщение
Так вы же получили нужное замедление. Неважно что реальная alpha не будет меняться несколько кадров - скорость её пропадания стала меньше. Визуально будет выглядеть как надо.
Ой, а ведь и правда! Получилось, что отдельная переменная типа Number - это как бы счётчик, который, уменьшаясь на величину, меньшую, чем минимальная величина изменения альфы, с соответствующей периодичностью отщёлкивает альфу на её минимальную величину! Всё оказалось просто! Радует не столько решение проблемы, сколько понимание её причины. Спасибо всем огромное!

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,921
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Сообщение от a7s1h1 Посмотреть сообщение
Ой, а ведь и правда! Получилось, что отдельная переменная типа Number - это как бы счётчик, который, уменьшаясь на величину, меньшую, чем минимальная величина изменения альфы, с соответствующей периодичностью отщёлкивает альфу на её минимальную величину! Всё оказалось просто! Радует не столько решение проблемы, сколько понимание её причины. Спасибо всем огромное!
А вы поняли причину? Я вот, не совсем понял.
Мб, вы хотели сказать, понимание решения проблемы?)
__________________
There is no thing in this world that is not simple.

Старый 22.01.2015, 17:34
a7s1h1 вне форума Посмотреть профиль Отправить личное сообщение для a7s1h1 Найти все сообщения от a7s1h1
  № 16  
Ответить с цитированием
a7s1h1

Регистрация: Oct 2013
Сообщений: 126
Цитата:
Сообщение от SuriTheAngel Посмотреть сообщение
А вы поняли причину? Я вот, не совсем понял.
Мб, вы хотели сказать, понимание решения проблемы?)
Я хотел сказать, что был рад узнать, что причина моей проблемы в том, что у альфы есть минимальный шаг изменения. В свою очередь, причину такого ограничения объяснил caseyryan:
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Альфа хранится в 8-битном канале, и то, что вы указываете, сначала конвертируется в int, а для получения обратно из int во float.
Более подробно вот тут написано http://stackoverflow.com/questions/1...ults-in-the-al

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

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

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


 


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


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