0

AS3は初めてですが、再生、一時停止、停止ボタン(再生と一時停止は同じボタンです)を使用してバックグラウンドミュージックを含めることを試みたフルフラッシュWebサイトを構築しています。問題は、ページが読み込まれたときに音楽プレーヤーが自動的に再生され、Webサイトの[ホーム]ボタンをクリックすると、音楽が再び再生され、最初に再生された音楽と重なるため、どうすればよいですか。

stop();

function goHome (e:MouseEvent):void{
gotoAndStop("HOME");
}
home_btn.addEventListener(MouseEvent.CLICK, goHome);

function goAbout (e:MouseEvent):void{
gotoAndStop("COMPANY");
}
company_btn.addEventListener(MouseEvent.CLICK, goAbout);

function goTestimony (e:MouseEvent):void{
gotoAndStop("TESTIMONY");
}
news_btn.addEventListener(MouseEvent.CLICK, goTestimony);

function goProduct (e:MouseEvent):void{
gotoAndStop("PRODUCT");
}
product_btn.addEventListener(MouseEvent.CLICK, goProduct);

function goContact (e:MouseEvent):void{
gotoAndStop("CONTACT");
}
contacts_btn.addEventListener(MouseEvent.CLICK, goContact);

//imports the necessary as events
import flash.events.Event
import flash.events.MouseEvent;

var isPlaying:Boolean = new Boolean();
var pausePosition:Number = new Number();

//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("thousandyears.mp3"));

//Create an event listener that wll update once sound has finished loading
soundClip.addEventListener(Event.COMPLETE, onComplete, false, 0, true);

controller.addEventListener(MouseEvent.MOUSE_DOWN, btnPressController, false, 0, true);
stop_btn.addEventListener(MouseEvent.MOUSE_DOWN, btnPressStop, false, 0, true);

function onComplete(evt:Event):void {
    //Play loaded sound
    sndChannel = soundClip.play();
    isPlaying = true;
}

function btnPressController(evt:MouseEvent):void
{
    switch(isPlaying)
    {
        case true:
            controller.gotoAndStop(2);
            pausePosition = sndChannel.position; 
            sndChannel.stop();
            isPlaying = false;
        break;
        case false:
            controller.gotoAndStop(1);
            sndChannel = soundClip.play(pausePosition);
            isPlaying = true;
        break;
    }
}

function btnPressStop(evt:MouseEvent):void
{
    pausePosition = 0;
    sndChannel.stop();
    controller.gotoAndStop(2);
    isPlaying = false;
}
4

1 に答える 1

0

このコードはフレーム1にありますか?フレーム1には「HOME」というラベルが付いていますか?

その場合、タイムラインの先頭に新しいフレーム(新しいフレーム1)を追加し、その中にコードを移動します。このように、コードは引き続きフレーム1にあり、フレーム「HOME」はフレーム2になります。

コードを少し更新する必要があります。

stop()に置き換えるgotoAndStop('HOME');

于 2012-06-05T13:58:46.817 に答える