ActionScript 3.0 按钮控制音乐播放、暂停、停止、循环

2023-11-03 12:32

本文主要是介绍ActionScript 3.0 按钮控制音乐播放、暂停、停止、循环,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ActionScript 3.0 按钮控制音乐播放、暂停、停止、循环

1 按钮

这里用3个Button组成一个MovieClip
MoiveClip的名称为:mcMusic
停止Button的名称为:btnStop
播放Button的名称为:btnPlay
暂停Button的名称为:btnPause

2 播放

从_pos位置开始播放。
注意:play与addEventListener不能互换位置。

private function _play(evt:MouseEvent):void {if (_isPause == true) {_soundChannel = _music.play(_pos);              _soundChannel.addEventListener(Event.SOUND_COMPLETE, _audioComplete);_isPause = false;}
}

3 暂停

注意:保存播放位置的代码与stop的代码不能互换位置。

private function _pause(evt:MouseEvent):void {if (_isPause == false) {_pos = _soundChannel.position;_soundChannel.stop();_isPause = true;}
}

4 停止

private function _stop(evt:MouseEvent):void {_soundChannel.stop();_pos = 0;_isPause = true;
}

5 循环

本来Sound的play方法中有一个loops参数用来设置要循环多少次,但是设为0和1的时候都是播放一次,并不能通过这个参数来设置无限循环。这里可以将循环次数设得很大,效果近似于无限循环,不过我还是不喜欢这样做。我的做法是,监听音乐的结束,结束时再播放。

private function _audioComplete(evt:Event): void {if (_isPause == false) {_soundChannel = _music.play();_soundChannel.addEventListener(Event.SOUND_COMPLETE, _audioComplete);}
}

6 完整文档类

package  {import flash.display.MovieClip;import flash.events.MouseEvent;import flash.media.SoundChannel;import flash.events.Event;public class JMusic extends MovieClip {var _music:JCMusic = new JCMusic();var _soundChannel:SoundChannel = new SoundChannel();var _pos:Number = 0;var _isPause = false;public function JMusic() {mcMusic.btnMusicPlay.addEventListener(MouseEvent.CLICK, _play);mcMusic.btnMusicPause.addEventListener(MouseEvent.CLICK, _pause);mcMusic.btnMusicStop.addEventListener(MouseEvent.CLICK, _stop);_soundChannel = _music.play();_soundChannel.addEventListener(Event.SOUND_COMPLETE, _audioComplete);}private function _play(evt:MouseEvent):void {if (_isPause == true) {_soundChannel = _music.play(_pos);              _soundChannel.addEventListener(Event.SOUND_COMPLETE, _audioComplete);_isPause = false;}}private function _pause(evt:MouseEvent):void {if (_isPause == false) {_pos = _soundChannel.position;_soundChannel.stop();_isPause = true;}}private function _stop(evt:MouseEvent):void {_soundChannel.stop();_pos = 0;_isPause = true;}private function _audioComplete(evt:Event): void {if (_isPause == false) {_soundChannel = _music.play();_soundChannel.addEventListener(Event.SOUND_COMPLETE, _audioComplete);}}}
}

这篇关于ActionScript 3.0 按钮控制音乐播放、暂停、停止、循环的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/338202

相关文章

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Java中的for循环高级用法

《Java中的for循环高级用法》本文系统解析Java中传统、增强型for循环、StreamAPI及并行流的实现原理与性能差异,并通过大量代码示例展示实际开发中的最佳实践,感兴趣的朋友一起看看吧... 目录前言一、基础篇:传统for循环1.1 标准语法结构1.2 典型应用场景二、进阶篇:增强型for循环2.

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

Python如何将OpenCV摄像头视频流通过浏览器播放

《Python如何将OpenCV摄像头视频流通过浏览器播放》:本文主要介绍Python如何将OpenCV摄像头视频流通过浏览器播放的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完... 目录方法1:使用Flask + MJPEG流实现代码使用方法优点缺点方法2:使用WebSocket传输视

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应