做商城网站要什么手续费/百度小说app下载
目录
一、关键帧里面:调用自建的音乐类, 循环播放外部音乐、进行播放、关闭、循环音乐
1、代码:自建音乐类
2、关键帧中创建、播放、暂停背景音乐+按钮音乐
3、文件布置
二、关键帧中:按键播放或者关闭外部音乐
三、关键帧里面: 循环播放背景音乐+播放外部加载文件
1.加载外部的音乐+开始播放:需要注意缺少声音驱动
2、暂停播放:
3、再次播放
4、注意
四、文本类里面是:
五、播放按钮音乐
六、AS2里面播放背景音乐
七、注意:
1、有时候电脑声卡驱动等有问题,导致代码的soundChannel_bgm = sound_bg.play();会出现bug,所以需要添加判断,判断是不是为空
一、关键帧里面:调用自建的音乐类, 循环播放外部音乐、进行播放、关闭、循环音乐
1、代码:自建音乐类
①注意:自建类时候,就不能使用Event.SOUND_COMPLETE来进行循环播放,测试过,没有反应
①注意:自建类时候,不能在自建类里面使用onEnterFrame,检测在任务管理器中发现会CPU、内存变大
/*
作者:xzy
日期:2020年4月24日
版本:2.0
更新:修改了1.0版本中电脑没有音乐驱动会直接报错的情况
*/package MyLibrary
{import flash.events.Event;import flash.display.MovieClip;import flash.display.Sprite;import flash.events.*;import flash.media.Sound;import flash.media.SoundChannel;import flash.net.URLRequest;public class MySound extends Sprite{//控制音乐停止、循环播放的private var soundChannel:SoundChannel = null;//音乐本身var sound_mousic:Sound = null;//是否再播放音乐var isPlayingBGM:Boolean = false;//是否需要循环播放音乐var isLoop:Boolean = false;//功能:构造函数//参数1:音乐的路径 参数2:是否循环播放音乐public function MySound(_path_sound:String,_isLoop:Boolean){isLoop = _isLoop;var url:String = _path_sound;var request:URLRequest = new URLRequest(url);sound_mousic = new Sound();sound_mousic.addEventListener(Event.COMPLETE, completeHandler);sound_mousic.addEventListener(Event.ID3, id3Handler);sound_mousic.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);sound_mousic.addEventListener(ProgressEvent.PROGRESS, progressHandler);sound_mousic.load(request);if (isLoop==true){//循环播放:发现在类里面,不能使用在关键帧里面的SOUND_COMPLETE,所以播放很多次来实现循环播放//play的参数1:应开始回放的初始位置(以毫秒为单位)。 参数2:声音循环回 startTime 值的次数。soundChannel = sound_mousic.play(0,99999999);}else{//不是循环播放,就播放一次soundChannel = sound_mousic.play(0);}isPlayingBGM = true;if (soundChannel!=null){soundChannel.stop();}isPlayingBGM = false;//避免:没有插耳机、没有声卡驱动,程序报错的情况,加一层保护if (soundChannel==null){trace("创建背景音乐失败,检查音乐驱动/板卡是否支持声音/是否插上耳机");}}//成功加载数据后调度。private function completeHandler(event:Event):void{//trace("completeHandler: " + event);}//在存在可用于 MP3 声音的 ID3 数据时由 Sound 对象调度。private function id3Handler(event:Event):void{//trace("id3Handler: " + event);}//在出现输入/输出错误并由此导致加载操作失败时调度。private function ioErrorHandler(event:Event):void{trace("ioErrorHandler: " + event);}//在加载操作进行过程中接收到数据时调度private function progressHandler(event:ProgressEvent):void{//trace("progressHandler: " + event);}//功能:播放或者暂停音乐public function Set_PlayOrStopSound(_isPlay:Boolean){if (_isPlay){if (isPlayingBGM==false){//soundChannel = sound_mousic.play();if (isLoop==true){//循环播放:发现在类里面,只能使用如此笨办法,参数1:应开始回放的初始位置(以毫秒为单位)。 参数2:声音循环回 startTime 值的次数。if (soundChannel!=null){soundChannel = sound_mousic.play(0,99999999);}}else{if (soundChannel!=null){soundChannel = sound_mousic.play(0);}}isPlayingBGM = true;}}else{if (isPlayingBGM==true){if (soundChannel!=null){soundChannel.stop();}isPlayingBGM = false;}}}//功能:音乐是否在播放//返回值:是否在播放音乐public function Get_isPlayingSound():Boolean{var resert:Boolean;(isPlayingBGM == true) ? resert = true:resert = false;return resert;}}
}
2、关键帧中创建、播放、暂停背景音乐+按钮音乐
//导入:发布的swf同路径名为MyLibrary文件里面的MySound.as文件
import MyLibrary.MySound;//注意:新建的变量名字不能和类名字一样
var myBGM:MySound = null;stop();Start_sound();function Start_sound()
{if (! stage.hasEventListener(KeyboardEvent.KEY_UP)){stage.addEventListener(KeyboardEvent.KEY_UP,KeyUp);}Init_bgm();//gotoAndPlay("待机");}//离开此帧,销毁
function Destroy_sound()
{if (stage.hasEventListener(KeyboardEvent.KEY_UP)){stage.removeEventListener(KeyboardEvent.KEY_UP,KeyUp);}
}function KeyUp(e:KeyboardEvent)
{switch (e.keyCode){case 65+0 :if (myBGM!=null){//播放音乐myBGM.Set_PlayOrStopSound(true);}break;case 65+1 :if (myBGM!=null){//暂停音乐myBGM.Set_PlayOrStopSound(false);}break;case 65+2 :Init_bgm();break;case 65+3 :Destroy_bgm();break;}
}//功能:初始化背景音乐
function Init_bgm()
{if (myBGM==null){myBGM = new MySound("背景音乐.mp3",true);trace("Init_bgm");}
}//功能:销毁背景音乐
function Destroy_bgm()
{if (myBGM!=null){myBGM = null;trace("Destroy_bgm");}
}//按钮音乐
function ClickMusic()
{var soundM:Sound=new Sound();var soundct:SoundChannel=new SoundChannel();soundM.load(new URLRequest("按钮音乐.mp3"));soundct = soundM.play();
}
3、文件布置
二、关键帧中:按键播放或者关闭外部音乐
import flash.events.KeyboardEvent;/*************************************/
/* 背景音乐 */
/*************************************/
var sound_bg:Sound = null;
var url_bgm:URLRequest = null;
var isPlayingBGM:Boolean = false;
var soundChannel_bgm:SoundChannel = null;stop();Start();function Start()
{if (! stage.hasEventListener(KeyboardEvent.KEY_UP)){stage.addEventListener(KeyboardEvent.KEY_UP,KeyUp);}Init_sound();
}function Destory()
{}function KeyUp(e:KeyboardEvent)
{switch (e.keyCode){case 65+0 :PlayOrPauseBGM();break;}
}//功能:初始化音乐
function Init_sound()
{if (url_bgm==null){url_bgm = new URLRequest("背景音乐.mp3");}if (sound_bg==null){sound_bg=new Sound();sound_bg.load(url_bgm);}soundChannel_bgm = sound_bg.play();isPlayingBGM = true;soundChannel_bgm.stop();isPlayingBGM = false;if (soundChannel_bgm==null){trace("创建背景音乐失败,检查音乐驱动/板卡是否支持声音/是否插上耳机");}if (! sound_bg.hasEventListener(Event.SOUND_COMPLETE)){sound_bg.addEventListener(Event.SOUND_COMPLETE,DoComplete);}//soundChannel_bgm.stop();
}//功能:播放或者停止播放音乐
function PlayOrPauseBGM()
{if (isPlayingBGM==false){isPlayingBGM = true;soundChannel_bgm = sound_bg.play();}else if (isPlayingBGM==true){isPlayingBGM = false;soundChannel_bgm.stop();}
}//功能:循环播放音乐
function DoComplete(e:Event)
{soundChannel_bgm = sound_bg.play();
}
三、关键帧里面: 循环播放背景音乐+播放外部加载文件
1.加载外部的音乐+开始播放:需要注意缺少声音驱动
/*************************************/
/* 背景音乐 */
/*************************************/
var sound_bg:Sound=new Sound();
var url_bgm:URLRequest = new URLRequest("背景音乐.mp3");
var soundChannel_bgm:SoundChannel = null;
var isPlayingBGM:Boolean = false;sound_bg.load(url_bgm);//PlayBGM();
音乐停止;
//soundChannel_bgm.stop();PlayBGM();
isPlayingBGM = true;function PlayBGM()
{if (isPlayingBGM==false){isPlayingBGM = true;soundChannel_bgm = sound_bg.play();}if (soundChannel_bgm==null){trace("创建背景音乐失败,检查音乐驱动/板卡是否支持声音/是否插上耳机");}else if (soundChannel_bgm!=null){if (! soundChannel_bgm.hasEventListener(Event.SOUND_COMPLETE)){soundChannel_bgm.addEventListener(Event.SOUND_COMPLETE,DoComplete);}}}function DoComplete(e:Event)
{isPlayingBGM = false;PlayBGM();
}
2、暂停播放:
soundChannel_bgm.stop();isPlayingBGM=false;
3、再次播放
PlayBGM();
4、注意
①音乐路径可以进行修改
四、文本类里面是:
package
{import flash.display.MovieClip;import flash.media.SoundChannel;import flash.media.Sound;import flash.net.URLLoader;import flash.events.Event;import flash.net.URLRequest;public class main extends MovieClip{//背景音乐public var sound_bg:Sound=new Sound();public var url_bgm:URLRequest = new URLRequest("背景音乐.mp3");public var soundChannel:SoundChannel;public function PlayBGM(){soundChannel = sound_bg.play();if (! soundChannel.hasEventListener(Event.SOUND_COMPLETE)){soundChannel.addEventListener(Event.SOUND_COMPLETE,DoComplete);}}public function DoComplete(e:Event){PlayBGM();}public function main(){// constructor codesound_bg.load(url_bgm);PlayBGM();}}}
五、播放按钮音乐
//按钮音乐
function ClickMusic()
{var soundM:Sound=new Sound();var soundct:SoundChannel=new SoundChannel();soundM.load(new URLRequest("点击音效.mp3"));soundct = soundM.play();
}
六、AS2里面播放背景音乐
参考:http://blog.sina.com.cn/s/blog_41525e6d0100vns2.html
//背景音乐播放
var mymusic = new Sound();
mymusic.loadSound("背景音乐.mp3",true);
mymusic.start();
var i = 0;//i用来指示当前播放了几遍
var max = 10000;//max用来指定重复播放多少遍
mymusic.onSoundComplete = function()
{i++;trace(i);if (i < max){mymusic.start();}
}