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

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

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

Регистрация: Aug 2010
Сообщений: 15
По умолчанию Округление позиции DisplayObject

Вот заметил странное поведение
Код AS3:
var needle_x:Number = 392.2007964342693;
 
var sp:Sprite = new Sprite();
sp.x = needle_x;
 
trace("x: " + needle_x.toString());
trace("result x: " + sp.x.toString());
Код:
x: 392.2007964342693
result x: 392.2
Можно ли это как-нибудь обойти?
Нужно, из-за того, что возникает заметное подергивание при движении объекта.

Старый 12.09.2010, 18:53
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 2  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
как бэ реальный пиксель это целое число, что вы собственно от дроби то хотите?

Старый 12.09.2010, 19:06
vsesh вне форума Посмотреть профиль Отправить личное сообщение для vsesh Найти все сообщения от vsesh
  № 3  
Ответить с цитированием
vsesh

Регистрация: Aug 2010
Сообщений: 15
Да забыл добавить, что движение основанное на getTimer(). fps = 30, реальная fps такая же - только иногда на доли секунды падает до 29. Заметил, что подергивание возникает только с растровыми объектами. Видимо, дело в чем то другом.


Последний раз редактировалось vsesh; 12.09.2010 в 19:08.
Старый 12.09.2010, 19:16
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 4  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
дело может быть в Bitmap#pixelSnapping, Bitmap#smoothing, Bitmap#scaleX/scaleY

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
как бэ реальный пиксель это целое число, что вы собственно от дроби то хотите?
Неа. Во флеше 1 пиксель представлен 20-ю twip'ами. Twip - это такая единица графического вывода для FP. То есть при выводе на экран все округляется до 1/20 пикселя. Что мы и видим - задаем точное значение, получаем неточное.
Однако, хочу заметить, что так быть не должно - это скорее недоработка Adobe, ибо одно дело позиция на экране (да, ее можно округлить в целях упрощения вывода), а другое дело - реальная позиция в системе координат контейнера.
Что касается растровых изображений - Bitmap.smoothing и Bitmap.pxelSnapping в помощь. Все решаемо
__________________
...вселенская грусть

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
это скорее недоработка Adobe
Это сделано для отображения векторной графики

Старый 12.09.2010, 19:56
vsesh вне форума Посмотреть профиль Отправить личное сообщение для vsesh Найти все сообщения от vsesh
  № 7  
Ответить с цитированием
vsesh

Регистрация: Aug 2010
Сообщений: 15
в чем дело я не нашел, но все быстро движущиеся элементы через illustrator "пропустил" (эти элемент достаточно абстрактны), а уже после во flash вставлял - в общем не как bitmap, а как drawing object - для моей конкретной задачи, все же решение.

Bitmap.smoothing - не особо помог - сама картинка стала меньше дергаться, а движение такое же как и было


Последний раз редактировалось vsesh; 12.09.2010 в 19:58.
Старый 12.09.2010, 19:58
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Не думаю, что это недоработка. Просто Adobe как бы говорит: не устраивайте из DisplayObject хранилище сверхточных чисел, отделяйте данные об объекте от его отображения.
__________________
Поймай яблоко 2!

Старый 12.09.2010, 20:09
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 9  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Просто Adobe как бы говорит: не устраивайте из DisplayObject хранилище сверхточных чисел, отделяйте данные об объекте от его отображения.
еще раз
Цитата:
отделяйте данные об объекте от его отображения.
Вы только что сами сказали, что это недоработка.

@alatar
Цитата:
Это сделано для отображения векторной графики
Какое отношение сеттер имеет к выводу на экран? В моем понимании он должен округлять данные вида, да, но никак не данные модели
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 12.09.2010 в 20:13.
Старый 12.09.2010, 20:24
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 10  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от gloomyBrain Посмотреть сообщение
Вы только что сами сказали, что это недоработка.
хде? и что это снова за "Вы"? =)
__________________
Поймай яблоко 2!

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

Теги
округление , позиция

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

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


 


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


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