13.6. Setting In and Out Points
Problem
You want to play a sound with start and stop (in and out) points other than the beginning or end of the sound.
Solution
Create and invoke a
custom play( ) method.
Discussion
The start( ) method plays and optionally loops a
sound with a configurable starting offset. You can define a custom
method that also allows you to stop the sound after an elapsed period
of time. We can achieve this by using an empty movie clip to poll the
sound’s elapsed time and telling Flash to stop the
sound when the maximum time is exceeded.
Our custom play( ) method works with
Sound objects created using the custom
createNewSound( ) method from Recipe 13.1. If you
don’t want to use the createNewSound(
) method, you must create an empty movie clip and store a
reference to that movie clip in a property named
mc within the Sound object
(createNewSound( ) does this automatically).
Here is our custom play( ) method, which accepts
up to three parameters: the starting offset (in seconds), the number
of loops, and the maximum playing time (in milliseconds).
We’ll also define another method that allows us to
add a callback function that is invoked when the sound stops. Make
sure you add these methods to your Sound.as file
for easy inclusion in other projects.
Sound.prototype.play = function (startOffset, loops, maxTime) {
// Call the start( ) method with the values for offset and loops.
this.start(startOffset, loops);
// If maxTime is undefined, then don't do anything else. if ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access