HTML5 flash canva可以通过" mouseout"来停止我的声音。功能

时间:2015-11-16 04:31:23

标签: javascript html5 flash createjs flashcanvas

我在Adobe论坛上找到了一些关于在" flash html5 mycanva.fla"中编写MouseOver的问题的答案。在悬停按钮时触发声音。 see here

问题是,我坚持使用" MouseOut功能"当鼠标按下按钮时停止播放的声音!

顶部的樱桃将暂停鼠标输出上的声音,并从再次鼠标悬停时暂停播放。但我不想显得太贪心; - )

这是我在my_flash_canva.fla中使用的代码:

var frequency = 3;  
stage.enableMouseOver(frequency);  
this.mybutton.addEventListener("mouseover", fl_MouseOverHandler);  

function fl_MouseOverHandler(){  
    playSound("monstres");  
    //linked sound from library by dble clicking on it and named a link in the blank area.Indeed, the action script panel in "mysound" properties panel is greyed..  
    //works like a charm   
}  

this.mybutton.addEventListener("mouseout", fl_MouseOutHandler);  
function fl_MouseOutHandler()  {  
    stopSound("monstres");  
    // doesn't work  
}  

使用闪光灯亲CC 2014年我想我一定是失去了一些东西还是坏syntaxing,但在我心中是什么与playSound工作(" XXX")应与stopSound(&#34工作; XXX&#34 ;)。但显然它并不那么简单。欢迎任何线索,我将不胜感激。 Thanx很多。

奥利弗。

1 个答案:

答案 0 :(得分:1)

你无法以这种方式停止声音。什么是stopSound()?如果您查看导出的HTML,playSound是一个使用ID播放声音的函数。它应该返回一个你可以控制的实例。您必须存储该实例,并在其上调用stop()

var sound;
function fl_MouseOverHandler(){  
    sound = playSound("monstres"); 
}  

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

您必须修改HTML中生成的playSound方法以返回播放的实例,因为它当前不会:

function playSound(id, loop) {
    return createjs.Sound.play(id, createjs.Sound.INTERRUPT_EARLY, 0, 0, loop);
}

向Adobe报告是件好事,因为它应该已经这样做了。我已经记录了一个bug来做到这一点。 https://github.com/CreateJS/SoundJS/issues/218

[编辑:此修补程序包含在Adobe Animate中]