试验程序:画布版九键琴

近期有读者询问如何制作出滑动琴键连续发出声音的程序,他尝试用一排按钮充当琴键,但每次滑动只能触发一个按钮的点击事件,因此也只能发出一个声音。我提示他用画布替代按钮,他希望给予更具体的提示,于是我索性自己做了一段试验性的程序,在这里与大家分享。

首先创建一个项目,命名为“画布版九键琴”,添加三个组件:画布、音效播放器、计时器,它们的属性设置如图1所示。然后上传10个音频文件,从1.ogg到10.ogg。

图1 项目中的组件及属性设置

下面编写程序。首先在屏幕初始化事件中绘制琴键。当画布被按压时,启动计时器,当画布被释放时,停止计时。然后编写画布的拖动事件处理程序,将事件中的参数“当前x坐标”传递给全局变量x。最后在计时器的计时事件中,利用全局变量x计算出对应的音节,设置音效播放器的源文件属性,并播放相应的音节。代码如图2所示。

图2 项目中的全部程序

程序的测试结果如下面的视频,视频是屏幕录制的结果,无法展现手指滑过的场景。

从视频的效果看,声音的播放还不够连续,改进的思路是调整音效播放器的最小间隔与计时器的计时间隔,如果这两个组件的时间属性设置恰当的话,播放效果也许会得到改进。

另,本项目中的素材可在公众号菜单“编程教学--图书资料”中找到(听音练耳)。也可直接访问以下链接:https://pan.baidu.com/s/1boRZ7sF 。

(0)

相关推荐

  • 你知道为什么钢琴有88个琴键吗?

    钢琴为什么叫Piano? 钢琴是谁发明的? 钢琴为什么有88个键? 大师们最爱的钢琴师什么品牌... 学钢琴的你们知道答案吗? 我们都知道,一架标准的钢琴一共有 88 个琴键,其中包括 52 个白键和 ...

  • 【课文 单词mp3】外研版九下Module 1

    对话音频: [对话翻译] 玲玲:欢迎归来,各位! 贝蒂:你好,玲玲!你的假期怎么样? 玲玲:还不错!我去看望了在河南省的祖父母.火车里挤满了人,我不得不站了3个多小时! 贝蒂:真倒霉.为什么在冬天旅行 ...

  • 部编版九年级语文下册传统文化整理

    部编版九年级语文下册传统文化整理 第一单元 1.泉台:指人死后埋葬的地方,也指阴间. 2.旌旗:旗帜的总称.文中借指军士. 3.阎罗:即阎罗王,也称"阎王",民间传说中掌管阴间的神 ...

  • 部编版九年级语文上册《岳阳楼记》知识点整理

    一.文章知识 1.本文出自<范文正公集>,作者是北宋文学家.政治家范仲淹. 2.归纳段意 第一段:写重修岳阳楼的背景和作记的缘由.(记叙) 第二段(写景)描写岳阳楼周围雄伟景色,引出迁客骚 ...

  • 部编版九年级语文上册《醉翁亭记》知识点整理

    一.基础知识: 1.作家作品: 欧阳修,字永叔,号醉翁,晚年号六一居士,北宋文学家.史学家.谥号"文忠",唐宋八大家之一,北宋诗文改革的领袖,在散文.诗词及文学批评方面都有很高的成 ...

  • 【课文 单词mp3】外研版九下Module 2

    对话音频: [对话翻译] 贝蒂:嗨,托尼!你在伦敦玩得开 心吗? 托尼:是的!我去看望了我的朋友并且我参观了她的学校. 贝蒂:英国的学校什么样子? 托尼:这里有一些照片.我自己拍的. 大明:让我们看一 ...

  • 【课文 单词mp3】外研版九下Module 3

    对话音频: [对话翻译] 妈妈:时候不早了,贝蒂.你的家庭作业(做得)怎么样了? 贝蒂:就快完成了.妈妈,你认为现在的生活比过去的好吗? 妈妈:是的,当然,我是这么认为的. 贝蒂:我也这么认为.现在人 ...

  • 【课文 单词mp3】外研版九下Module 4

    对话音频: [对话翻译] 杰克逊先生:好了,请注意一下!在我们出发之前,我要给你们讲 几条规定和建议. 全体学生:好的,杰克逊先生. 杰克逊先生:首先,大家都穿着结实的鞋子和厚袜子吗? 全体学生:是的 ...

  • 【课文 单词mp3】外研版九下Module 5

    对话音频: [对话翻译] 贝蒂:我累了,杰克逊先生. 杰克逊先生:让我们等一下其他人.他们一会儿就会赶上. 贝蒂:谁掉队了? 杰克逊先生:托尼和大明.他们总是在队伍的后面.我认为我们已经约好要待在一起 ...

  • 【课文 课文mp3】外研版九下Module 6

    对话音频: [对话翻译] 玲玲:毕业派对是在什么时候? 贝蒂:看看校历!它将于5月30日举行.我们都被邀请了. 大明:事实上,我被选去负责播放舞曲. 托尼:我被要求带一些气球并为派对画几幅画. 贝蒂: ...