AS3 Как добавить секунды к (игровому) таймеру после тестирования? - PullRequest
0 голосов
/ 24 декабря 2011

У меня есть таймер и динамическое текстовое поле, которое отображает время.Каждый раз, когда мой видеоклип поражает врага, я хочу, чтобы таймер добавлял 4 секунды.на текущий счет.Я хотел бы знать, почему это не работает:

timer.currentCount + 4;

(ничего не делает)

timer.currentCount += 4;

(ошибка: свойство доступно только для чтения)

AmЯ в любом случае в правильном направлении, и что я должен изменить?

Ответы [ 2 ]

2 голосов
/ 24 декабря 2011

Как указано в другом ответе, вы не можете регулировать прошедшее время вашего таймера.То, что вы можете попытаться сделать, это создать отдельную переменную, которую вы называете var elapsedTime:Number; каждый раз, когда отметки timer добавляют 1 к этой переменной.Когда происходит тестирование, вы можете просто добавить к нему 4.

Поскольку вы используете переменную, чтобы «манипулировать» временем, когда вам больше не нужно использовать currentCount.Просто обратитесь к elapsedTime в функции обновления, и все будет в порядке.

Это будет выглядеть так:

var timer:Timer = new Timer(1000);
var elapsedTime:Number = 0;

timer.addEventListener(TimerEvent.TIMER, onTimerTick);

function onTimerTick(e:TimerEvent) : void
{
    elapsedTime++;
    updateTimerTxt();
}

function onHitTest() : void
{
    elapsedTime += 4;
    updateTimerTxt();
}

function updateTimerTxt() : void
{
    timertxt.text = String(elapsedTime);
}
0 голосов
/ 24 декабря 2011

Свойство currentCount доступно только для чтения. Вы не можете изменить истекшее время таймера. Если вам нужно изменить таймер, вы можете остановить его и создать новый с измененным интервалом.

...