Flex 4 таймера продолжают стрелять - PullRequest
1 голос
/ 07 октября 2010

Я пытаюсь создать простой проект flex4, в котором задействованы некоторые таймеры, запускающие другие функции.

У меня мало опыта с Action Script и тем более с событиями таймера.

Вот немного моего кода, который, кажется, работает по большей части, но вы добавляете строки, где я складываю общий счет (оценка = оценка +1;), кажется, просто продолжаю добавлять и добавлять, когда я тестирую приложение.Я думаю, потому что таймеры продолжают активировать функцию, но я не уверен.

            private var score:int = 0;

        private function submit():void {
            this.currentState = 'loading';
            var timer:Timer = new Timer(2200);
            timer.addEventListener(TimerEvent.TIMER, removeLoading);
            timer.start();
        }

        private function removeLoading(event:TimerEvent):void{
            removeloading.play();
            var timer1:Timer = new Timer(1000);
            timer1.addEventListener(TimerEvent.TIMER, viewResults);
            timer1.start();
            this.currentState = 'results';
        }

        private function viewResults(event:TimerEvent):void{

            if (q1_t.selected == true){
                answer1m.text = 'You Answer the Question Correctly.';
                score = score +1;

            } else {
                answer1m.text ='The Correct answer was: '+ q1_t.label;
            }

            if (q2_f.selected == true){
                answer2m.text = 'You Answer the Question Correctly.';
                score = score +1;

            } else {
                answer2m.text ='The Correct answer was: '+ q2_f.label;
            }

            finalscore.text = score.toString();
        }

1 Ответ

2 голосов
/ 07 октября 2010

Итак, я провел немного больше исследований и выяснил, что не включил второй параметр таймера.

Второй параметр - это количество раз, которое событие TimerEvent.TIMER будет отправлено перед остановкой.Если вы установите второй параметр на 0 (ноль) или полностью его опустите, таймер будет работать вечно (или до тех пор, пока вы не вызовете метод stop () для экземпляра таймера.

Поскольку я хочу только запустить событиеоднажды мне нужно добавить 1.

Из этого:

var timer:Timer = new Timer(2200);

К этому:

var timer:Timer = new Timer(2200,1);
...