你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> Xcode7.3.1中SKAudioNode在Scene轉換後無聲的問題

Xcode7.3.1中SKAudioNode在Scene轉換後無聲的問題

編輯:IOS開發綜合

在新的Xcode中之前可以正常運行的SKAudioNode代碼貌似會有一些小問題,這發生在場景轉換後.

比如游戲主場景GameScene在New Game後會創建自身一個新的實例然後轉換過去:

let newScene = GameScene(fileNamed: "GameScene")
            newScene!.scaleMode = .AspectFill
            let reveal = SKTransition.flipHorizontalWithDuration(0.5)

            self.view?.presentScene(newScene!, transition: reveal)

注意其中用了一個SKTransition的實例用來產生過渡效果,過渡時間為0.5秒.測試時發現如果在場景加載方法中使用SKAudioNode播放聲音則只能播放0.5秒的時間,然後就會無聲.如果過渡時間發生變化,則SKAudioNode播放時間也發生變化.不管如何,只要完成過渡,聲音就消失!

開始以為是舊場景中需要做清除操作,於是寫了如下的方法:

override func willMoveFromView(view: SKView) {
        if let music = bgMusic{
            music.paused = true
            music.removeFromParent()
            bgMusic = nil
        }

        if let music = bgMusicAlarm{
            music.paused = true
            music.removeFromParent()
            bgMusicAlarm = nil
        }
    }

但是問題依舊.

遂將原來場景加載方法中播放聲音做一個細微延時操作,就沒有問題了,好神奇!

runAction(SKAction.waitForDuration(0.01),completion:{
          self.playBgMusic("SpaceGame.caf")
        })
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved