试验程序:画布版九键琴
近期有读者询问如何制作出滑动琴键连续发出声音的程序,他尝试用一排按钮充当琴键,但每次滑动只能触发一个按钮的点击事件,因此也只能发出一个声音。我提示他用画布替代按钮,他希望给予更具体的提示,于是我索性自己做了一段试验性的程序,在这里与大家分享。
首先创建一个项目,命名为“画布版九键琴”,添加三个组件:画布、音效播放器、计时器,它们的属性设置如图1所示。然后上传10个音频文件,从1.ogg到10.ogg。
图1 项目中的组件及属性设置
下面编写程序。首先在屏幕初始化事件中绘制琴键。当画布被按压时,启动计时器,当画布被释放时,停止计时。然后编写画布的拖动事件处理程序,将事件中的参数“当前x坐标”传递给全局变量x。最后在计时器的计时事件中,利用全局变量x计算出对应的音节,设置音效播放器的源文件属性,并播放相应的音节。代码如图2所示。
图2 项目中的全部程序
程序的测试结果如下面的视频,视频是屏幕录制的结果,无法展现手指滑过的场景。
从视频的效果看,声音的播放还不够连续,改进的思路是调整音效播放器的最小间隔与计时器的计时间隔,如果这两个组件的时间属性设置恰当的话,播放效果也许会得到改进。
另,本项目中的素材可在公众号菜单“编程教学--图书资料”中找到(听音练耳)。也可直接访问以下链接:https://pan.baidu.com/s/1boRZ7sF 。
赞 (0)