1

私はこれを何時間も解決してきましたが、なぜ解決できないのかわかりません。次のコードがあります。

var Timer_Tick;
var Game_Engine = {
    //Set the min and sec of the timer by default is 2 min
    min:1,
    sec:60,
    star_count: 0,
    tongue_count: 0,
    time: '',
    star1: '',
    star2: '',
    star3: '',
    star_bar: '',
    tongue_bar: '',
    frog: '',
    bug: '',
    flower: '',
    Timer: function () {
        //Start Timer
        var that = this;
        var stop = function () { that.stopTimer(); };
        Timer_Tick = setTimeout(function () {
                var Time = new Date(0, 0, 0, 0, that.min, that.sec--).toTimeString().slice(3,8);
                that.time.text = Time;
                console.log(that.min + ':' + that.sec);
                    if (that.min === 1 && that.sec === 40) {
                        that.bug.gotoAndPlay('take_photo');
                        that.flower.onPress = null;
                        stop();
                    }
                    else if (that.min === 1 && that.sec === -60) {
                        that.stopTimer();
                        //clearTimeout(Timer_Tick);
                        that.time.text = '00:00';
                        createjs.Tween.get(that.bug, { loop: false }).to({ y: that.bug.y + 100 }, 400, createjs.Ease.linear);
                        setTimeout(function () {
                            that.bug.gotoAndPlay('bite');
                            setTimeout(function () {
                                that.flower.gotoAndPlay('broken_flower');
                                that.frog.gotoAndPlay('lose');
                            }, 200);
                            createjs.Tween.get(that.bug, { loop: false }).wait(500).to({ x: 200, y: -100 }, 6000, createjs.Ease.linear);
                        }, 400);
                    }

                that.Timer();        
        }, 100);
    },
    stopTimer: function () {
        //Pause or stop Timer
        clearTimeout(Timer_Tick);
    }
};

私はすでにdebugger、イベントが発生したかどうかを確認するために を入れました。その結果、期待どおりに正しく起動されますが、タイマーは停止せず、永遠に続きます。誰でも私を助けてくれませんか?今あなたの助けが本当に必要です. 私はjavascriptが初めてです:)。前もって感謝します。

4

1 に答える 1

1

「returnfalse;」を追加してみてください。タイマー関数でstopを呼び出した後。今のところ、タイマーを停止すると思いますが、関数の下部でタイマーを再開します。

if (that.min === 1 && that.sec === 40) {
   that.bug.gotoAndPlay('take_photo');
   that.flower.onPress = null;
   stop();
   return false;
}
于 2013-02-15T07:20:14.317 に答える