0

ボタンを押したときに曲が再生されるようにプログラムしようとしています。6 つのボタンと 6 つの曲があります。別のボタンを押したときに別の曲が再生されるようにします。ボタンを押すと各曲を開始して再生するだけでなく、前のボタンに関連付けられている再生中の前の曲も停止する as3 コーディングを作成するにはどうすればよいですか。

4

2 に答える 2

0

これは、さまざまなボタンを使用してライブラリからさまざまな曲を実行するためのシンプルで最適化された方法です.これは、ライブラリで両方の名前が付けられていることを前提としており、「Song1」、「Song2」などの規則に従っていることに注意してください.

var soundchannel:SoundChannel = new SoundChannel(); //an audio channel to use to play sounds
addEventListener(MouseEvent.CLICK,handlesongs); // adds the event listener for mouse evens
function handlesongs(e:MouseEvent)
{
    if (e.target.name.indexOf("Song") >= 0) // if the button is a "Song" button
    {
        var songnumber = e.target.name.substr(4); // set the song number based on the button's name
        var getsong = getDefinitionByName("Song" + songnumber.toString()) as Class; // get the class of the song to play
        var songtoplay = new getsong(); // assign a variable to the song's class
        soundchannel.stop(); // stop all current sound
        soundchannel = songtoplay.play(); // play the selected song
    }
}

また、ボタンには「Song1」、「Song2」などの名前を付ける必要があります。

このソリューションは、音楽プレーヤーを作成している場合は理想的ではないかもしれませんが、サウンドが少ない場合は、強力に最適化されているため理想的です。

(注意: 大きなサウンド ファイルを使用すると、.FLA ファイルのサイズが大幅に増加します)

また、注: すべての曲が配列内にあるようにこれを変更するのは非常に簡単で、上記の部分文字列メソッドを使用して特定の配列インデックスで曲を再生します。これが最善の方法かもしれません。

于 2012-09-06T10:35:11.603 に答える
0

SoundMixer から stopAll を使用して、フラッシュ スクリプトからのすべてのサウンドの再生をキャンセルできます。

import flash.media.SoundMixer;
SoundMixer.stopAll();

詳細については、API リファレンスを参照してください。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/SoundMixer.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6

次に、ボタンに関連付けられた曲を再生するだけです。曲の再生については、利用可能なオープンソースの mp3 プレーヤーを利用できます (それが再生したい形式である場合)。.fla ファイルで見つけたものは次の場所にあります。

http://hotpot.uvic.ca/howto/audio.htm (クリック: 開始、次に: 私はプログラマーです。コードを教えてください)

于 2012-09-06T05:25:46.420 に答える