« PHP:配列のポインタ制御 | メイン | PHP:each()関数 »
2005年12月04日
FLASH:スクリプトでmp3ファイルを読み込み再生する
フレームアクションでのmp3ファイルを読み込む場合のサンプルです。読み込み・読み込み%の出力・読み込みが終わった後の処理・一時停止など、さまざまなアクションをスクリプト上で行うことができます。
■準備
・ステージ上にsoundLoadingという名前のムービークリップを用意します。(インスタンス名もsoundLoadingに設定)そのMCの中には、ダイナミックテキストのボックスを配置し、「変数」に「per」と入力しておきます。
以下、メインフレーム内に記述します。以下のスクリプトはFLASH MX以降で有効です。
playSound = new Sound(); //新規にサウンドオブジェクトを生成します。
s_pos = 0; //再生経過時間(ミリ秒)
playSound.loadSound("test.mp3", false); //mp3読み込み・ストリーミング再生はしない
// EnterFrameで読み込み%を出力
soundLoading.onEnterFrame = function(){
var per = Math.floor(playSound.getBytesLoaded()/playSound.getBytesTotal()*100);
//getBytesLoaded():読み込まれたバイト数
//getBytesTotal():mp3のファイルサイズ
//perは読み込んだ%を表します。
if(!per){
soundLoading.per = 0;
}else{
soundLoading.per = per;
if(100 <= per){
delete soundLoading.onEnterFrame; //mp3読み込み%出力処理を終了
soundLoading._visible = false; //mp3読み込み%を非表示
}
}
}
//mp3ファイルが読み込まれたかどうかをチェック
playSound.onLoad = function(success){
if(success){
trace("mp3ファイルの読み込みに成功しました。"+"/"+playSound.getBytesLoaded()+"/"+playSound.getBytesTotal());
//ここにはmp3読み込み成功時の処理を記述します。
}else{
trace("mp3ファイルの読み込みに失敗しました。");
//ここにはmp3読み込み失敗時の処理を記述します。
}
}
//mp3ファイルの再生が終了した場合の処理
playSound.onSoundComplete = function(){
trace("再生が終了しました。");
//ここにはmp3再生終了時の処理を記述します。
}
//mp3再生メソッド
function soundPlay(){
playSound.start(s_pos/1000); //停止箇所から再生開始(初期は先頭から)
//再生経過時間取得処理
_root.onEnterFrame = function(){
s_dur = playSound.duration; //load したmp3の長さ(ミリ秒)
s_pos = playSound.position; //再生経過時間(ミリ秒)
}
}
//mp3停止メソッド
function soundStop(){
playSound.stop(); //mp3を停止
delete _root.onEnterFrame; //再生経過時間取得処理を終了
}
//これで準備完了です。
//■mp3の再生を行いたい場合
//(このユーザ定義関数を使用すると、最初の実行時はmp3の最初から、
//2回目以降は停止した時点から再生されます。)
soundPlay();
//■mp3を停止したい場合
soundStop();
投稿者 wing : 2005年12月04日 01:06