FLASH控制动画声音的停止和播放_Flash教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:FLASH图片首尾连接循环滚动
要让几张图片循环滚动,最简的原理就是把连续图片再复制一份接到尾部,待第一张图片滚完之后被复制的接着滚动。原理图示如图7-5所示。 图 7-5 示意图 不管是用AS控制还是利用帧手工制作都可以使用这个原理,示意图中,共有两张图片为图片一和图片二并将他复制一组。 当

   今天有闪友问到如何控制AS3中的声音问题,用下面的小实例说明:

Flash

  /*

  As3Sound.as

  */

  package {

  import flash.display.Sprite;

  import flash.events.*;

  import flash.media.Sound;

  import flash.media.SoundChannel;

  import flash.net.URLRequest;

  import flash.utils.Timer;

  import flash.text.TextField;

  import flash.text.TextFieldAutoSize;

  import flash.filters.DropShadowFilter;

  public class As3Sound extends Sprite {

  private var url:String = "http://XXX.com/music/XXX.mp3";

  private var soundFactory:Sound;

  private var channel:SoundChannel;

  private var positionTimer:Timer;

  private var play_btn:Sprite;

  private var stop_btn:Sprite;

  private var d_filtersropShadowFilter=new DropShadowFilter(5,45,0x000000,80,8,8);

  //用于记录音乐现在是否为暂停状态

  private var bSoundStop:Boolean = false;

  public function As3Sound() {

  var sxl_txt:TextField = new TextField();

  sxl_txt.text="CS4中如何控制声音的播放或停止的";

  sxl_txt.autoSize=TextFieldAutoSize.LEFT;

  sxl_txt.x=stage.stageWidth/2-sxl_txt.width/2;

  sxl_txt.y=20;

  addChild(sxl_txt);

  var mp3_request:URLRequest = new URLRequest(url);

  soundFactory = new Sound();

  //成功加载数据后

  soundFactory.addEventListener(Event.COMPLETE, completeHandler);

  //在存在可用于 MP3 声音的 ID3 数据时

  soundFactory.addEventListener(Event.ID3, id3Handler);

  //加载音乐错误时

  soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

  //音乐加载中...

  soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler);

  soundFactory.load(mp3_request);

  channel = soundFactory.play();

  //音乐播放完成

  channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);

  //用Timer监听音乐的播放进度

  positionTimer = new Timer(1000);

  positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler);

  positionTimer.start();

  //创建一个按钮,用于播放音乐

  play_btn = new Sprite();

  play_btn.graphics.beginFill(0xFFCC32);

  play_btn.graphics.drawRoundRect(0, 0, 70, 18, 10, 10);

  play_btn.graphics.endFill();

  var play_txt:TextField = new TextField();

  play_txt.text = "播放";

  play_txt.x=18;

  play_btn.x=50;

  play_btn.y=100;

  play_txt.selectable = false;

  play_btn.addChild(play_txt);

  play_btn.filters=[d_filters];

  play_btn.addEventListener(MouseEvent.CLICK, soundPlay);

  addChild(play_btn);

  //创建一个按钮,用于停止音乐

  stop_btn = new Sprite();

  stop_btn.graphics.beginFill(0xFFCC32);

  stop_btn.graphics.drawRoundRect(0, 0, 70, 18, 10, 10);

  stop_btn.graphics.endFill();

  stop_btn.x=130;

  stop_btn.y=100;

  var stop_txt:TextField = new TextField();

  stop_txt.x=18;

  stop_txt.text = "暂停";

  stop_txt.selectable = false;

  stop_btn.addChild(stop_txt);

  stop_btn.filters=[d_filters];

  stop_btn.addEventListener(MouseEvent.CLICK, soundStop);

  addChild(stop_btn);

  }

  //监听音乐的播放进度

  private function positionTimerHandler(event:TimerEvent):void {

  var ybf:int = channel.position.toFixed(0);

  var zcd:int = soundFactory.length;

  var bfs:int = Math.floor(ybf/zcd*100);

  //trace("音乐总长度:"+zcd, "音乐已播放:"+ybf, "播放进度为:"+bfs+"%");

  }

  //加载音乐完成时

  private function completeHandler(event:Event):void {

  //trace("加载音乐完成: " + event);

  }

  //在存在可用于MP3声音的ID3数据时

  private function id3Handler(event:Event):void {

  //trace("音乐的ID3信息如下:");

  for (var s in soundFactory.id3) {

  //trace(" ", s, ":", soundFactory.id3[s]);

  }

  //trace("关于ID3信息介绍,请参见Sound类-->属性-->id3");

  }

  //加载音乐错误时

  private function ioErrorHandler(event:Event):void {

  //trace("加载音乐错误,错误信息如下:" + event);

  positionTimer.stop();

  }

  //加载音乐时

  private function progressHandler(eventrogressEvent):void {

  var yjz:int = event.bytesLoaded;

  var zcd:int = event.bytesTotal;

  var bfs:int = Math.floor(yjz/zcd*100);

  //trace("音乐总长度:"+zcd,"已加载: "+yjz, "加载进度为:"+bfs+"%");

  }

  //音乐播放完成

  private function soundCompleteHandler(event:Event):void {

  //trace("音乐播放完成: " + event);

  positionTimer.stop();

  }

  //点击播放按钮事件

  private function soundPlay(event:MouseEvent):void {

  if (bSoundStop) {

  bSoundStop = false;

  channel = soundFactory.play(channel.position.toFixed(0));

  }

  }

  //点击停止按钮事件

  private function soundStop(event:MouseEvent):void {

  if (!bSoundStop) {

  bSoundStop = true;

  channel.stop();

  }

  }

  }

  }

分享:Flash软件怎么把图形转换为元件?
Flash中如何把图形转换为元件 1、打开Flash软件 2、在主页面中,如图点击,新建一个动画画布 3、这个画布会位于软件的中央位置 4、在左侧的工具中,我们找到矩形选框,点击 5、用它在画布上绘制出一个矩形 6、我们在图形上右键,会有选项,点击转换为元件 7、最后一步

来源:模板无忧//所属分类:Flash教程/更新时间:2015-05-08
相关Flash教程