1

我需要知道 SKAudioNode 何时完成,但使用 SKAction(:completion:) 似乎不起作用:

      audioNode.run(SKAction.play()) {

        // do something after it has finished
      }

声音播放得很好,但应该在完成时执行的东西实际上会立即运行。

有人可以让我知道我做错了什么,如果可能的话,我该如何解决这个问题?

谢谢

4

1 回答 1

1

一种可能的解决方法是强制延迟。虽然它有效,但它远非完美:

let sequence = SKAction.sequence( [SKAction.play(), SKAction.wait(forDuration: soundDuration ) ])

audioNode.run(sequence, completion: {
  audioNode.removeFromParent()
})
于 2017-10-14T09:31:46.880 回答