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

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

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

Регистрация: Oct 2009
Адрес: Калининград
Сообщений: 134
По умолчанию Реализовать плавное движение

Надо реализовать движение по прямой (вертикально вниз), чтоб оно было как можно менее дерганым.

Вот такой скрипт приводит к довольно дерганному движению:

Код AS3:
var c:Sprite = new Sprite();
var a:Bitmap = new MottonBlue();
c.addChild(a);
addChild(c);
c.x = 320;
var t:TweenMax = new TweenMax(c, 1, { y:450 } );
t.ease = Linear.easeNone;
t.addEventListener(TweenEvent.COMPLETE, 
    function (e:TweenEvent):void { t.restart() } );
Вариации с TweenLite/Timer/EnterFrame существенных изменений не вносят.

Возможно ли вообще сделать это? Или это предел, плавнее уже некуда?
__________________
Жду ответа, как соловей лета. (С) Морис Мосс, 'IT Crowd'

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

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
А frameRate(частота кадров) сколько у вас стоит? Чем выше частота, тем более плавнее будет.

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

Регистрация: Oct 2009
Адрес: Калининград
Сообщений: 134
Да не, не помогает
стоит 300)
__________________
Жду ответа, как соловей лета. (С) Морис Мосс, 'IT Crowd'

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Сообщение от Himerets Посмотреть сообщение
Да не, не помогает
стоит 300)
300 FPS? КАК вам это удалось?

Код AS3:
var t:TweenMax = new TweenMax(c, 1, { y:450, onUpdate: upd } );
 
private function upd():void{
c.y=Math.round(c.y);
}

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
300 FPS? КАК вам это удалось?

Код AS3:
var t:TweenMax = new TweenMax(c, 1, { y:450, onUpdate: upd } );
 
private function upd():void{
c.y=Math.round(c.y);
}
ну это как раз обеспечит попиксельное перемещение

Цитата:
Поставьте сглаживание для Bitmap
это работает только если битмап физически лежит на сцене

Цитата:
derhab, а что даст c.scaleX = 1.001 или c.scaleY = 1.001 ?
это даст вам плавное перемещение, по крайней мере должно... в 9-м и 10-м плеере у меня работает
__________________
freelance | Раздор

Старый 17.10.2010, 17:15
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Himerets Посмотреть сообщение
Да не, не помогает
стоит 300)
фпс - один байт. соответственно, вы выставили 300 = 012Ch => 2Ch = 44
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Jan 2010
Адрес: R = |z - z0|
Сообщений: 27
Возможно это не совсем то, что вам надо, но ещё существуют так называемые алгоритмы субпиксельного движения, когда за один такт нужно сдвинуть объект на расстояние, меньшее, чем один пиксель. Все они основаны на особенностях антиальясинга объекта. Если вы двигаете битмап, то это достаточно просто. Вот сходу пример этого подхода:
http://habrahabr.ru/blogs/javascript/67179/

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
попробуйте
Код AS3:
c.scaleX = 1.001 или c.scaleY = 1.001
__________________
freelance | Раздор

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

Регистрация: Oct 2009
Адрес: Калининград
Сообщений: 134
Сверхплавное движение - это, конечно, впечатляет, но у меня там шаг наверно в 7-10 пикселей, так что достаточно снизить до 1 или 2. И, кстати, у меня получилось. Я понизил фпс до 30ти, твин заменил на таймер с задержкой 2 мс, и в хэндлере таймера сделал .updateAfterEvent().

Но за статью все равно спасибо, интересная штука, раньше про это не слышал.

derhab, а что даст c.scaleX = 1.001 или c.scaleY = 1.001 ?
__________________
Жду ответа, как соловей лета. (С) Морис Мосс, 'IT Crowd'

Старый 04.02.2010, 11:40
Diestro вне форума Посмотреть профиль Отправить личное сообщение для Diestro Посетить домашнюю страницу Diestro Найти все сообщения от Diestro
  № 10  
Ответить с цитированием
Diestro
 
Аватар для Diestro

Регистрация: Oct 2006
Адрес: Кисловодск
Сообщений: 192
Отправить сообщение для Diestro с помощью ICQ
Поставьте сглаживание для Bitmap.
__________________
blog.diestro.ru

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

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

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


 


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


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