在Pixi申请中删除所有儿童的孩子



我正在尝试删除Pixi应用程序中的所有孩子的所有孩子,但是一些精灵项目仍然保留和失败。>

create(){
    this.renderer = new Renderer({ resolution: window.devicePixelRatio });
    this.renderer.backgroundColor = 0x260244;
    this.app = new Container(); 
    this.loader = new Loader(); 
    console.log('PIXI APP INIT!');
    document.getElementById('pixi-render').appendChild(this.renderer.view);
    console.log('RENDERER APPENDED:', this.renderer);
    console.log('PIXI APP APPENDED:', this.app);
    AnimationStore.subscribe(() => {
       this.renderer.render(this.app);
    });
    Store.subscribe(() => {
       const { color, coloron } = Store.getState().App;
    });
    const main = new Main();
    this.app.removeChild(this.loader);
    this.app.addChild(main); 
    this.renderer.start();
}
destroy(){
    this.app.destroy(true);
    this.app = null;
    this.renderer.view.destroy( true );
    this.renderer.view = null;
    while(this.app.children[0]) { 
    this.app.removeChild(this.app.children[0]); }
    this.renderer.destroy( true );
    this.renderer = null;
    console.log('PIXI APP APPENDED:', this.app);
}

看来销毁方法是错误的设计,而且尚不清楚为什么您在执行时没有浏览器中的错误: this.app variable是比将所有孩子从中删除而(this.app.children [0])

提前无效。

首先,我建议下一步更改Methot:

destroy(){
    while(this.app.children[0]) { 
        this.app.removeChild(this.app.children[0]);
    }
    this.app.destroy(true);
    this.app = null;
    this.renderer.view.destroy( true );
    this.renderer.view = null;
    this.renderer.destroy( true );
    this.renderer = null;
    console.log('PIXI APP APPENDED:', this.app);
}

另外,请确保您的错误与双胞胎仍然活跃的事实没有连接,但是他们的补间目标已经被无效/删除/销毁。如果是这种情况,那么除了删除视觉对象外,还需要停止/销毁所有的二聚体。

相关内容

  • 没有找到相关文章

最新更新