a已经为SKScene创建了子类,并实现了didMoveToView
,目前没有做任何事情。空功能体。我们暂时将TestScene类命名为。
我还有一个WindowController和一个名为testScene的var:
var testScene: TestScene?
功能已实施show
和hide
show函数如下所示:
func show(){
testScene = TestScene(fileNamed:"TestScene")
}
fileNamed:“TestScene”当然是带有动画的.sks文件。 隐藏功能如下所示:
func hide(){
if let scene = testScene {
scene.paused = true
}
testScene?.removeFromParent()
testScene = nil
self.close()
}
这个SpriteKit场景确实出现在我的应用程序中的情况下(按钮点击)。并且在执行消失之后。 到目前为止一切正常。
如果我按下按钮,动画进入视图并在触发hide()后关闭,但是:由于按下按钮
testScene = TestScene(fileNamed:"TestScene")
执行,我的CPU负载为0.5%。即使在hide
之后。我可以推荐TestScene(),并在一点点峰值后CPU下降到0%。
(我在那个buttonPressed:function中做了更多的东西)。所以我很确定在调用hide之后不会删除TestScene
,并且可能在后台执行一些疯狂的狗屎。
问题是,整个FinalScene将产生5%的CPU,并且在第一次出现之后这个负载不会消失。 :(
我的问题是:如何从执行循环中删除SKScene?
非常感谢任何建议,我从现在开始调试这个,并且无法弄清楚如何解雇已结束的动画。
PS。
答案 0 :(得分:0)
解决方案是探索删除SKView-subview:
animationView.removeFromSuperview()
这意味着我们必须在每个事件上从xib构建视图,因为视图丢失了。另一种可能性是在show()上以编程方式添加SKView。