Xcode7.3.1中SKAudioNode在Scene转换后无声的问题
2016-05-04 22:09
459 查看
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
在新的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") })
相关文章推荐
- Xcode7.3.1中SKAudioNode在Scene转换后无声的问题
- 19.Remove Nth Node From End of List(7.54%)
- python 和 nodejs 比较
- nvm node 版本管理器的安装
- LeetCode OJ 116. Populating Next Right Pointers in Each Node
- ActiveMQ 入门Nodejs版
- ActiveMQ + NodeJS + Stomp 极简入门
- Permission denied: user=root, access=WRITE, inode="hadoop":hadoop:supergroup:rwxr-xr-x
- Nodejs学习item 3 -- module模块系统与npm包管理
- 美团酒店Node全栈开发实践
- Xcode7.3中SKAudioNode"诡异"初始化的解决
- Xcode7.3中SKAudioNode"诡异"初始化的解决
- Xcode7.3中SKAudioNode"诡异"初始化的解决
- 如何用nodejs创建一个webservice
- SecondaryNameNode 理解
- Populating Next Right Pointers in Each Node
- 搭建nodejs的express框架
- 在nodejs下express 从安装到运行的全过程
- Node.js学习-1
- Node.js异步读取txt文档