Cocos2d-x中停止播放背景音乐
停止背景音乐播放代码放置到什么地方比较适合呢?例如:在HelloWorld场景中,主要代码如下:
- bool HelloWorld::init()
- {
- return true;
- }
- void HelloWorld::onEnter()
- {
- Layer::onEnter();
- log("HelloWorldonEnter");
- }
- voidHelloWorld::onEnterTransitionDidFinish()
- {
- Layer::onEnterTransitionDidFinish();
- log("HelloWorldonEnterTransitionDidFinish");
- }
- void HelloWorld::onExit()
- {
- Layer::onExit();
- log("HelloWorldonExit");
- //停止播放代码 ①
- }
- voidHelloWorld::onExitTransitionDidStart()
- {
- Layer::onExitTransitionDidStart();
- log("HelloWorldonExitTransitionDidStart");
- //停止播放代码 ②
- }
- void HelloWorld::cleanup()
- {
- Layer::cleanup();
- log("HelloWorldcleanup");
- //停止播放代码 ③
- }
关于停止背景音乐播放,理论上我们是可以将停止播放代码SimpleAudioEngine::getInstance()->stopBackgroundMusic("sound/Jazz.mp3")放置到三个位置(代码中的①、②、③)。下面我们分别分析一下它们还有什么不同。
1、代码放到第①和②行
代码放到第①和②行(即在HelloWorld::init函数),如果后面场景中调用背景音乐播放,则可以导致播放背景音乐异常。关于这个问题我们在前一节以及介绍过了。
2、代码放到第③行
代码放到第③行(即在HelloWorld::cleanup函数),这个函数是在层对象清除时候调用,在此处停止背景音乐播放是比较好的选择。
《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:
京东:http://item.jd.com/11584534.html
当当:http://product.dangdang.com/23606265.html
互动出版网:http://product.china-pub.com/3770734
《Cocos2d-x实战 C++卷》源码及样章下载地址:
源码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
样章下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1
相关推荐
进入场景而且过渡动画结束时候触发。提示 GameScene场景中的继承于节点,这些生命周期事件根本上是从Node继承而来。事实上所有Node对象都有这些事件,具体实现代码与GameScene场景类似。