Left, Right sound Channels in Flash

Posted on 2008-06-16
Medium Priority
Last Modified: 2013-11-11
I need an ActionScript that would  trigger sounds from different channels, for example, I want sound1 to be triggered from the Left Channel and sound2 to be triggered from the Right channel.
Question by:mjmusa
  • 3
LVL 43

Expert Comment

ID: 21798297
using the SoundTransform class you can control the channels of the sound.  you will need to setup a SoundTransform instance for every sound you want to play and mix
LVL 43

Expert Comment

ID: 21798306
Here is an example from the Adobe CS3 Reference:
package {
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.*;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.media.SoundTransform;
    import flash.net.URLRequest;
    import flash.utils.Timer;
    public class SoundTransformExample extends Sprite {
        private var url:String = "MySound.mp3";
        private var soundFactory:Sound;
        private var channel:SoundChannel;
        private var positionTimer:Timer;
        public function SoundTransformExample() {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            var request:URLRequest = new URLRequest(url);
            soundFactory = new Sound();
            soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            channel = soundFactory.play();
            stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
        private function ioErrorHandler(event:Event):void {
            trace("ioErrorHandler: " + event);
        private function setPan(pan:Number):void {
            trace("setPan: " + pan.toFixed(2));
            var transform:SoundTransform = channel.soundTransform;
            transform.pan = pan;
            channel.soundTransform = transform;
        private function setVolume(volume:Number):void {
            trace("setVolume: " + volume.toFixed(2));
            var transform:SoundTransform = channel.soundTransform;
            transform.volume = volume;
            channel.soundTransform = transform;
        private function mouseMoveHandler(event:MouseEvent):void {
            var halfStage:uint = Math.floor(stage.stageWidth / 2);
            var xPos:uint = event.stageX;
            var yPos:uint = event.stageY;
            var value:Number;
            var pan:Number;
            if (xPos > halfStage) {
                value = xPos / halfStage;
                pan = value - 1;
            } else if (xPos < halfStage) {
                value = (xPos - halfStage) / halfStage;
                pan = value;
            } else {
                pan = 0;
            if(pan > 1) pan = 0;
            var volume:Number = 1 - (yPos / stage.stageHeight);

Open in new window

LVL 12

Accepted Solution

SamuelRostol earned 1400 total points
ID: 21800608
I've taken the liberty to create a quick-and-dirty example just to show you JUST what's needed to pan a sound. Hopefully you'll get the idea. I've used mostly the same variable-names as tagit to cause as little comfusion as possible.


I've attached both the code, and an example. Just remove the .txt-extension from both files to be able to run them as usual :)

Good luck!

// Have the file "sound.mp3" in same folder as swf
// Load the sound
var url:String = "sound.mp3";
var soundFactory:Sound = new Sound();
var request:URLRequest = new URLRequest(url);
// Play the sound
var channel:SoundChannel = soundFactory.play();
// Pan the sound
var sTransform:SoundTransform = channel.soundTransform;
sTransform.pan = -1; // 1 = left speaker, -1 = right speaker, 0 = both
channel.soundTransform = sTransform;

Open in new window

LVL 43

Expert Comment

ID: 21808534
Great example Samuel :)

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

This article describes a solution to a problem of subloading one movie into another when they have different SWF versions. Sometime back, I was working on an ActionScript project while I came across an interesting fact which I would like to share…
I have found that much of my time doing support ends up being a constant repetition of the same steps to different people.  Early on I stated using web pages with Frequently Asked Questions (FAQs) to alleviate most of the burden.  Sometimes this jus…
The goal of the tutorial is to teach the user how to select the video input device. Make sure you have an input device that in connected and work and recognized by Adobe Flash Media Live Encoder and select it in the “video input” menu.
The goal of the tutorial is to teach the user how to select which audio input to use. Once you have an audio input plugged into the laptop or computer, you will go into the audio input settings and choose which audio input you want to use.
Suggested Courses

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question