一个按钮控制音乐的播放和暂停
许向前
在使用电脑的过程中,我们可以发现一些软件的一个按钮可以实现两种功能,比如Windows Media Player的播放和暂停按钮就是二合一的,在播放时按钮显示为暂停,在暂停时显示为播放。在课件中,我们也可以实现以上这种效果。下面就以Flash MX为例进行说明。
一、实现思路
定义一个变量,在每次单击按钮时,该变量自动加1,然后对该变量除以2获得余数,余数有两种情况或者为0,或者为1;再根据余数的不同,来改变按钮的状态,并通过AS语句分别控制音乐的播放和暂停。
二、实现方法
1. 启动Flash MX,单击“文件→导入到库”,出现“导入到库”对话框,将所需的声音文件导入到Flash MX库中;按Ctrl+L组合键,打开库,在导入的声音文件上点击右键,选择“链接”;在“链接属性”对话框中,把“为动作脚本导出”选项选中,在标识符中填入“beijing”(图1),为后面的动作脚本调用该声音文件做好准备。
2. 选定主场景中的第一帧,打开动作面板,输入如下语句:
mysound = new Sound();
//定义一个新的声音对象
mysound.attachSound("beijing");
//绑定库中的声音,注意加上引号
mysound.start();
//开始播放声音
在这一帧中,首先定义了一个声音对象,然后把刚才库中的声音文件绑定到该声音对象,并开始播放声音。注意:“//”后面的是注释。
3. 打开组件面板,拖入一个“PushButton”至主场景中,在属性面板中,将之命名为“kongzhi_bt”,在参数设置中,将“Label”设置为空(这个参数用来设置按钮上的文字,后面我们要动态改变上面的文字),在“Click Handler”中填入“kongzhi”(这里设置的是单击按钮后执行的一个自定义函数,我们下面要来定义它)。设置如图2所示。
4. 下面我们继续在第一帧中自定义刚才所要用到的函数——“kongzhi”。选定第一帧,接着输入如下语句:
function kongzhi() {
//定义函数
i = i+1;
if (i%2 == 1) {
//对变量i进行取模
mysound.stop();
_root.kongzhi_bt.setLabel("播放");
//如果余数为1,则停止播放声音,按钮标签为“播放”
} else {
mysound.start(mysound.position/1000);
_root.kongzhi_bt.setLabel("暂停");
//否则的话,接着播放声音,按钮标签为“暂停”
}
}
最后加上一句:
_root.kongzhi_bt.setLabel("暂停");
//将按钮上的初始文字设置为“暂停”
测试影片,影片开始时播放声音,按钮此时文字为“暂停”;单
击按钮,则声音暂停,按钮文字变为“播放”;再单击,则声音继续播放。