Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览事件发射器问题_Javascript_Node.js_Javascript Events_Browserify - Fatal编程技术网

Javascript 浏览事件发射器问题

Javascript 浏览事件发射器问题,javascript,node.js,javascript-events,browserify,Javascript,Node.js,Javascript Events,Browserify,我正在使用一个资产加载器,这个类继承了EventEmitter,用于progress&over events 我是这样用的 // LOAD INITIAL ASSETS & START GAME AFTER assets.on('over',function() { // START GAME HOB.start(); }); assets.load({'loadingBackground' : '/img/loading

我正在使用一个资产加载器,这个类继承了EventEmitter,用于progress&over events

我是这样用的

    // LOAD INITIAL ASSETS & START GAME AFTER
    assets.on('over',function() {
        // START GAME
        HOB.start();
    });

    assets.load({'loadingBackground' : '/img/loadingBackground.png'});
这很有效,但是

加载结束时,打开我的加载功能。我使用removeAllListeners

        var progress = function() {
          if(filesLoaded < filesToLoad) {
            ...
          } else {
            ...
            that.emit('over',filesLoaded);
            if(removeEvents) 
                that.removeAllListeners();
          }
        }
|->不工作

一件有趣的事情是_events属性在第二个.on'over'之后为空

你有什么想法吗?提前谢谢你

编辑

我找到了一种覆盖on方法的方法


碰巧,您是否在我们的进度函数中的某个点将加载的文件还原为0?加载所有内容后,是否将其重置为0,但忘记将filesToLoad也重置为0?它可能会阻止over事件再次发出。我每次使用load函数时都会重置所有内容,如果我在else语句中添加控制台日志,就会看到它。我认为,问题其实与排放有关/
// LOAD ASSETS AND MAP & SET PLAY STATE AFTER
    assets.on('over',function () {
        // LOAD BASE MAP & SET STATE
        ...
        currentState = PlayState
    });

     console.log(assets._events); // -> return empty ({})

    assets.load({
        '001-Grassland01' : 'img/tilesets/001-Grassland01.png',
        '002-Woods01' : 'img/tilesets/002-Woods01.png',
        '015-ForestTown01' : 'img/tilesets/015-ForestTown01.png'
    });
var AssetsManager = function () {
 ...
 this.on = function(event,func) {
    if(this._events[event])
        delete  this._events[event];

     return this.__proto__.on.call(this,event,func);
 };
 ...
}