-2

我真的不知道出了什么问题。我继续一遍又一遍地遇到同样的错误。访问第 31、32 和 46 行的未定义属性 OneSecTimer。这是我第一次使用 Flash 编码,所以我真的不知道这里发生了什么。OnTimeComplete 应该是私有的,但这就是不访问事物的原因吗?

包裹 {

import flash.display.MovieClip;

import flash.events.TimerEvent;
import flash.utils.Timer;


public class MainTimer extends MovieClip {
    // Init vars for class
    private var currentMin:int;
    private var currentSec:int;
    // create a one second timer from Flash's Timer class
    private var onSecTimer:Timer = new Timer(1000,1);            

    public var timerHasStopped:Boolean = false;

    public function MainTimer() {
        // constructor code
        trace("the main timer is here");
        currentMin= 2;
        currentSec = 5;

        minBox.text = String(currentMin);
        if(currentSec < 10){
            secBox.text = "0" + String(currentSec);
        }else{
            secBox.text = String(currentSec);
        }

        oneSecTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
        oneSecTimer.start();
    }

    private function onTimerComplete(event:TimerEvent):void{
        currentSec = currentSec - 1;
        if (currentSec < 0){
            currentSec = 59;
            currentMin -= 1;
        } //end if
        if(currentMin < 0){
            currentMin = 0;
            currentSec = 0;
            timerHasStopped = true;
        }else{
            oneSecTimer.start();
        } //end else

        //update the display
        minBox.text = String(currentMin);
        secBox.text = String(currentSec);
        if(currentSec < 10){
            secBox.text = "0" + String(currentSec);
        }//end if                

    }//end function 

}

}

4

1 回答 1

1

你有一个拼写错误

private var onSecTimer:Timer = new Timer(1000,1);        

应该

private var oneSecTimer:Timer = new Timer(1000,1);            

(你错过了一个e

当您收到有关缺少属性的错误时,您通常应该做的第一件事是转到您认为定义它的位置,并确保它的定义与您期望的完全一致:)

于 2013-03-09T15:46:10.617 回答