2.Flash音频频谱分析仪二部分。
时间:2013-01-07 14:11来源:卓想动画http://www.zxgzs.com 作者:QQ:610929375 点击: 次
电影的第一帧是轨道的选择菜单中,第二和第三帧的履带式装载机,第四帧是轨道的控制面板上,第五和第六帧更新频谱杆,停止在第10帧的电影回到第1帧中的曲目选择菜单。
你要注意的laysers的播放按钮的动作层,层和显示层。剩下的只是图形。
在整个影片中的“播放”按钮,但用户不应该被允许播放音乐时,它并没有被加载。给按钮的名称和禁用它在帧动作,不要忘记停止正在播放的电影:
playButton.enabled = FALSE;
停止();
现在,创建两个按钮符号的曲目选择,播放的轨道,把按钮层和曲目选择按钮在同一层上的每一个轨道上的播放按钮的一个实例。
创建一个空的影片剪辑元件,拖上了一层,你还记得和它的一个实例,实例命名为“轨道”。这是用来,加载track.swf,我们将创建成电影,当用户选择的按钮。同时创建一个目录的目录中,你把spectrumAnalyzer.swf为每个轨道,命名为“跟踪”,其中#是您的轨道,你可以使用曲目名称,如果你想,只要你指定在“thePath “下面的变量。现在把下面的代码到每个按钮,并相应地改变“thePath”。
(新闻)
VAR thePath =“TRACK1 /”;
使用loadMovie(thePath添加“track.swf”,_root.track);
_root.track.play();
gotoAndPlay(2);
}
我们将尽的播放按钮,最后的代码,这样你将有一个更好的理解如何工作的。
完成框架之一。现在去帧,并创建一个“加载”字样,并扩展到框架三大。把下面的框框架三大行动统一到。
如果(_root.track._currentframe == 4){
playbutton.enabled = TRUE;
gotoAndStop(4);
} {
gotoAndPlay(2);
}
不使用的if语句的“_root.track.framesloaded4”。因为有另一种装载机在track.swf电影。
现在,创建一个电影符号的频谱酒吧如下:
如果你不是做一个像我一样的数字频谱显示,您可以创建形状补间酒吧,从124帧到200帧。
当你完成后,创建一个电影符号频谱显示,10个光谱酒吧实例拖动到频谱显示符号,并将其命名sbar1,sbar2,sbar10。
频谱显示的一个实例,然后把根上显示层,并命名“spectrumDis”,到第5帧,并提出以下帧动作:
theInterval =的(_root.track.soundChannel.position / _root.track.interval)+1;
(theInterval_root.track.totalRow)
(i = 1; I11,我+ +){
“_root.spectrumDis”SBAR“添加字符串(I)]。gotoAndStop(199 +号码(_root.track”数据“添加的字符串(theInterval)]在[i-1]));
}
}
框架5和图6是一个循环,更新显示的光谱。让我尝试解释什么是怎么回事。为了使我们需要在不同的时间频率的振幅频谱分析仪,光谱实验室做工作,以可调整的间隔记录数据,我们现在需要知道在播放曲目的时间间隔,因此,我们可以参考相应的部分数据和设置频谱酒吧。光谱实验室记录幅度从0到-199 dB的范围内,在一个特定的时间间隔(在本教程中,我指的是作为一个“行”)的数据输出看起来像这样:
-17,-51,-55,-62,-65,-66,-64,-68,-69,-69,
和数据写入的下一个时间间隔中的下一行等..我们的想法是将这些行插入到数组的10个元素,或者更好的是一个二维数组。这两种工作方式,本教程使用较早。因此,一个数组代表一个“行”和一分钟的轨道,有数以百计的这些阵列。现在,我们想知道数组表示光谱数据轨道的当前位置,我们首先要计算在曲目正在播放的时间间隔。然后我们检查,如果它是在最近的时间间隔,如果它是不是我们去到一个为循环其中“通过各频谱的酒吧,得到的值从数组[theInterval] [loopcount]和告诉的频谱酒吧电影片段到的帧199 +数据(0到-199记得吗?),但其中只有0到-75的声音,这就是为什么你创建形状补间酒吧125和200帧之间在频谱酒吧符号。
要完成其余的循环帧,并在下面的帧动作:
(theInterval <_root.track.totalRow){
this.gotoAndPlay(4);
} {
(i = 1;我<11; i + +){
_root.spectrumDis [“SBAR”添加字符串(I)]。的gotoAndStop(124);
}
}
在其中_root.track.totalRow总数行中的track.swf calcuated,如果当前的时间间隔是不是最后的区间,返回到前一帧和更新的频谱显示,否则设置所有的频谱酒吧“ 0%“。
当你这样做的循环,到11帧,第一帧,并告诉它转到:
gotoAndStop(1);
在本节的最后一件事 - “播放”按钮的脚本:
(新闻)
如果(_currentframe4 && _currentframe11){
_root.track.soundChannel.stop();
theInterval = _root.track.totalRow;
gotoAndPlay(6);
} {
_root.track.gotoAndStop(5);
发挥();
}
}
一件事,我在这里需要说明的是,,该帧5在track.swf有脚本启动的声音,所以_root.track.gotoAndStop(5)在播放声音的效果。
(责任编辑:卓想动画http://www.zxgzs.com)