ちょっとしたイコライザ
イテル on 06 20, 2009

先日の音楽とswfを同期させる処理を調べていたら、「TheFlashBlog」さんを見つけた。
音楽に合わせて円を描くちょっとしたイコライザ的なもの(参照)。
とりあえず、わけのわからぬままコピペしてちょいと修正してみた。
//変数類の宣言
var s:Sound = new Sound();
var sc:SoundChannel;
var ba:ByteArray = new ByteArray();
var array:Array;
//URLをセット
s.load(new URLRequest("http://domain.domain/path.mp3"));
//読み込み時のイベント登録
this.addEventListener(Event.ENTER_FRAME, spectrum);
var a:Number = 0;
//波形を表示する
function spectrum(event:Event){
a = 0;
graphics.clear();
SoundMixer.computeSpectrum(ba,true,0);
for(var i=0; i < 256; i=i+8){
a = ba.readFloat();
var num:Number = a*360;
graphics.lineStyle( num/15 , 0x0066FF | (num<< 8));
graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,i);
}
}
// 再生ボタンを押したとき
play_b.buttonMode=true;
play_b.addEventListener(MouseEvent.CLICK,function(event){
//現在再生中の音楽を停止
if(sc){
sc.stop();
}
if(s){
//9999回リピートさせ再生
sc = s.play(0, 99999);
}
});
// 停止ボタン
stop_b.buttonMode=true;
stop_b.addEventListener(MouseEvent.CLICK,function(event){
//再生停止
if(sc){
sc.stop();
}
});
で、出来上がったのがこれ↓。
こんなに簡単にできるんだ。
やっぱas3はおもろいなぁ。
Popular Posts
Recent Posts
Recent Comments
- hidakaya: ありがとうご
- Infrared Heaters: `,* I am really than
- cakePHPでデータベースのテーブルにフィールドを追加したときに発生した問題2 | ダリの雑記:WEBプログラム版: ... http://oneday.te
- ボタンを作りまくる « sakaiden: ... ●ボタンを
- tm3242: 詳細ありがと

