2017-04-02 45 views
-1

我製作了一個自定義類SoundNode來處理音頻文件的播放。現在,它只能播放默認的 「A2.mp3」SpriteKit不播放音頻文件?

class SoundNode : SKSpriteNode{ 
func playSound(){ 
    run(SKAction.playSoundFileNamed("A2", waitForCompletion: false)) 
    } 
} 

我隨後致電playSound方法在我SKScene像這樣:

SoundNode().playSound() 

但是,聲音從來不玩?我已經確定文件存在於我的項目中,並且還檢查了文件名以確保它是正確的。這裏有什麼問題?

回答

2

SoundNode是一種節點。每個節點只有在場景中才有效。只需創建一個SoundNode並調用playSound不會執行任何操作,因爲該節點尚未添加到場景中!

爲了使這項工作,只需將其添加到場景:

let node = SoundNode() 
self.addChild(node) 
node.playSound() 

另外,我建議SoundNode不應該繼承SKSpriteNode,因爲這顯然不是一個精靈,即東西,可以在屏幕上看到。只是讓它繼承SKNode

+0

工作完美! –