リプタクのもう覚えられません
Google
Web サイト内
topmemo ▶ サウンドだけ別swfにわけたい

ActionScript

サウンドだけ別swfにわけたい

サウンドデータを別々のライブラリに格納して混乱してしまったので、これを整理するサンプル。

内容は1つのFlashファイルのライブラリに音ファイルを読込み、それぞれリンケージでクラスに書き出し、再生用メソッドを記述しておく。それを別swfから絶対パスなどでアクセス実行して再生。

メリットは共通音ファイル重複登録を避け、ファイルサイズの縮小化。
デメリットはswf書き出し自体は特に問題ないが、単独swfでは音確認できないこと。
イメージ

<サンプル>

JavaScriptを有効にし、最新のFlashPlayerをインストールお願いしますGet Adobe Flash player


サンプルは3個のswfで構成されている。
音データはsound.swfにある。

as3コード(sound.swfのメインタイムライン)

//sound再生
function func_sound001(){
	var mySound:Sound = new Class_sound001();
	var my_trans:SoundTransform = new SoundTransform(1.0,0);//音量,パン
	var my_Chanel:SoundChannel = mySound.play(0.0*1000,1,my_trans);//開始ミリ秒,繰り返し数,音量
}
function func_sound002(){
	var mySound:Sound = new Class_sound002();
	var my_trans:SoundTransform = new SoundTransform(1.0,0);//音量,パン
	var my_Chanel:SoundChannel = mySound.play(0.0*1000,1,my_trans);//開始ミリ秒,繰り返し数,音量
}

//button(動作確認用ボタン)
test01_bt.addEventListener(MouseEvent.CLICK,func_test01);
test02_bt.addEventListener(MouseEvent.CLICK,func_test02);
function func_test01(e:MouseEvent):void{
	func_sound001();//sound再生
	e.updateAfterEvent();
}
function func_test02(e:MouseEvent):void{
	func_sound002();//sound再生
	e.updateAfterEvent();
}


as3コード(oya.swfのメインタイムライン一部抜粋)

//sound.swf→sound_mc:MovieClip処理等記述省略

sound_mc.func_sound001();//sound再生
sound_mc.func_sound002();//sound再生


as3コード(child.swfのメインタイムライン一部抜粋)

//絶対パスで指定した場合
MovieClip(root.parent).sound_mc.func_sound001();//sound再生

//相対パスで指定した場合
MovieClip(parent).sound_mc.func_sound002();//sound再生


as3コード(child.swfの子タイムライン一部抜粋)

//絶対パスで指定した場合
MovieClip(root.parent).sound_mc.func_sound001();//sound再生

//相対パスで指定した場合
MovieClip(parent.parent).sound_mc.func_sound002();//sound再生

/*
root.parent→child.swfメインタイムラインの親を参照
parent.parent→親の親を参照
*/
last update 2012.1.25
参考・出典等
「特に無し」

▲page top

topmemogalleryblogtestaboutlinksmail
Copylight(C)2008-2012 Riptac. All Rights Reserved.