用Flash模拟机械节拍器
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-14
作为一个吉他爱好者,盗匪一直想拥有一个节拍器,可苦于银子太少,节拍器又太贵,所以……但是一个有头脑的闪虫是不会被这点小困难吓倒的,今天我们就用Flash来DIY一个机械节拍器。 在制作之前,我想还是先解释一下什么是节拍和节拍器。 节拍是指强拍和弱拍的组合规律。有很多有强有弱的音,在长度相同的时间内,按照一定的次序反复出现,形成有规律的强弱变化,例如:每隔一个弱拍出现一个强拍,这是一种节拍;而每两个弱拍再出现一个强拍时,又是另外一种节拍。同时节拍也是有一定频率的,如果在乐曲中追求的速度是每分钟60拍,那么每秒就是一拍(半拍是1/2秒),如果要求的是每分钟120拍,那么每拍就是1/2秒(半拍为1/4秒)以此类推,这个被称为拍子的时值。 节拍器就是通过不同的声音来反映强拍和弱拍的一种辅助工具,在乐器的练习中被广泛的使用,今天我们模拟的这种机械节拍器是通过调节摆的重心(摆锤高度)来改变节拍的频率(时值)的,使用起来非常方便。 点击play按钮开始运行,拖拽摆锤改变摆的重心,在右下角的文本框中可以观察频率的变化,修改左下角的数字可以改变每小节的节拍数。 一、制作原理和思路 从上面的介绍中我们可以看出节拍器有两个重要参数:时值(或者说是摆的频率)和节拍(每小节的节拍数)。时值可以通过调节摆的重心来改变,节拍我们可以在场景中安排一个输入文本框(input text),通过向文本框中添入数值的方式来获得节拍值。 改变摆锤的高度可以用拖拽(startDrag)来实现,然后将摆锤的高度值简单地转化为一个合适的角度值(就是我们后面将会提到的_root.tr),按下开始按钮后,利用帧的循环使摆的旋转角度(_rotation)不断地与_root.tr进行相加运算以达到增大摆的偏角的目的,同时判断摆的角度是否满足了我们规定的最大角度,如果是,那么播放声音同时改变_root.tr的正负值,使摆向相反的方向摆动,这样不断地循环下去,直到按下了停止按钮;摆动的同时还要计算摆动的次数,用以判断是该播放强拍的声音还是应该播放弱拍的声音,这就需要在当摆达到了最大角度,我们在播放声音,改变角度的正负值的同时,使变量累计次数(_root.sum)进行自加运算,并判断是否与场景中的输入文本——节拍 的数值相等,如果不相等则播放弱拍并继续累加,如果相等就播放强拍并使累计变量复位以开始新计数好。 二、制作中用到的几个Action Script(AS)语句解释 ① movieClip.startDrag([lock ,left ,top ,right,bottom]) 使电影剪辑(MC)允许拖拽; lock可以是true或false,代表是否在拖拽时将MC的中心锁定到鼠标指针上; left ,top ,right,bottom可以是任意数值,代表拖拽的范围,应该注意的是顺序不能改变并缺一不可,但如果不需要拖拽范围可以集体被省略。 ②movieClip.stopDrag() 禁止电影剪辑的拖拽行为。 ③Math.round(Number) 对数值进行取整运算。 好,现在进入制作阶段。打开flash了,按Ctrl+J(盗匪用的是Flash MX,你也快升升级吧,不过我们文章末尾的原文件可以用flash 5打开)打开属性(document properties)面板,将动画大小改为320*450,速度20帧/秒。注:动画的速度是个重要的因素,在计算时值时要用到它,公式会在后面的介绍中提到。 三、符号的制作 最重要的符号只有两个:一个是“摆”(包括摆锤和摆柄,图1),一个是含有声音的MC,其中包含两个不同的声音文件,分别用来反映强拍和弱拍,都可以在flash自带的库(library)中找到,后面有具体的制作方法。下面就先来制作摆: (1)制作摆柄: Ctrl+F8新建一个图形(graphic)符号,用画圆工具(O)画一个圆: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 制作精美的flash桌面时钟下一篇: Flash MX 轻松制作旋转啮合齿轮
关于用Flash模拟机械节拍器的所有评论