Как быстрее обновить код as3?

Можно ли как-то обновить мой код (as3) более 1 раза за кадр? он не должен делать ничего визуального. Я использовал перед событием.ENTER_FRAME. Если есть способ сделать это, может кто-нибудь объяснить или дать ссылку, как это сделать. Спасибо.


person user2300416    schedule 19.04.2013    source источник
comment
Что именно вы так часто пытаетесь обновить? Если это что-то на сцене, более частое обновление не будет иметь никакого значения, поскольку сцена обновляется только один раз за кадр.   -  person Josh    schedule 19.04.2013
comment
hitTestPoints сталкивается с объектами   -  person user2300416    schedule 19.04.2013
comment
Вы можете добиться гораздо лучших результатов с помощью CCD (непрерывное обнаружение столкновений: google.com/search ?q=непрерывно+столкновение+обнаружение)   -  person NemoStein    schedule 20.04.2013


Ответы (2)


Вы можете использовать таймер для выполнения кода с любой скоростью:

 // first parameter for Timer is duration in milliseconds 1000ms = 1 second.
var timer:Timer = new Timer(10,0); 
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.start();


function timerHandler(e:TimerEvent):void
{
    // do something;
}

Однако я бы спросил, почему вы хотите это сделать, и определить, действительно ли это необходимо.

person prototypical    schedule 19.04.2013
comment
Я пытаюсь обновить hitTestPoints для игры-платформера, чтобы мой игрок не проходил сквозь стены, если hitTestPoints не обновляются достаточно быстро PS: спасибо, я попробую это - person user2300416; 19.04.2013
comment
Эй, это сработало! Большое спасибо за помощь, и вот моя игра. обратите внимание на разницу между столкновением со стеной справа и слева. mediafire.com/?182i8fj1yaakqhq - person user2300416; 19.04.2013
comment
Здорово. Другой подход заключается в выполнении нескольких итераций обновления/коллизии в кадре. Таким образом, если вы получаете квант времени, скажем, 30 миллисекунд в заданном кадре, вы должны сделать три итерации по 10 секунд в этом кадре. С этим методом у вас будет меньше событий, но не уверен, что это важно. - person prototypical; 19.04.2013

Если ваше приложение работает со скоростью 30 кадров в секунду, вы можете настроить его на работу со скоростью 60 кадров в секунду, тогда ENTER_FRAME будет вызываться в два раза чаще, или, если вы используете таймер для обновления, вы можете уменьшить его задержку вдвое.

person Barış Uşaklı    schedule 19.04.2013
comment
Да, я знаю, но я хочу, чтобы он работал даже с большей плотностью, чем моя частота кадров. - person user2300416; 19.04.2013
comment
Затем вы должны использовать таймер, который вызывается в два раза чаще. - person Barış Uşaklı; 19.04.2013