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

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

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

Регистрация: Jun 2006
Сообщений: 400
По умолчанию updateAfterEvent Время перерисовки. Замерить.

Делаю updateAfterEvent. Как мне замерить время от updateAfterEvent до окончание перерисовки? Это возможно вообще?

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

Регистрация: Jun 2007
Адрес: Челябинск
Сообщений: 303
Отправить сообщение для dmitriev с помощью ICQ
Таймером?
__________________
O God! The Aftermath.

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

Регистрация: Jun 2006
Сообщений: 400
dmitriev, ну понятно, что таймером. Рендеринг происходит после завершения работы обработчика. updateAfterEvent - это же обновить после события, а не до или во время. Т.е. таймером внутри обработчика я могу замерить только вызов самой функции, которая ничего не отрисовывает. Или я не прав?

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

Регистрация: Jun 2007
Адрес: Челябинск
Сообщений: 303
Отправить сообщение для dmitriev с помощью ICQ
Ааа, кажется начинаю понимать что вы хотите…
Если флеш вначале рендерит, а потом переходит на след кадр, то, видимо, нужно замерить время от события до вхождения в след. кадр.
__________________
O God! The Aftermath.

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Нет. Это будет время одного кадра (то есть 1000/fps) при отсутствии тормозов.

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

Регистрация: Jun 2007
Адрес: Челябинск
Сообщений: 303
Отправить сообщение для dmitriev с помощью ICQ
Тогда я сдаюсь. =(
__________________
O God! The Aftermath.

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

Регистрация: Jun 2006
Сообщений: 400
Psycho Tiger, так а отрисовку можно засечь?

Старый 29.01.2010, 14:10
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 8  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Код AS3:
package
{
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	import flash.utils.getTimer;
 
	public class testRedraw extends Sprite
	{
		protected var _count:uint = 100;
		public function testRedraw()
		{
			super();
			init();
			addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove);
		}
 
		private var _t:uint = 0;
		private function onMouseMove(e:MouseEvent):void
		{
			var timer:Timer = new Timer(1);
			timer.addEventListener(TimerEvent.TIMER,onTimer);
			x = x?0:1;
			y = y?0:1;
			e.updateAfterEvent();
			_t = getTimer();
			timer.start();
		}
 
		private function onTimer(e:TimerEvent):void
		{
			trace (getTimer() - _t);
			var timer:Timer = e.target as Timer;
			timer.stop();
			timer.removeEventListener(TimerEvent.TIMER,onTimer);
		}
 
		protected function init():void
		{
			var i:uint = _count;
			while (i--)
			{
				var sp:Sprite = new Sprite();
				var gr:Graphics = sp.graphics;
				gr.beginFill(0,0.2);
				gr.drawRect(0,0,50,50);
				gr.endFill();
				addChild(sp);
				sp.x = Math.random()*500;
				sp.y = Math.random()*500;
			}
		}
	}
}

но точность - супер низкая.

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

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

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


 


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


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