【问题标题】:Music overlapping in Flash Actionscript 3Flash Actionscript 3 中的音乐重叠
【发布时间】:2012-06-05 13:46:58
【问题描述】:

我是 AS3 的新手,我正在构建一个完整的 flash 网站,我尝试在其中包含背景音乐和播放、暂停和停止按钮(播放和暂停是同一个按钮)。问题是音乐播放器在页面加载时自动播放,当我点击我网站的 HOME 按钮时,音乐再次播放并与首先播放的音乐重叠,所以我该怎么办..提前谢谢

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;
}

【问题讨论】:

    标签: actionscript-3 flash flash-cs5


    【解决方案1】:

    此代码在第 1 帧中吗? 第 1 帧是否标记为“HOME”?

    如果是这样,我会在时间线的开头添加一个新帧(新帧 1)并将代码移入其中。这样,代码仍然在第 1 帧中,“HOME”帧将在第 2 帧中,依此类推。

    您需要稍微更新您的代码:

    stop() 替换为gotoAndStop('HOME');

    【讨论】:

    • 在actionscript的第2帧,第1帧用于加载脚本。我尝试将代码移动到第一帧,它可以工作,音乐没有重叠,但问题是我无法使用播放/停止按钮,因为播放/停止按钮从第 2 帧开始。
    • 嗨,它现在可以工作了。我已将脚本移动到第一帧并将按钮框架扩展到第一帧。感谢您的帮助
    • 如果它对你有用,那么请你接受答案吗?
    猜你喜欢
    • 1970-01-01
    • 2017-07-02
    • 2013-03-03
    • 2016-01-04
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多