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

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

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
когда считаем раз в 40мс, а отображаем раз в 20 мс, отобразится результат каждого пересчёта - разве нет?
Не факт. Эти значения не гарантированы.
__________________
משיח לא בא
משיח גם לא מטלפן

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

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

Старый 13.07.2011, 17:21
Anton Riot вне форума Посмотреть профиль Отправить личное сообщение для Anton Riot Посетить домашнюю страницу Anton Riot Найти все сообщения от Anton Riot
  № 13  
Ответить с цитированием
Anton Riot

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 291
Отправить сообщение для Anton Riot с помощью ICQ
Получается, они постоянно флуктурируют в диапазоне нескольких десятков мс? Потому что "дёргания" не эпизодические, а постоянные. Это оказалось нетривиальным для меня.

Плюс, т.к. фпс 50 и дискомфорт в восприятии ощутим, получается, мы зрительно воспринимаем задержки в соответствующем временном диапазоне

Добавлено через 2 минуты
-De-, т.к. проблема имеет решение (юзать ENTER_FRAME), она переходит из статуса срочной в статус интересующей

Старый 13.07.2011, 17:34
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 14  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
У таймера, есть зависимость от фпс
Еще в ас1, Колин Мук описывал это. Таким образом, если время между кадрами и время таймера у вас заданы одинаково, то из-за того, что таймер может вызываться с опаздыванием (см. абзац ниже), то, у вас часто таймер будет реально срабатывать только после смены очередного кадра.

В этой же теме, но выше, я приводил пример того, как меняется эта зависимость от фпс. На сколько актуален сейчас этот момент, я не знаю.

Если вы хотите более точно выводить данные через таймер, то фпс надо сделать больше, чем время таймера, а в самом таймере сделать корректировку изменения координат относительно абсолютного времени, а не полагаться на время между вызовами таймера.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 13.07.2011 в 17:46.
Старый 13.07.2011, 17:44
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 15  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
На сколько актуален сейчас этот момент, я не знаю.
Актуален.

Добавлено через 39 минут
Пример:
Код AS3:
package 
{
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.display.StageScaleMode;
	import flash.display.StageAlign;
	import flash.events.Event;
	import flash.geom.Point;
	import flash.utils.setInterval;
 
	[SWF (width = 100, height = 100, frameRate = 25)]
	public class Main extends Sprite 
	{
		private var _spr:Sprite;
		private var vec:Point = new Point();
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
 
			_spr = new Sprite();
			draw(_spr.graphics);
			_spr.x = 50;
			_spr.y = 50;
			addChild(_spr);
 
			setInterval(intervalCallback, 40);
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
		}
 
		private function enterFrameHandler(e:Event):void 
		{
			_spr.x += vec.x;
			_spr.y += vec.y;
 
			trace("enter frame");
		}
 
		private function intervalCallback():void
		{
			vec.x = Math.round(Math.random() * 2 - 1);
			vec.y = Math.round(Math.random() * 2 - 1);
 
			trace("interval");
		}
 
		private function draw(g:Graphics):void
		{
			g.beginFill(0);
			g.drawCircle(0, 0, 10);
			g.endFill();
		}
	}
 
}
При fps:25, interval:40 (в standalone плеере)
Код:
enter frame
interval
enter frame
enter frame
interval
enter frame
interval
enter frame
interval
enter frame
interval
enter frame
enter frame
interval
enter frame
interval
enter frame
enter frame
interval
enter frame
enter frame
interval
enter frame
При fps:50, interval:40 (в standalone плеере)
Цитата:
interval
enter frame
enter frame
enter frame
interval
enter frame
enter frame
interval
enter frame
enter frame
enter frame
interval
enter frame
enter frame
interval
enter frame
enter frame
enter frame
interval
enter frame
enter frame
interval
enter frame
enter frame
enter frame
interval
enter frame
enter frame
__________________
משיח לא בא
משיח גם לא מטלפן


Последний раз редактировалось iNils; 13.07.2011 в 17:46.
Создать новую тему Ответ Часовой пояс GMT +4, время: 08:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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