壮志凌云 发表于 2009-2-19 08:26:55

实例学用Flash MX增强的AS功能(2)

用AS控制音乐循环播放

  1) 在新建一个文件夹命名为“声音”,然后在此文件夹中新建一层。做Flash动画当然不可能少了声音,大家在使用Flash 5的时候肯定都是将声音拖拽到时间轴上再设置其loop属性为100或200来实现背景音乐的循环,现在我们要学的时,怎样利用AS控制音乐的循环播放。

  2) 使用菜单命令File(文件)-Import(导入)导入一个声音文件,在Library中找到这个声音文件,对其用鼠标右键单击,在弹出的菜单中选择Linkage。(如图2)   
www.ad119.cn/bbs/attachments/websoft/20090219/20092198262614077801.gif
  3) 我们可以看到打开的Linkage面板,这个面板与Flash相比还是做了一定的改进的。将Identifier属性改为sound 1,并且将下面的Export For ActionScript(当前动画使用)选项前的选择框打上勾,点击OK按钮完成设置。(如图3)
www.ad119.cn/bbs/attachments/websoft/20090219/20092198262618777802.gif
  4) 鼠标单击时间轴上“声音”文件夹下层的第一帧,并且打开位于工作区域下方的Actions-Frame面板。点击右上角的图标(如图4)
www.ad119.cn/bbs/attachments/websoft/20090219/20092198262621877803.gif
在弹出的菜单中选择Export Mode,使用专家模式对AS进行编辑。输入如下AS:(如图5)
www.ad119.cn/bbs/attachments/websoft/20090219/20092198262626577804.gif
  Sound.prototype.atcPLay=function(id,loop)
  {
    this.attachSound(id);
    this.start();
    if(loop)
      this.onSoundComplete=this.start
  };
  mxSnd=New Sound();
  mxSnd.atcPlay("sound1",true);
  //此循环函数由5D多媒体画魔原创

  在此段AS中,应当注意onSoundComplete事件的使用方法,onSoundComplete发生在声音结束时,而start方法可以控制声音开始播放。  5) 最后来详细讲解一下这段AS。

  Sound.prototype.atcPLay=function(id,loop){this.attachSound(id);this.start();
    //首先我们定义一个函数atcPlay用来控制音乐的循环,此函数必须获得声音的linkage id以及设置的loop属性值才可以运行。在函数中使用attachSound命令从library中调入声音文件,使用start开始播放。
  if(loop)this.onSoundComplete=this.start};
    //如果loop值为true则当声音播放结束后,重新开始播放。
  mxSnd=New Sound();
    //新建立一个SOUND的函数
  mxSnd.atcPlay("sound1",true);
    //设置初始值,linkage id(为sound1)以及设置的loop属性值(为true)传递给函数
页: [1]
查看完整版本: 实例学用Flash MX增强的AS功能(2)