2011年1月16日日曜日

外部音声ファイルサイズ .length の盲点

ちょっとした事から、簡易mp3プレーヤーをflashで作る事になり。。。

仕様的には2つの聴き比べように2つのプレイボタンとストップボタンとシークバー。
なんて事はないよく見るプレーヤーですが。。。

シークバー作るのって意外とめんどくさい。。。

再生位置の表示に欠かせない公式的なものが

handle_mc.x = SoundChannel.position / Sound.length * bar_mc.width;

クセ者は.length

ライブラリーに読み込んで、リンゲージの設定をした音源なら問題ないが、外部からの読み込み音源だと.loadで読み込んで、

var sd:Sound;
var sc:SoundChannel
var size:int
var range:int = bar_mc.width;
addEventLestener(Event.COMPLETE,load_comp);
function load_comp(Event):void{
size.length;
}

等してlength値を取得する必要があるみたい。。。

ちなみにfunctionで取得しないと値は0なので、シークバーのhandle_mcは動かない。

なので公式にあてはめると

handle_mc.x = sc.position / size * range;

って感じ。。。

気付けば当たり前の事だけど、早く言ってよ。。。

0 件のコメント:

コメントを投稿