Flash Music – Distress Call
Posted: October 8, 2009 Filed under: Discover, Dissect | Tags: ActionScript, Actionscript 3, Adobe Flash, Adobe Flash Player, Code, Flash, Flash CS4, Multimedia, music, Music and Audio, Programming Leave a comment »Yo, it’s so uncool that the first tale should be qualms on ground. Ok, that aside, I need help with music players in Flash. If you have any ideas, please feel free to leave a comment.
Problem: I want to stop the music that is playing when the playhead leaves the frame which the music player is loaded. Please help.
I have a music player MovieClip that I made. Some specific frames on some specific layers these music players. The scripting for the music player is embedded in it (i.e. if you should double-click the MovieClip, you will see an actions layer; that’s where all the coding for the player is). It plays (current, previous and next songs), pauses and stops flawlessly. It even loops! But the problem comes when I navigate out of that frame. The music continues playing! If I should return to that frame, the music player starts a new channel and plays; playing two songs at once (or the same songs) — like having two really bad singers singing without synchronization.
Another piece of information you may need is that, some frames on different timelines have different scripting; depending on the content that’s meant to be on that frame.
Trials: My attempts to solve the problem.
1. In the music player, (assuming it is loaded on frame 45)
parent.addEventListener(Event.EXIT_FRAME, onExitFrame)
function onExitFrame(e:Event):void {
mySoundChannel.stop() // stop the music player when the playhead of the main timeline leaves the frame where the MovieClip is loaded
}
This didn’t work because the frame, on the “actions” layer where I stop the main SWF movie occurs after the frame where I have the music player loaded — silly me. What happens is: the music player loads but doesn’t play anything because the playhead has left the frame where the music player is loaded.
2. I moved the frame on which the movie clip is loaded (on its timeline) to match the frame of actions (which stops the movie). I still get the same result as {1.}. I put a trace statement in it, it shows that the playhead constantly tries to EXIT_FRAME but is somehow stopped because of the stop() command I have; thereby always triggering the onExitFrame function. This happens irrespective of the order of timelines
3. I tried having a SoundMixer in the navigate function and using it to stop all sounds each time I change sections.
function navigaeThroughSections(e:MouseEvent):void {
. . .
var soundJanitor:SoundMixer = new SoundMixer();
soundJanitor.stopAll(); // to stop all playing sounds
}
But this returns with a compile-time error: 1061: Call to a possibly undefined method stopAll through a reference with static type flash.media:SoundMixer. What are the causes of this error?
Please if you can help in any way or if you have any ideas on how to fix this, hola at your boy.
