HTML5 flash canva 无法使用 "mouseout" 功能阻止我的声音

HTML5 flash canva can't stop my sound with "mouseout" function

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

问题是,当你用 MouseOut 按钮停止播放声音时,我被 "MouseOut function" 困住了!

最重要的是在鼠标移出时暂停声音,并在鼠标再次悬停时从暂停点开始播放。但我不想显得太贪心;-)

这是我在 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  
}  

使用 flash pro cc 2014。我想我一定是遗漏了某些东西或错误的语法,但在我看来,什么适用于 playSound("xxx") 应该适用于 stopSound("xxx") 。但显然并没有那么简单。欢迎任何线索,我将不胜感激。非常感谢。

奥利维尔

你不能那样停止声音。 stopSound() 是什么?如果您查看导出的 HTML,playSound 是一个使用 ID 播放声音的函数。它应该 return 一个你可以控制的实例。您必须存储该实例,并对其调用 stop()

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

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

您必须将 HTML 中生成的 playSound 方法修改为 return 播放的实例,因为它目前没有:

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

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

[编辑:此修复已包含在 Adob​​e Animate 中]