0

以下のコードを使用して、外部mp3ファイルをロードしています。

//Create an instance of the Sound class
var soundClip:Sound=new Sound();

//Create a new SoundChannel Object
var sndChannel:SoundChannel=new SoundChannel();

//Load sound using URLRequest
soundClip.load(new URLRequest("namesounds/agamemnonas.mp3"));

//Create an event listener that wll update once sound has finished loading
soundClip.addEventListener(Event.COMPLETE,onComplete,false,0,true);
function onComplete(evt:Event):void {
    //Play loaded sound
    sndChannel=soundClip.play();
}

また、私のhtmlには、ドロップダウンリストがあります。

<select name="sounds" id="sounds">
  <option value="sounds/eden.mp3" selected="selected">eden</option>
  <option value="sounds/zeus.mp3">zeus</option>
  <option value="sounds/earth.mp3">earth</option>
</select>

ドロップダウンメニューからフラッシュファイルへのパスを送信することは可能ですか?例えば:

//Load sound using URLRequest
soundClip.load(new URLRequest("namesounds/agamemnonas.mp3"));

URLRequestは、私の.phpファイルのドロップダウンメニューリストからのパスである必要があります。

4

1 に答える 1

0

ASで使用ExternalInterface.addCallbackし、javascriptからその関数を呼び出す必要があります

AS3

ExternalInterface.addCallback("loadSoundClip", loadSoundClip);
function loadSoundClip(mp3File:String):void{
    soundClip.load(new URLRequest(mp3File));
}

純粋なJavascript

// This is the <select>
var sounds = document.getElementById('sounds');
// This is the <object>/<embed>
var flashObject = document.getElementById('flashObject');
sounds.onchange = function(){
    flashObject.loadSoundClip(sounds.options[sounds.selectedIndex].value);
};

また

jQuery

// This is the <select>
var sounds = $('#sounds');
// This is the <object>/<embed>
var flashObject = $('#flashObject');
sounds.on('change', function(){
    flashObject[0].loadSoundClip($(this).val());
});

ページがフラッシュオブジェクトと通信できるようにallowscriptaccessobject/の値を正しい値に設定することを忘れないでくださいembed

于 2012-11-12T20:46:32.330 に答える