【发布时间】:2017-06-14 14:46:26
【问题描述】:
我正在开发一个 PIXI.js 应用程序并清理资源以防止内存泄漏,我正在使用 DisplayObject.destroy。
当一个显示对象被销毁时,它的许多内部值被设置为null,而_destroyed被设置为true。
这被证明是有问题的,因为某些应用程序是基于事件的,而不是基于游戏循环的。由于缺少转换,其中一些逻辑试图改变显示对象和错误。
如果显示对象的项目(例如位置和比例)不是不受保护的吸气剂,我将能够摆脱这种情况。
get x() {
// Unguarded will error out if this.position is null!
return this.position.x;
}
现在我在 Typescript 环境中扩展显示对象并覆盖 x,y 等:
get x() {
// As this.position is also a getter we have to go to transform to be safe
return this.transform && this.position.x;
}
应该如何处理?
为什么DisplayObject._destroyed 是私有的?
【问题讨论】:
-
通常人们希望取消订阅不再有效的事件监听器。您的事件侦听器不应引用已销毁的对象。
标签: typescript pixi.js