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

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


  /*

  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();

  }

  }

  }

  }

时间: 2024-11-08 17:11:31

FLASH控制动画声音的停止和播放的相关文章

Flash CS4如何控制动画声音的停止和播放

核心提示:如何在Flash中利用AS3控制声音的问题,现在用小实例说明像大家说明. 今天有闪友问到如何控制AS3中的声音问题,用下面的小实例说明: /* As3Sound.as */ package { import flash.display.Sprite; import flash.events.*; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import f

用flash控制全景播放

控制 很多多媒体制作爱好者总是在不断创新,尝试将各种多媒体元素结合到一起来作出效果令人炫目的作品. 本文将要介绍的是如何在在flash中插入全景,利用flash的控制来实现全景的播放.场景切换等动作. 首先说明一下,用flash控制全景,需要本身全景播放器提供一个编译接口,所以这里以杰图漫游大师为例,漫游大师播放器提供了用javascript控制播放的脚本. 详细的脚本可以查看该软件帮助文档或者到杰图网站下载. 以 zoomin (也就是放大)功能为例: zoomIn public void z

用JavaScript实现利用FLASH嵌入网页声音

javascript|网页 本JavaScipt教程将让你感受到FLASH给您带来有声世界的无穷魅力.在开始本教程之前,我先介绍一下本教程涉及到的内容:隐藏嵌入的SWF. 播放流同步的SWF. 从指定的帧上开始流. 停止和播放流. 检查是否磁道在播放. 检查是否播放器准备好. 检查SWF转载的百分比.验证SWF是否完全装载好.检查播放器的版本号.设置最小的播放器版本号. 清除错误信息等等.好吧,开始我们的教程吧. 隐藏嵌入的SWF FlashSound的JavaScript API往网页插入一个

iOS 版WPS Office独家支持PPT播放动画声音和GIF

iOS版WPS Office版本升级,除了对更多全球主流网盘的支持外,进一步完善PPT演示文档的播放是这次更新的主要内容.据iOS版WPS Office开发负责人庄湧表示,iOS 版WPS Office领先同类移动Office软件推出了诸多创新功能,包括率先推出的PPT播放动画声音和GIF图片功能. iOS系统上可供用户选择的办公软件种类很多,功能丰富且免费的iOS版WPS Office一经推出即获得了用户的青睐.庄湧还透露,iOS版WPS Office用户数量一直呈几何增长趋势,最近下载量已经

PPT中Flash动画路径错误导致无法播放

我们在Powerpoint文档中插入Flash后,自己的机器上播放时正常,但拷到U盘上到了别的地方却不行了.这时打开PPT会发现插入Flash的幻灯片是下图所示的样子.这是怎么回事呢? 其实,这往往是是因为Flash文件的路径不对. 点选这个矩形,然后右击鼠标,在弹出的菜单中选择"属性",弹出该控件的属性对话框(如图2) ,然后选择"自定义"栏右边的[-]. 在"Movie URL"栏中填入SWF文件的URL地址(如图3).在这里,最好将演示文稿

Flash制作动画之掌握基本按钮知识

按钮 问题1:如何制作按钮?为什么我制作的文字按钮,很不容易点击到? 解决思路 在按钮编辑区的时间轴上只有四个帧,第4帧的"点击"是按钮的反应区,这个区域在舞台中是看不到的,但是他却起到了按钮反应的作用.我们扩大按钮的反应区,既可以轻易的用鼠标点击到这个按钮了. 具体步骤 1.运行Flash MX 2004,文档属性默认. 2.新建一个元件,命名为"按钮",类型设定为按钮元件. 3,进入按钮编辑区,时间轴上面一共有四个帧.这四个帧的作用已经在第一章中向大家介绍过了.

Flash中关于声音的常用命令介绍

先做个简单的了解,FLASH中经常用到的声音的控制命令以及声音的属性有哪些: 1.new Sound()//创建一个新的声音对象:2.mysound.attachSound()//加载库里的声音3.mysound.start()//播放声音:4.mysound.getVolume()//读取声音的音量5.mysound.setVolume()//设置音量6.mysound.getPan()//读取声音的平衡值7.mysound.setPan()//设置声音的平衡值8.mysound.positi

自己动手制作手机Flash主题动画

现在智能手机已成为时下数码领域里的热门话题,很多数码发烧友都用上了高端智能手机并致力于应用方面的研究.顺应热潮,Macromedia公司也开发了在手机上应用的Flash动画播放器:Flash Lite 1.1.最初这个播放器只能应用于i-mode手持设备,后来索爱.诺基亚品牌的一些手机也能使用这个播放器了.在今年市面上已经可以看到捆绑了Flash Lite 1.1的手机,尤其是三星手机和Macromedia达成了合作协议,全面支持Flash Lite 1.1. 既然手机上能够使用Flash动画主

使用DragonBones开发FLASH骨骼动画入门教程

DragonBones是什么? DragonBones是一套开源的 2D骨骼动画框架和工具,它包含了基于Flash Pro的骨骼动画编辑面板DragonBonesDesignPanel及骨骼动画ActionScript框架. 它可以让开发者运用熟悉的Flash Pro元件及时间轴编辑方式,快速创建2D骨骼动画,并运用到Flash或其他技术的应用中. Features 动画基于Flash pro时间轴,可以使用Flash传统动画方式制作游戏动画: 骨骼绑定可以让动画更精准,更真实自然,并可通过程序