AS3中用什么函数可以实现随音乐节奏变化的声音波形?
公共类sound拉杆扩展Sprite
{
私有var URL:String = " a . MP3 ";
私有var Sound:Sound = new Sound();//创建声音
私人var schannel:sound channel;//创建声音通道
private var barray:ByteArray = new ByteArray();//创建一个字节数组
私有变量:数组;
私有var n:Number = 0;//记录的数量
私有var线:雪碧=新雪碧;//行的容器
公共函数void拉杆():void
{
//var sound test:sound test = new sound test(stage);
//addChild(sound test);
init();
}
私有函数init():void
{
//将mp3文件载入声音并播放。
var req:URL request = new URL request(URL);
sound.load(请求);
sound . play();
this . addchild(lines);
//从加载第一帧开始,触发的事件不断循环。
this.addEventListener(事件。ENTER_FRAME,show);
}
//开始绘图
私有函数显示(evt:Event):void
{
if(math . random()& gt;0.5){
var r:int =-Math.random()*20
}否则{
r = Math.random()*20
}
n = 0;//先清除
lines . graphics . clear();//清除所有图形
//将音频数据转换成字节数组保存在barray中,然后用这些数据生成动态的小竖线。
sound mixer . computespectrum(barray,true,0);
var tempx:int = 0;
var tempy:int = 100;
//画一个动态的小竖线动画,让每一条线都相隔一点距离,所以用i+=16。
for(var I:uint = 0;我& lt400;i += 10)
{
n = barray . read float();
var num:Number = n * 100;
lines.graphics.lineStyle(4,0x 00ff 00);
lines.graphics.moveTo(tempx,tempy);//绘制线条起点
lines.graphics.moveTo(i,100);
lines.graphics.lineTo(i,100-num);//绘制线条终点
lines . graphics . end fill();
tempx = I;
tempy = 100-num;
}
}
}
其实最主要的是你得到的是barray的数据,根据这个数据做出来的东西都可以有跟随音乐波动的效果。