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

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

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от fish_r Посмотреть сообщение
как же заданный fps выдерживается?
Среда выполнения ждет визуализации. Она настает через дельта t, оставшееся после выполнения кода.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Соответственно, если вычислений много - то fps падает и не выдерживается на заданном уровне.

Старый 29.04.2011, 16:20
honest_man вне форума Посмотреть профиль Отправить личное сообщение для honest_man Найти все сообщения от honest_man
  № 13  
Ответить с цитированием
honest_man

Регистрация: Aug 2010
Сообщений: 86
fish_r, вы хотите чтобы после определенного кадра не происходило задержки?
Тогда выполните постсобытийное обновление в функции-приемнике события :MouseEvent, :KeyboardEvent или :TimerEvent.
Код AS3:
//Кадр №n
var testTimer :Timer = new Timer(1,1);
testTimer.addEventListener(TimerEvent.TIMER, listener);
testTimer.start();
 
function listener (e:TimerEvent)
{
e.updateAfterEvent();
}
Других способов я незнабю. Хотя еще можно временно увеличить скорость кадров, чтобы создать эффект отсутствия задержки:
Код AS3:
//Кадр №7
this.stage.frameRate = 1000;
Код AS3:
//Кадр №8
this.stage.frameRate = 24;


Последний раз редактировалось honest_man; 29.04.2011 в 16:23.
Старый 29.04.2011, 16:37
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 14  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от dimarik Посмотреть сообщение
Среда выполнения ждет визуализации. Она настает через дельта t, оставшееся после выполнения кода.
Спасибо, dimarik. Пока этой информации по вопросу достаточно.

Добавлено через 2 минуты
Цитата:
Сообщение от honest_man Посмотреть сообщение
fish_r, вы хотите чтобы после определенного кадра не происходило задержки?
Тогда выполните постсобытийное обновление в функции-приемнике события :MouseEvent, :KeyboardEvent или :TimerEvent.
Код AS3:
//Кадр №n
var testTimer :Timer = new Timer(1,1);
testTimer.addEventListener(TimerEvent.TIMER, listener);
testTimer.start();
 
function listener (e:TimerEvent)
{
e.updateAfterEvent();
}
Других способов я незнабю. Хотя еще можно временно увеличить скорость кадров, чтобы создать эффект отсутствия задержки:
Код AS3:
//Кадр №7
this.stage.frameRate = 1000;
Код AS3:
//Кадр №8
this.stage.frameRate = 24;
С updateAfterEvent() пробовал, но fps не изменился. Последние два тоже не годятся, дают косвенный результат. Спасибо, но видимо простых решений нет ... если вообще есть.


Последний раз редактировалось fish_r; 29.04.2011 в 19:58.
Старый 29.04.2011, 16:47
honest_man вне форума Посмотреть профиль Отправить личное сообщение для honest_man Найти все сообщения от honest_man
  № 15  
Ответить с цитированием
honest_man

Регистрация: Aug 2010
Сообщений: 86
Цитата:
Сообщение от fish_r Посмотреть сообщение
С updateAfterEvent() пробовал, но fps не изменился.
fps при этом меняться не должен, просто updateAfterEvent() заставляет среду на 1 кадр игнорировать fps, ведь когда обновляется экран визуализируются ВСЕ изменения, а не только те, что запрограммированы в функции-приемнике.
Цитата:
Сообщение от fish_r Посмотреть сообщение
Последние два тоже не годятся, дают косвенный результат. Спасибо, но видимо простых решений нет ... если вообще есть.
А вот тут как раз должен меняться fps.

Добавлено через 14 минут
Не, был не прав по поводу игнорирования fps.
updateAfterEvent() заставляет экран обновляться, но при этом не происходит переход на другой кадр, а продолжается тянуться, как выразился dimarik, дельта t до запланированного обновления.


Последний раз редактировалось honest_man; 29.04.2011 в 17:09.
Старый 29.04.2011, 18:08
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 16  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от honest_man Посмотреть сообщение
updateAfterEvent() заставляет экран обновляться, но при этом не происходит переход на другой кадр, а продолжается тянуться, как выразился dimarik, дельта t до запланированного обновления.
да, тоже пришёл к такому выводу.

Цитата:
Сообщение от honest_man Посмотреть сообщение
А вот тут как раз должен меняться fps.
Но изменение fps не является самоцелью. Целью является устранение ожидания перехода, и за счет этого поднятие fps.

Меня, вообще, это заинтересовало в плане тестирования быстродействия.

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

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

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


 


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


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