Flash CS4控制AS3中动画声音的播放或停止

所属分类: 媒体动画 / Flash教程 阅读数: 65
收藏 0 赞 0 分享
今天有闪友问到如何控制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://sxl001.xfyun.com/music/lib/myRussia.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("\t", 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 CS4控制AS3中动画声音的播放或停止方法,希望能对大家有所帮助!
更多精彩内容其他人还在看

flash怎么制作镜像动画?

flash怎么制作镜像动画?flash中制作动画很简单,怎么才能制作一个动画的镜像呢?下面我们就来看看flash制作镜像动画的详细教程,很简单,需要的朋友可以参考下
收藏 0 赞 0 分享

flash制作图片变换的gif动画效果

这篇教程是向脚本之家的朋友分享flash制作图片变换的gif动画效果方法,教程制作出来的动画效果非常不错,难度不是很大,一起来学习吧
收藏 0 赞 0 分享

flash怎么绘制和谐号火车从火车道开过的动画?

flash怎么绘制和谐号火车从火车道开过的动画?想制作一个火车从轨道上飞奔而过的一个画面,该怎么制作呢?下面我们就来看看flash制作和谐号火车从火车道开过的动画的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

FLASH怎么制作红烛燃烧的动画?

FLASH怎么制作红烛燃烧的动画?FLASH中做动画很方便,今天我们就来看看使用flash制作蜡烛燃烧并流下烛蜡的教程,很简单,下面我们就来看看详细教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么填充渐变色? flash渐变填充的使用方法

flash怎么填充渐变?flash中想给图形添加渐变色,该怎么添加呢?下面我们就来看看flash渐变填充的使用方法,这是基础教程,很简单,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么制作磁铁吸钉子的动画?

flash怎么制作磁铁吸钉子的动画?我们知道钉子放到磁铁周围就会直接将钉子吸走,该怎么制作这个动画呢?下面我们就来看看flash制作磁铁吸引钉子的动画教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么画中国国宝大熊猫? flash绘制卡通大熊猫的教材

flash怎么画中国国宝大熊猫?flash中制作动画很简单,但是也可以简单的绘制图形,该怎么绘制呢?今天我们就来看看flash绘制卡通大熊猫的教材,需要的朋友可以参考下
收藏 0 赞 0 分享

Flash工具缩放、旋转和倾斜对象使用介绍

今天小编为大家介绍Flash工具缩放、旋转和倾斜对象使用方法,对于初学者来说,是个很好的学习教程,推荐到脚本之家,一起来看看吧
收藏 0 赞 0 分享

flash中怎么用鼠标绘制一朵木兰花?

flash中怎么用鼠标绘制一朵木兰花?flash中除了做动画效果以外,还可以绘制图形,今天我们就来看看flash用鼠标绘制一朵木兰花的详细教程,很简单,详细教程请看下文
收藏 0 赞 0 分享

FLASH制作一个小车一直往前推的动画?

FLASH制作一个小车一直往前推的动画?想做一个动画,就是有个小推车一直不断的往前进,中途不能倒,该怎么制作呢?下面我们就来看看这个动画的制作方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多