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

相关文章

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

浅析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的顺