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 thestart( )
method with the values foroffset
andloops
. this.start(startOffset, loops); // IfmaxTime
is undefined, then don't do anything else. if ...
Get Actionscript Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.