您现在的位置是: 软件 > 设计在线 > Flash > 实例剖析 > 正文


-做个万无一失的QQ高手
-Java设计模式专辑
-Flash MX 文本工具详解
-PowerBuilder多媒体及图形图像专辑

用Flash模拟机械节拍器
2002-07-09· ·盗匪··天极设计在线

1 2 3  下一页

  作为一个吉他爱好者,盗匪一直想拥有一个节拍器,可苦于银子太少,节拍器又太贵,所以……但是一个有头脑的闪虫是不会被这点小困难吓倒的,今天我们就用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)
  对数值进行取整运算。

1 2 3  下一页

【责任编辑:Shiny】
【发表评论】【关闭窗口】
■ 相关内容
 用Flash做奇妙的旋转导航条
 Flash MX 文本工具详解
 Flash MX 文本工具手册
 用Flash MX打造逼真打火机
 利用Flash MX模板制作XML动态菜单
 用Flash 绘制世界杯会标
 Flash MX 轻松制作旋转啮合齿轮
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!