![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
Делаю updateAfterEvent. Как мне замерить время от updateAfterEvent до окончание перерисовки? Это возможно вообще?
|
|
|||||
|
Таймером?
__________________
O God! The Aftermath. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
dmitriev, ну понятно, что таймером. Рендеринг происходит после завершения работы обработчика. updateAfterEvent - это же обновить после события, а не до или во время. Т.е. таймером внутри обработчика я могу замерить только вызов самой функции, которая ничего не отрисовывает. Или я не прав?
|
|
|||||
|
Ааа, кажется начинаю понимать что вы хотите…
Если флеш вначале рендерит, а потом переходит на след кадр, то, видимо, нужно замерить время от события до вхождения в след. кадр.
__________________
O God! The Aftermath. |
|
|||||
|
Нет. Это будет время одного кадра (то есть 1000/fps) при отсутствии тормозов.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Тогда я сдаюсь. =(
__________________
O God! The Aftermath. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
Psycho Tiger, так а отрисовку можно засечь?
|
|
|||||
|
Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
|
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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|