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中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

JAVA中while循环的使用与注意事项

《JAVA中while循环的使用与注意事项》:本文主要介绍while循环在编程中的应用,包括其基本结构、语句示例、适用场景以及注意事项,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录while循环1. 什么是while循环2. while循环的语句3.while循环的适用场景以及优势4. 注意

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去