您所在的位置: 首页 > 教程首页 > 媒体工具 > Flash如何控制动画或声音的停止与播放

Flash如何控制动画或声音的停止与播放

来源:互联网 | 编辑:啤酒 | 时间:2013-07-17 19:26:22 | 阅读:16777215

今天有闪友问到如何控制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("\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();

}

}

}

}

BannerZest Pro Mac版 V4.0
BannerZest Pro Mac版 V4.0

类型:编程软件  大小:0MB  平台:

MAC

你可能感兴趣的内容

  • 暴风影音加速播放方法教程
    暴风影音加速播放方法教程
    有的小伙伴在使用暴风影音看电视的时候,看到不喜欢的片段,想要跳过去,就可以使用暴风影音加速播放功能。那么,暴风影音怎么加速播放?今天,飞翔铭月给大家带来暴风影音加速播放教程,希望可以帮助大家。

    媒体工具

    2018-07-23

  • 暴风影音avi文件不能播放解决办法​
    暴风影音avi文件不能播放解决办法​
    在使用暴风影音来观看影片的时候,发现AVI文件的视频不能播放,这是怎么回事?下面飞翔铭月就为大家带来了暴风影音avi文件不能播的解决方法。

    媒体工具

    2018-07-23

  • 小米投屏神器使用方法教程
    小米投屏神器使用方法教程
    小米投屏神器怎么使用?很多小伙伴们都还不知道,下面52z飞翔下载小编为大家整理了小米投屏神器使用方法教程,一起来看看吧。

    媒体工具

    2018-07-11

  • 巧影视频分身制作教程
    巧影视频分身制作教程
    巧影app是一款专业媒体视频剪辑器,最近看见抖音有很多小伙伴都在玩“分身术”,大家都在问抖音分身术怎么拍?其实抖音中的分身术视频都是通过巧影app剪辑上传到抖音的,想知道巧影分身视频怎么拍?一起跟飞翔铭月来看一下巧影分身教程吧。

    媒体工具

    2018-05-30

  • 爱奇艺投屏电视设置方法教程
    爱奇艺投屏电视设置方法教程
    爱奇艺投屏电视怎么设置?很多小伙伴们都还不知道,下面52z飞翔下载小编为大家整理了爱奇艺投屏电视设置方法教程,一起来看看吧。

    媒体工具

    2018-05-25

  • qsv格式转换mp4格式图文教程
    qsv格式转换mp4格式图文教程
    很多朋友都有遇到过QSV视频文件无法打开的情况吧。今天本文主要分享一下QSV文件怎么打开,另外如果需要手机、电脑都可以轻松打开qsv文件,则还需要将QSV文件转换成MP4格式就可以了,下面具体来看看。

    媒体工具

    2018-05-14

  • 《暴风转码》翻转视频方法教程
    《暴风转码》翻转视频方法教程
    暴风转码是一款非常实用的视频转码软件,不过一些朋友使用暴风转码后发现图像被倒置了,这个时候怎么办?下面由52z飞翔小编为你带来《暴风转码》翻转视频方法教程,希望能帮助到你

    媒体工具

    2017-12-19

  • 西瓜视频登录方法详细教程
    西瓜视频登录方法详细教程
    西瓜视频是由头今日条视频更改以后的名称,不少用户还不清楚西瓜视频怎么登录?下面就和52z飞翔网小编一起来看看西瓜视频登录方法详细介绍吧!

    媒体工具

    2017-11-02

  • 步兵社区怎么注册 步兵社区账号密码分享
    步兵社区怎么注册 步兵社区账号密码分享
    步兵社区入口——是一款全新的福利看片播放神器,无需充值就可以体验vip待遇,账号密码已绿色,在线播放,还有更多的离线服务,更多的资源等你来,一键搜索!带你轻松免费观看最新伦理大片,一键下载缓存,给你高清流畅观影体验!

    媒体工具

    2017-11-02

  • 爱奇艺账号可以同时登陆吗 爱奇艺会员最多几个人使用
    爱奇艺账号可以同时登陆吗 爱奇艺会员最多几个人使用
    爱奇艺会员最多几个人使用?爱奇艺会员有一个家庭成员的设置这个可以让自己的家庭成员一起使用这个会员,浏览历史也能够不同,这个是其黄金会员的一个特权,那么如何共享呢,下面52z飞翔网小编将为大家讲解一下教程希望大家满意。

    媒体工具

    2017-05-27

热门游戏

下载声明 | 法律声明 | 版权声明 | 友情链接 | 发布软件 | 最新更新

本站为非盈利性网站,不接受任何广告。本站所有资源均由网友上传,如有侵权,请发邮件至 [email protected]

晋ICP备2024046785号-1