Flash制作音乐频谱的效果
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
|
ar m:int=0; m<256; m++) {
var temp2:Column = _show2.getChildByName("column_"+m.toString()) as Column;
temp2.getSpectrum((_spectrum[m]+_spectrum[m+256])*50);
}
//将频谱数据传送给波形的精灵实例
_waveform.getSpectrum(_spectrum);
}
//创建柱状的精灵对象
private function createColumn(f_num:int,f_width:int,f_space:int,target:Sprite):void {
for (var i:int=0; i<f_num; i++) {
_column = new Column();
_column.name = "column_"+i.toString();
_column.width = f_width;
_column.x = i*(f_width+f_space);
target.addChild(_column);
}
}
//更改样式(type 为 0 时显示柱形,为 1 时显示波浪,为 2 时显示波形)
public function changeType(type:int):void {
switch (type) {
case 0 :
if (_showSpectrum.contains(_show1)) {
_showSpectrum.removeChild(_show1);
}
if (_showSpectrum.contains(_show2)) {
_showSpectrum.removeChild(_show2);
}
if (_showSpectrum.contains(_show3)) {
_showSpectrum.removeChild(_show3);
}
_showSpectrum.addChild(_show1);
break;
case 1 :
if (_showSpectrum.contains(_show1)) {
_showSpectrum.removeChild(_show1);
}
if (_showSpectrum.contains(_show2)) {
_showSpectrum.removeChild(_show2);
}
if (_showSpectrum.contains(_show3)) {
_showSpectrum.removeChild(_show3);
}
_showSpectrum.addChild(_show2);
break;
case 2 :
if (_showSpectrum.contains(_show1)) {
_showSpectrum.removeChild(_show1);
}
if (_showSpectrum.contains(_show2)) {
_showSpectrum.removeChild(_show2);
}
if (_showSpectrum.contains(_show3)) {
_showSpectrum.removeChild(_show3);
}
_showSpectrum.addChild(_show3);
break;
}
}
}
}
Column类,条形的频谱类,在Spectrum类里柱状样式中创建了 64 个,而波浪样式中创建了 256 个。
-
- /*
- 类功能:柱状的频谱。
- */
- package net.cdipan.spectrum{
- import flash.display.*;
- import flash.geom.*;
- import flash.events.Event;
- import flash.utils.Timer;
- import flash.events.TimerEvent;
- public class Column extends Sprite {
- //顶部小方块颜色
- private const square_color:uint = 0xffffff;
- //顶部颜色
- private const top_color:uint = 0xffffff;
- //中间颜色
- private const middle_color:uint = 0x8cdcff;
- //底部颜色
- private const bottom_color:uint = 0x07f7ff;
- //背景精灵对象
- private var BG_Sp:Sprite;
- //遮罩精灵对象
- private var mask_Sp:Sprite;
- //小方块精灵对象
- private var square_Sp:Sprite;
- //记录上次的频谱的值,如果比这次的高就减一,否则将这次的设为此值
- private var oldNum:Number;
- //计时器对象
- private var myTimer:Timer;
- //记录小方块是否可以下落
- private var canDrop:Boolean;
- public function Column():void {
- BG_Sp = new Sprite();
- drawGradualRect();
- addChild(BG_Sp);
- mask
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn
为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
|