Таймер выдает ошибку AS3 - PullRequest
       6

Таймер выдает ошибку AS3

0 голосов
/ 27 января 2011

У меня проблемы с таймером.Моя цель - вызвать его, когда MOUSE_OVER, и убить его, когда MOUSE_OUT.

Функция для запуска таймера:

   public function timerStart():void {
                var myTimer:Timer = new Timer(1000, 1); // 1 second
                myTimer.addEventListener(TimerEvent.TIMER, runOnce);
                myTimer.start();
            }

Функция для остановки таймера:

    public function timerStop():void {
        myTimer.stop();
    }

Функциядля вызова таймера:

public function rollOverHandler(e:MouseEvent = null):void 
        {

        timerStart();
}

Функция для вызова таймера остановки:

    internal final function rollOutHandler(e:MouseEvent = null):void 
    {
    timerStop(); //this one created the error message
}

Что бы я ни пытался, я получаю это сообщение об ошибке:

1120: Access of undefined property myTimer.

Я понимаютот факт, что он не может остановить таймер, который он не узнает.Но я получаю ошибку еще до любой мышиного действия.Что я вижу неправильно?

Кто-нибудь знает решение?

Ответы [ 2 ]

4 голосов
/ 27 января 2011

Проблема в scope : вы объявляете myTimer как локальную переменную.Ссылка будет удалена после выполнения timerStart ().

Сделайте его переменной-членом , и все должно работать нормально.

О, а также: Сделайте это в rollOutHandler:

if (myTimer != null) timerStop();

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

0 голосов
/ 28 января 2011

Спасибо, Велтраумпират!Ваш ответ только что спас мой день!

public static var myTimer:Timer;
        public function timerStart():void {
             // 1 second
            myTimer = new Timer(1000, 1)
            myTimer.addEventListener(TimerEvent.TIMER, runOnce);
            myTimer.start();
        }

        public function timerStop():void {
            myTimer.stop();
        }


        public function rollOverHandler(e:MouseEvent = null):void 
        {

        timerStart();
...