Запуск нескольких таймеров одновременно в AS3 - PullRequest
0 голосов
/ 02 февраля 2012
var LevelCode:Array = [10,20,30,40,50,60,70,80,...,990,1000];
var Piece0:Timer = new Timer(50, LevelCode[0]);
var Piece1:Timer = new Timer(50, LevelCode[1]);
...
var Piece98:Timer = new Timer(50, LevelCode[98]);
var Piece99:Timer = new Timer(50, LevelCode[99]);

Я хочу запустить таймер Piece0, таймер Piece1 и т. Д. Одновременно.Я пытался Piece0+Piece1.start();, но это не сработало.

Можете ли вы мне помочь?

Ответы [ 3 ]

5 голосов
/ 03 февраля 2012

может быть, вам не нужно много таймеров, поскольку вы используете идентичные таймеры 50 миллисекунд.почему бы вам не использовать один таймер и обработать событие в функции, указанной в addEventListener?

var myTimer:Timer = new Timer(50);
myTimer.addEventListener(TimerEvent.TIMER, timerElapsed);
myTimer.start();

function timerElapsed(event:TimerEvent):void 
{
    //handle your levels here
}
3 голосов
/ 02 февраля 2012

Бег

Piece0.start();
Piece1.start();

Запустит их достаточно близко к тому же времени, чтобы оказаться ниже порога, который они могут разрешить, так что они будут эффективно одновременно.Запуск таймера не является ресурсоемким процессом.

0 голосов
/ 03 февраля 2012

Вы не можете полагаться на таймеры, запускающиеся одновременно, как этот.
Это очень плохая реализация, и вам нужно подумать о редизайне.
ActionScript не является многопоточным и поэтому является асинхронным.
Из-за этого никакие два события таймера никогда не будут срабатывать одновременно.
Это всегда будет один за другим.
Вы должны следовать предложению Вулканино и объединить все в один звонок.
Кроме того, наличие более 100 событий таймера - это слишком много, и можете ли вы быть уверены, что все 100 событий таймера будут обработаны за 50 миллисекунд, которые вы даете им запустить?
Если нет, вы рискуете некоторыми «пересекающимися проблемами», которые зависят от кода, который вы делаете в функциях обратного вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...