WEB开发网
开发学院图形图像Flash 初识Flash AS3:任意播放整首音乐中的某一段 阅读

初识Flash AS3:任意播放整首音乐中的某一段

 2009-01-04 19:17:43 来源:WEB开发网   
核心提示:[知识点]1、声音播放起始点由s.play(参数)中参数决定2、利用数组获取多个起始点var sjd:Array=[0,14200,41800,69920,85682];3、点击相应按钮获取数组中的某元素var zjl:SPRite=event.target as Sprite;scz=s.play(sjd[getCh

[知识点]
1、声音播放起始点由s.play(参数)中参数决定
2、利用数组获取多个起始点var sjd:Array=[0,14200,41800,69920,85682];
3、点击相应按钮获取数组中的某元素var zjl:SPRite=event.target as Sprite;
scz=s.play(sjd[getChildIndex(zjl)-1]);

[代码]
///////////////////直接将下面的代码复制到第一帧上即可////////////////////
//载入外部音乐
var s:Sound=new Sound(new URLRequest("http://58.56.37.223/download/D10Down/%CA%FD%D1%BC%D7%D3.mp3"));
//声音控制
var scz:SoundChannel=new SoundChannel();
//时间点
var sjd:Array=[0,14200,41800,69920,85682];
//段落名称
var dlmc:Array=["第一段","第二段","第三段","第四段"];
//声音结束点
var sjsd:int=0;
//进度显示
s.addEventListener(ProgressEvent.PROGRESS,jzjd);
var jdtxt:TextField=new TextField();
function jzjd(event:ProgressEvent):void {
var bfb:Number=event.bytesLoaded/event.bytesTotal;
jdtxt.autoSize=TextFieldAutoSize.CENTER;
jdtxt.text="声音正在加载——已经加载 :"+Math.round(bfb*100)+"%";
addChild(jdtxt);
jdtxt.y=100;
jdtxt.x=100;
}
//加载完成才能控制
s.addEventListener(Event.COMPLETE,jzwc);
function jzwc(event:Event):void {
//移除进度文本和加载侦听器
removeChild(jdtxt);
s.removeEventListener(ProgressEvent.PROGRESS,jzjd);
for (var k:int=0; k<dlmc.length; k++) {
  //创建动态文本显示段落名称
  var txt:TextField=new TextField();
  txt.autoSize=TextFieldAutoSize.CENTER;
  txt.text=dlmc[k];
  txt.x=50*k;
  txt.mouseEnabled=false;
  //创建精灵作按钮
  var b:Sprite=new Sprite();
  addChild(b);
  b.buttonMode=true;
  b.addChild(txt);
  b.x=b.y=100;
  b.addEventListener(MouseEvent.CLICK,dj);
}
}
//鼠标点击按钮时执行
function dj(event:MouseEvent):void {
//声音停止
scz.stop();
//精灵中的子精灵
var zjl:Sprite=event.target as Sprite;
//声音播放(从子精灵所在的位置得到对应时间点)
scz=s.play(sjd[getChildIndex(zjl)-1]);
//得到声音结束点
sjsd=sjd[getChildIndex(zjl)];
//当然要不断更新才知道声音播放头的位置
stage.addEventListener(Event.ENTER_FRAME,gx);
function gx(e:Event):void {
  //如果播放头的位置不小于声音结束点时声音就停止且移除侦听事件
  if (scz.position>=sjsd) {
  scz.stop();
  stage.removeEventListener(Event.ENTER_FRAME,gx);
  }
}
}

Tags:初识 Flash AS

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接