在 Cocos2d js 中取消计划更新

Unschedule update in Cocos2d js

您好,在我的 cocos2d js 应用程序中,我使用的是 'this.scheduleUpdate()',它工作正常,但是当我使用 this.unscheduleUpdate() 时,它似乎起作用并挂起应用程序。 有人能告诉我如何让它工作吗……我正在分享下面的代码。 谢谢

var HelloWorldLayer = cc.Layer.extend({
    sprite:null,
    ctor:function () {

        this._super();

        var cal=function(){
            this.unscheduleUpdate();
        }

        this.scheduleUpdate();

        cal();

        return true;
    },

    update:function(dt){
        cc.log("schedule "+dt);
    }
});

var HelloWorldScene = cc.Scene.extend({
    onEnter:function () {
        this._super();
        var layer = new HelloWorldLayer();
        this.addChild(layer);
    }
});

您很可能 运行 遇到了范围问题。 this 在该函数中没有引用您的层,以下应该有效:

替换:

var cal=function(){
    this.unscheduleUpdate();
}

与:

var that = this;
var cal = function() {
    that.unscheduleUpdate();
};