O'Reilly logo

Actionscript Cookbook by Joey Lott

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

13.12. Controlling the Panning of a Sound

Problem

You want to control the panning of a sound.

Solution

Use the setPan( ) method of the Sound object that controls the sound.

Discussion

You can use Sound.setPan( ) to programmatically control the panning of a sound between the left and right channels. A value of -100 plays the sound entirely in the left channel, and a value of 100 plays the sound entirely in the right channel. A value of 0 plays the sound equally between the two channels.

// Set the panning of a sound to 100, meaning that the sound is played completely in
// the right channel and not in the left.
mySound_sound.setPan(100);

You can use getPan( ) in conjunction with setPan( ) to set the panning relative to its current value:

// Set the panning of a sound 15% to the left of the previous setting.
mySound_sound.setPan(mySound_sound.getPan(  ) - 15);

You can use setPan( ) over time to create the effect of a sound moving from one side to the other:

#include "Sound.as" mySound_sound = Sound.createNewSound( ); // Attach a sound from the Library. mySound_sound.attachSound("MySoundSymbol"); // Start the playback of the sound. mySound_sound.start( ); // Define a function to call on an interval. function moveLeftToRight ( ) { // Get the current position and the total duration of the sound. var pos = mySound_sound.position; var dur = mySound_sound.duration; // Determine the panning for the current position. At the beginning of the sound, // the panning should be to the left, and at the end ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required