as3.0音频分析器效果

有段时间没有写as3.0成果,现在接上,上次没有发的音频分析器

也快过年了,好像事情越来越多了,我相信这是好兆头,08年是幸运年,09年是转折年
代码如下:

package {
import flash.media.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
import flash.events.*;
import flash.xml.*;
public class getshape extends Sprite {
private var s=new Sound ;
private var sc=new SoundChannel ;
private var sbytes=new ByteArray ;//package into utils class
private var s_mc=new Sprite ;
private var url:URLRequest;
private var n;
private var s_height=50;
private const s_row=80;//固定值
private var s_width=3;
private var s_distance=8;
//xml style
private var xml:XML;
private var pic_array_n=new Array ;
private var pic_array_url=new Array ;
private var mc=new MovieClip ;
private var urlloader=new URLLoader ;
private var loader=new Loader ;
//初始化程序
public function getshape() {//public可以外部类访问
playMp3("onelove.mp3");
loadpic();
}
private function loadpic() {//private只允许在内部类中访问
urlloader.addEventListener(Event.COMPLETE,createxml);
try {
urlloader.load(new URLRequest("list.xml"));
} catch (e:TypeError) {
trace("load error xml");
}

}
private function createxml(e:Event) {
xml=new XML(urlloader.data);
xml.ignoreWhite=true;
var picbox=new Object ;
//xmllist:XMLList=xml.@*;//read all attributes list exmaple:xml="" //outprint: 1 a 1.jpg;
for (var i=0; i
pic_array_url.push(xml.elements("pic")[i].attributes()[1]);//so same to:xml.elements("pic")[i].@url;
loader.load(new URLRequest(pic_array_url[i]));
var mc=new MovieClip();
mc.graphics.beginFill(0xffffff,1);
mc.graphics.drawRect(0,0,120,90);
mc.graphics.endFill();
mc.x=uint(i%2)*200+50;
mc.y=uint(i/2)*200+50;
addChildAt(mc,i);

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadxmlpicProgress);

loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadxmlpicComplete);

}

}
private function loadxmlpicProgress(e:ProgressEvent) {
var loads:Number=Math.round(e.bytesLoaded/e.bytesTotal*100);

}
private function loadxmlpicComplete(e:Event) {
//mc.addChild(loader);
trace(“ok”);
}
//MP3音频
private function playMp3(url) {
s.load(new URLRequest(url));
sc=s.play();
addEventListener(Event.ENTER_FRAME,s_enterframe);
sc.addEventListener(Event.SOUND_COMPLETE,s_replay);

}
private function s_enterframe(e:Event) {
SoundMixer.computeSpectrum(sbytes,false,0);
//first
var g=this.graphics;
g.clear();
for (var i=0; i
g.beginFill(0xffffff,.1);
g.moveTo(i*s_distance,0);
g.lineTo(i*s_distance+s_width,0);
n=Math.abs(sbytes.readFloat()*s_height);
g.lineTo(i*s_distance+s_width,s_height-n);
g.lineTo(i*s_distance,s_height-n);
g.endFill();
}
}
private function s_replay(e:Event) {
trace(“ok”);

}

}
}

ps:如何让音乐自动重播?