Reputation: 7
I found on the Adobe forum an answer to some of my questions about coding MouseOver in "flash html5 mycanva.fla" to trigger a sound when hovering a button. see here
The thing is, i'm stuck with the "MouseOut function" when it comes to stop the sound played when you MouseOut the button !
The cherry on top would be to pause the sound on mouseout and playit from the point it was paused when mouseover again. But i don't want to appear too greedy ;-)
Here's the code i used in 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
}
Using flash pro cc 2014. I guess i must be missing something or bad syntaxing but in my mind what does work with playSound("xxx") should work with stopSound("xxx") . But apparently it 's not that simple. Any clue is welcome, I would be grateful. Thanx a lot.
Olivier.
Upvotes: 0
Views: 1112
Reputation: 11294
You can not stop a sound that way. What is stopSound()
? If you look at your exported HTML, the playSound
is a function that plays a sound using an ID. It should return an instance that you can control. You have to store that instance, and call stop()
on it.
var sound;
function fl_MouseOverHandler(){
sound = playSound("monstres");
}
this.mybutton.addEventListener("mouseout", fl_MouseOutHandler);
function fl_MouseOutHandler() {
sound.stop();
}
You will have to modify the generated playSound
method in the HTML to return the instance that is played, since it currently does not:
function playSound(id, loop) {
return createjs.Sound.play(id, createjs.Sound.INTERRUPT_EARLY, 0, 0, loop);
}
This is a good thing to report to Adobe, as it should do that already. I have logged a bug to do that. https://github.com/CreateJS/SoundJS/issues/218
[Edit: This fix was included in Adobe Animate]
Upvotes: 2