2016-08-18 3 views
0

Flash AS3を使用してサウンド用のオン/オフボタンを作成しました。これらは機能しますが、オフボタンとオンボタンを押すたびに、音楽は再び再生されません。ルーピングサウンドas3

私はそれがループの問題だと信じていますが、間違っている可能性がありますか?私はそれがループの問題の場合にどのようなコードを使用するのかよく分かりません。

また、サウンドを自動的に再生する.swfを開いたときと同じように、btnOn関数のコードを追加する必要があります。

var mySound:Sound = new sandstorm(); //(sandstorm is my sound file) 

var myChannel:SoundChannel = new SoundChannel(); 

var lastPosition:Number = 0; 

myChannel = mySound.play(); 

btnOff.addEventListener(MouseEvent.CLICK, onClickPause); 

function onClickPause(e:MouseEvent):void { 

lastPosition = myChannel.position; 

myChannel.stop(); 

} 

乾杯:)

+0

_「...私は音が自動的に再生さ.swfファイルを開くと、」_ので、あなたは、この命令がやっていると思います何を使用しています.play(); '?クリックしたときに何かが起こるように**したい**場合は、その命令をクリック処理機能の中に入れます。 PS:オーディオの一時停止と再開の両方に必要な関数onClickPauseがありますか? –

答えて

0

あなたのコードは唯一のイベントリスナーonClickPauseを(私はthatsのあなたの停止ボタンをthinkt)を示しています。添付

は、以下の私の現在のコードです。ただし、開始/再生ボタンのイベントリスナーはどこですか。再生ボタンで再生機能を再度呼び出す必要があります。素晴らしいチュートリアルです:http://www.republicofcode.com/tutorials/flash/as3sound/

+0

私はそこに試したが、コードが動作していない? – ConfusedDreamweaverUser

+1

完全なコードを投稿できますか?再生/再開ボタンのコードはどこですか? –

0

以下のコードを試してみてください。 `myChannel = mySound:それは、オーディオの一時停止/再開機能のための1つのボタン...

var mySound:Sound = new sandstorm(); //(sandstorm is my sound file) 
var myChannel:SoundChannel = new SoundChannel(); 
var lastPosition:Number = 0; 
var audioState : String = "paused"; //will become either "playing" or "paused" 


myChannel = mySound.play(); //this line starts playback 
audioState = "playing"; //update because you started playback with above line 

btnOff.addEventListener(MouseEvent.CLICK, onPlayPause); 


function onPlayPause(e:MouseEvent):void 
{ 

    if (audioState == "playing") //IF already playing 
    { 
     lastPosition = myChannel.position; //note current "audio time" when pausing 
     myChannel.stop(); //stop playback 
     audioState = "paused"; //update for next time click is used 
    } 
    else if (audioState == "paused") //or ELSE IF was already paused then... 
    { 
     myChannel = mySound.play(lastPosition); //resume playback 
     audioState = "playing"; //update for next time click is used 
    } 

}