0

尽管我的阅读量仍然有限,但使用 flash html5 画布的 javascipt / soundJS 语法仍然有限。我想在同一个按钮上使用 mouseover 和 mouseout 事件来暂停和恢复我的声音。我是说:

  • 你悬停按钮:音乐开始。
  • You mouseout:音乐暂停。
  • 您再次悬停它:它从优先暂停的位置恢复。

根据SoundInstance Class doc,您可以使用 myInstance.pause();myInstance.resume();方法来做到这一点。我想“var sound;” 自工作以来表现得像“myInstance” sound.pause();

使用下面的 js 代码,我可以暂停声音并恢复声音,但不能在同一个按钮上,我需要一个 button_2 来做到这一点。

我想我在鼠标悬停功能中缺少一个条件来“检查声音是否暂停,然后恢复它或开始播放。

var sound;
function fl_MouseOverHandler(){  
    sound = playSound("monstres"); 
}  
this.mybutton.addEventListener("mouseover", fl_MouseOverHandler);  


function fl_MouseOutHandler()  { 
    sound.pause();  
} 
this.mybutton.addEventListener("mouseout", fl_MouseOutHandler);  

function fl_MouseOverHandler_2(){  
    sound.resume();
}  
this.mybutton_2.addEventListener("mouseover", fl_MouseOverHandler_2);

欢迎任何提示或链接。谢谢你。

4

2 回答 2

0

像这样的东西呢?

var isPlaying = false;

function togglePlayback(){
    if(isPlaying){
        isPlaying = false;
        sound.pause();
    } else {
        isPlaying = true;
        sound.resume();
    }
}

this.some_button.addEventListener("some_event", togglePlayback );
于 2015-11-21T20:40:49.443 回答
0

你是被派往地球的天使。同时,我在 javascript 上找到了 dome 文档,并设法使用布尔变量以同样的精神编写了我心爱的函数。这是我的代码:

var playing = new Boolean(false);

function fl_MouseOverHandler() {
    if (playing == false) {
        exportRoot.soundInstance = playSound("monstres");
        playing = true;
        exportRoot.soundInstance.on("complete", handleComplete);
        function handleLoop(event) {
            exportRoot.soundInstance = playSound("monstres");
        }
    } else {
        exportRoot.soundInstance.resume();
        }
    }
this.bout_zone_son.addEventListener("mouseover", fl_MouseOverHandler);

function fl_MouseOutHandler() {
    exportRoot.soundInstance.pause();
    }

this.bout_zone_son.addEventListener("mouseout", fl_MouseOutHandler);

我不能使用 if (playing) {....} 语法,因为:

  • 我必须先用我的按钮发出声音,然后检查它是否正在播放以恢复或启动它。
  • 我想如果没有先实例化“sound = playSound("mylinkedsoundfromlibrary"); 或者我的情况 exportRoot.soundInstance = playSound("monstres"); 就无法输入 sound.pause

好吧,无论如何,谢谢你朝正确的方向投篮。

于 2015-11-24T00:42:44.507 回答