as3でイコライザ再び

090630-2

またも、イコライザが気になりクリクリ調査。

52secNoteさんのサイトを発見。

さっそく試してみることにした。

[as3]
var myVolume:int = 0;

var bgm:Sound = new Sound();
bgm.addEventListener(Event.COMPLETE, onSoundLoaded);
var req:URLRequest = new URLRequest("http://domain.domain/path.mp3");
var trans:SoundTransform = new SoundTransform(1, 0);
var channel:SoundChannel;
var soundBox01:SoundBox = new SoundBox(5, 5, 2, 2, 1, 1, 0xFFFFFF);
ico_mc.ico_in_mc.addChild(soundBox01);

function onSoundLoaded(event:Event):void{
channel = bgm.play(0, 500);//500はリピート回数
soundBox01.start();
}
bgm.load(req);

//クリックしたとき音楽を停止or再生
ico_mc.buttonMode=true;
ico_mc.addEventListener(MouseEvent.CLICK,click);
function click(e:Event):void{
// 再生チャネルは初期化されている?
if(channel) {
myVolume = ++myVolume % 2;
switch(myVolume) {
case 0:
trans.volume = 0;
break;
case 1:
trans.volume = 1;
break;
}
channel.soundTransform = trans;
}
}
//※再生ボタンなど余計なところは消去してます。
[/as3]

で、できたのがこれ。

[swf w=125h=90]http://oneday.ter.jp/swf_data/0906/090628/ico090628.swf[/swf]

実はよく理解せぬまま、ためさせてもらった(笑

でもステキだ~。

もっと小さくしたときでもわかりやすいともっとステキ・・・と言ってみるテスト。

また、イコライザをクリックしたときにミュートされるようにしてみたけど、

なんか一回目のクリックのときは無視されるみたい。。。

あとできちんと調べよ。