13.1. Creating an Object to Control Sound
Problem
You want to control sounds at runtime.
Solution
Create a new movie clip to
serve as the sound’s target
and then pass a reference to that clip to the Sound(
)
constructor function (to create a new
Sound
object). Alternatively, create and invoke
a
custom createNewSound( )
method that handles this process automatically.
Discussion
Sound
objects enable you
to
load sounds,
play sounds, and control the volume and panning of sounds within your
Flash movies. A Sound
object
must
target a movie clip (_root
is also a valid
target). The audio that is controlled must be placed in the movie
clip’s timeline at authoring time or loaded into the
movie clip at runtime using attachSound( )
or
loadSound( )
. In
any case, it is possible for you to
place/load multiple sounds into a single movie clip, but doing so is
discouraged. The reason for this is that a Sound
object controls the audio in the target movie clip as a whole, so it
is not possible to control each of the sounds separately if they are
all in the same movie clip. Therefore, it is better to place/load
each sound into its own movie clip and create a separate
Sound
object to control each one.
When you create a new Sound
object, specify a
target movie clip. To control sounds in the current timeline, specify
the keyword this
as the target.
// Incorrect. This does not work properly. mySound0_sound = new Sound( ); // Correct. This targets the current timeline. mySound1_sound = new Sound(this); ...
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.