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

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

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

Регистрация: Jun 2006
Сообщений: 22
По умолчанию Вопрос наверное к профи. (timer)

Вот простенький скрипт который создает интервал в 10мс... но как видите что интервал то больше то меньше. Есть варианты как сделать более точныйинтервал? Нужна максимальная точность

Код:
var prevTime : Number = 0;
var timer = new Timer(10); // ms
timer.addEventListener("timer", timeHandler);
timer.start();

function getTime ()
{
	var d = new Date();
	return d.getTime();
};
		
function timeHandler (event:TimerEvent)
{	
	var cur : Number = getTime();
	var dif : Number = cur - prevTime;
	trace(" current = "+cur+"  prev = "+prevTime+"   dif = "+dif);
	prevTime = cur;
};

Старый 01.08.2007, 02:13
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 2  
Ответить с цитированием
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
есть, пользоваться getTimer() и ставить как можно меньше мусора в команду проверки. интервал никогда не был точен и никогда не будет, в хелпе все расписано, как он работает и почему имеено так а не иначе.
__________________
I'm only happy when it rains.
Waka Laka

Старый 01.08.2007, 02:20
sourcer21 вне форума Посмотреть профиль Отправить личное сообщение для sourcer21 Найти все сообщения от sourcer21
  № 3  
Ответить с цитированием
sourcer21

Регистрация: Jun 2006
Сообщений: 22
Я порнимаю что он небыл точен, но кстати я невидел в хелпе ичто то немогу найти поповоду того почему он так работет а не как то подругому. Не поможешь найти это место в хелпе где написано? Ну хорошо а если мне нужны точные интервалы то что же тогда делать, неужели нет решения никакого? Просто это как бы простой пример если его немного усложнить разброс будет до 200мс ...

Старый 01.08.2007, 10:24
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата из хелпа:

Цитата:
Сообщение от Help
Depending on the SWF file's framerate or Flash Player's environment (available memory and other factors), Flash Player may dispatch events at slightly offset intervals. For example, if a SWF file is set to play at 10 frames per second [fps], which is 100 millisecond intervals, but your timer is set to fire an event at 80 milliseconds, Flash Player will fire the event close to the 100 millisecond interval. Memory-intensive scripts may also offset the events.

Старый 01.08.2007, 11:27
sourcer21 вне форума Посмотреть профиль Отправить личное сообщение для sourcer21 Найти все сообщения от sourcer21
  № 5  
Ответить с цитированием
sourcer21

Регистрация: Jun 2006
Сообщений: 22
Помогите пожалуйста.
Задача по сути элементарная.
Надо сделать тоже самое но чтобы точнее было.
тоесть блок кода который срабатывает каждые 10мс как бы вы это реализовали? помогите пожалуйста.
Я просто уже много что перепробоал ну никак.... реуальтат проде того
10мс
12мс
16мс
15мс
70мс
11мс
10мс
12мс

Тоесть даже 70 мс проскакивает часто хотя комп вобще не загружен.
Помогите пожалуйста, я прям в стопоре.

Старый 01.08.2007, 12:02
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 6  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
врядли такое удасться реализовать
__________________
Челябинские флешеры настолько суровы, что пишут код во Flash IDE

Старый 01.08.2007, 12:09
sourcer21 вне форума Посмотреть профиль Отправить личное сообщение для sourcer21 Найти все сообщения от sourcer21
  № 7  
Ответить с цитированием
sourcer21

Регистрация: Jun 2006
Сообщений: 22
тоесть как я понимаю итог один. Задержки просто надо учитывать каким то образом и делать больше действий на такте с учетом задержки такта. Жопа конечно, но ладно. Но всётаки может еще у кого есть какие то идеи?

Старый 01.08.2007, 12:13
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 8  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Цитата:
Сообщение от sourcer21
Задача по сути элементарная.
Надо сделать тоже самое но чтобы точнее было.
Есть весы с делением 1г. Нужно на них взвесить с точностью до 1 мг. Намек понятен? Задача для флеша не элементарная. В плане изврата, можно кое что предпринять... но это сложно. По крайней мере, один албанец это пробовал решать.

Старый 01.08.2007, 12:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
10 мс — слишком маленький интервал, чтобы быть точным.

Старый 01.08.2007, 13:00
sourcer21 вне форума Посмотреть профиль Отправить личное сообщение для sourcer21 Найти все сообщения от sourcer21
  № 10  
Ответить с цитированием
sourcer21

Регистрация: Jun 2006
Сообщений: 22
Поймите что дело не в том что интервал маленький чтобы быть точным давайте зададим интервал 200мс и всёравно будеь 220, 230, 210, 200 и так далее тут просто проблема точности.
вот примеру если бы можно было реализовать следующую конструкцию то это работало но она не может сужествовать просто из за того что просто завесит комп

Код:
prev=getTimer();

while(1)
{
if((all=(getTimer()-prev))>=10)
{
trace(all);
prev=getTimer();
}
}
есть какие то идеи как придать жизнь такой конструкции?


Последний раз редактировалось etc; 01.08.2007 в 13:04.
Создать новую тему Ответ Часовой пояс GMT +4, время: 05:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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