首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flash中的音乐重叠Actionscript 3

Flash中的音乐重叠Actionscript 3
EN

Stack Overflow用户
提问于 2012-06-05 21:46:59
回答 1查看 1.4K关注 0票数 0

我是AS3的新手,我正在建立一个完整的flash网站,在那里我试图通过播放、暂停和停止按钮来包含背景音乐(播放和暂停是同一个按钮)。问题是当页面加载时,音乐播放器自动播放,当我点击我网站的主页按钮时,音乐再次播放,并与第一次播放的音乐重叠,所以我应该提前do..thanks什么

代码语言:javascript
复制
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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-05 21:58:47

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

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10898514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档