//**************** 常驻节点 + cc.audioEngine的方式播放背景音乐是最有效果的 *****************//
onLoad() {
cc.anudiocontrol = this;
cc.game.addPersistRootNode(this.node);
console.log('AudioSourceControl onLoad ');
cc.anudiocontrol.playAudio();
cc.audioEngine.play(this.audioClipBg,true,1)
cc.anudiocontrol.playBgMusic()
},
playBgMusic() {
cc.loader.loadRes(“Audio/sound_bg.mp3”, (err, sound) => {
if (!err) {
if(this.BgMusic){
cc.audioEngine.stopAll();
this.BgMusic = cc.audioEngine.play(sound,true,1);
console.log(“背景音乐存在,直接播放”);
}else{this.BgMusic = cc.audioEngine.play(sound,true,1);console.log("背景音乐 不存在,播放加loadRes的音乐");} }});},stopBgMusic() {if(this.BgMusic){cc.audioEngine.stop(this.BgMusic);console.log("停止背景音乐");}},
其他的音效可以用 cc.AudioEngine 也可以用cc.audioSource进行播放,都可以
音效音乐按钮切换
private soundToggle:boolean = true;private musicTogggle:boolean = true;toggleMusic(event,Eventdata){if(Eventdata=="music"){if(this.musicTogggle){cc.find('musicToggle', this.node).getComponent(cc.Sprite).spriteFrame= this.toggleSPF[0];//先改变了bMusicVolume的值ModuleSys.getInstance().setInfo.bMusic = !ModuleSys.getInstance().setInfo.bMusic;ModuleSys.getInstance().setInfo.bMusicVolume=0;//因为间接调用了bMusicVolume ManagerMusic.getInstance().setSoundVolume();}else{cc.find('musicToggle', this.node).getComponent(cc.Sprite).spriteFrame= this.toggleSPF[1];ModuleSys.getInstance().setInfo.bMusicVolume=1;//因为间接调用了bMusicVolume ManagerMusic.getInstance().setSoundVolume();}this.musicTogggle=!this.musicTogggle}if(Eventdata=="sound"){if(this.soundToggle){cc.find('soundtoggle', this.node).getComponent(cc.Sprite).spriteFrame=this.toggleSPF[0];//先改变了bMusicVolume的值ModuleSys.getInstance().setInfo.bEffect = !ModuleSys.getInstance().setInfo.bEffect;ModuleSys.getInstance().setInfo.bEffectVolume=0;//因为间接调用了bMusicVolume ModuleSys.getInstance().saveSetinfo();}else{cc.find('soundtoggle', this.node).getComponent(cc.Sprite).spriteFrame=this.toggleSPF[1];//先改变了bMusicVolume的值ModuleSys.getInstance().setInfo.bEffect = !ModuleSys.getInstance().setInfo.bEffect;ModuleSys.getInstance().setInfo.bEffectVolume=1;//因为间接调用了bMusicVolume ModuleSys.getInstance().saveSetinfo();}this.soundToggle=!this.soundToggle}}/*** 判断音效音乐值的大小*/private musicValue:number = 0;private soundValue:number = 0;judgeBgMusicVolule(){this.musicValue=ModuleSys.getInstance().setInfo.bMusicVolume;this.soundValue=ModuleSys.getInstance().setInfo.bEffectVolume;if(this.musicValue==1){cc.find('musicToggle', this.node).getComponent(cc.Sprite).spriteFrame= this.toggleSPF[1];this.musicTogggle=true}else if(this.musicValue==0){cc.find('musicToggle', this.node).getComponent(cc.Sprite).spriteFrame= this.toggleSPF[0];this.musicTogggle=false}else{return;}if(this.soundValue==1){cc.find('soundtoggle', this.node).getComponent(cc.Sprite).spriteFrame= this.toggleSPF[1];this.soundToggle=true}else if(this.soundValue==0){cc.find('soundtoggle', this.node).getComponent(cc.Sprite).spriteFrame= this.toggleSPF[0];this.soundToggle=false}else{return;}}
//**************************************** 控制声音的按钮 *********************************************//
// 点击声音按钮
tapBtnSound(){
BO.playEffect(‘click’);
if(BO.isMusicOn){
BO.isMusicOn = false;
var action = cc.moveTo(0.2,30,190);
this.btn_sound.runAction(action);
BO.alert(‘声音关闭’);
this.AudioSource_main.stop();
BO.isMusicOn = false;
cc.sys.localStorage.setItem(“isMusicOn”,“false”);
}else{
BO.isMusicOn = true;
var action = cc.moveTo(0.2,165,190);
this.btn_sound.runAction(action);
BO.alert(‘声音开启’);
this.AudioSource_main.play();
BO.isMusicOn = true;
cc.sys.localStorage.setItem(“isMusicOn”,“true”);
}
},