Adobe® Flex® 4 Language Reference
Hide Packages and Classes List |  Packages  |  Classes  |  Index  |  Appendixes
flash.media 
SoundTransform 
Packageflash.media
Classpublic final class SoundTransform
InheritanceSoundTransform Inheritance Object

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0 Flash Player 9

The SoundTransform class contains properties for volume and panning.

View the examples

See also



Public Properties
 PropertyDefined By
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  leftToLeft : Number
A value, from 0 (none) to 1 (all), specifying how much of the left input is played in the left speaker.
SoundTransform
  leftToRight : Number
A value, from 0 (none) to 1 (all), specifying how much of the left input is played in the right speaker.
SoundTransform
  pan : Number
The left-to-right panning of the sound, ranging from -1 (full pan left) to 1 (full pan right).
SoundTransform
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
  rightToLeft : Number
A value, from 0 (none) to 1 (all), specifying how much of the right input is played in the left speaker.
SoundTransform
  rightToRight : Number
A value, from 0 (none) to 1 (all), specifying how much of the right input is played in the right speaker.
SoundTransform
  volume : Number
The volume, ranging from 0 (silent) to 1 (full volume).
SoundTransform
Public Methods
 MethodDefined By
  
SoundTransform(vol:Number = 1, panning:Number = 0)
Creates a SoundTransform object.
SoundTransform
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
Property Detail

leftToLeft

property
leftToLeft:Number

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0 Flash Player 9

A value, from 0 (none) to 1 (all), specifying how much of the left input is played in the left speaker.



Implementation
    public function get leftToLeft():Number
    public function set leftToLeft(value:Number):void

leftToRight

property 
leftToRight:Number

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0 Flash Player 9

A value, from 0 (none) to 1 (all), specifying how much of the left input is played in the right speaker.



Implementation
    public function get leftToRight():Number
    public function set leftToRight(value:Number):void

pan

property 
pan:Number

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0 Flash Player 9

The left-to-right panning of the sound, ranging from -1 (full pan left) to 1 (full pan right). A value of 0 represents no panning (balanced center between right and left).



Implementation
    public function get pan():Number
    public function set pan(value:Number):void

rightToLeft

property 
rightToLeft:Number

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0 Flash Player 9

A value, from 0 (none) to 1 (all), specifying how much of the right input is played in the left speaker.



Implementation
    public function get rightToLeft():Number
    public function set rightToLeft(value:Number):void

rightToRight

property 
rightToRight:Number

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0 Flash Player 9

A value, from 0 (none) to 1 (all), specifying how much of the right input is played in the right speaker.



Implementation
    public function get rightToRight():Number
    public function set rightToRight(value:Number):void

volume

property 
volume:Number

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0 Flash Player 9

The volume, ranging from 0 (silent) to 1 (full volume).



Implementation
    public function get volume():Number
    public function set volume(value:Number):void
Constructor Detail

SoundTransform

()Constructor
public function SoundTransform(vol:Number = 1, panning:Number = 0)

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0 Flash Player 9

Creates a SoundTransform object.

Parameters
vol:Number (default = 1) — The volume, ranging from 0 (silent) to 1 (full volume).
 
panning:Number (default = 0) — The left-to-right panning of the sound, ranging from -1 (full pan left) to 1 (full pan right). A value of 0 represents no panning (center).

Example  ( How to use this example )

In the following example, the sound plays only from the right channel, and the volume is set to 50 percent.

In the constructor, the sound is loaded and is assigned to a sound channel (channel). A SoundTranform object (transform) is also created. Its first argument sets the volume at 50 percent (the range is 0.0 to 1.0). Its second argument sets the panning. In this example, panning is set to 1.0, which means the sound comes from the right speaker only. In order for these settings to take effect, the transform SoundTranform object is assigned to the sound channel's souundTransform property.

Note: There is limited error handling written for this example.

package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.media.SoundTransform;
    import flash.events.IOErrorEvent;

    public class SoundTransform_constructorExample extends Sprite
    {
        public function SoundTransform_constructorExample() {
            var mySound:Sound = new Sound();
            var url:URLRequest = new URLRequest("mySound.mp3");
            var channel:SoundChannel;
            var transform:SoundTransform = new SoundTransform(0.5, 1.0);

            mySound.load(url);    
            channel = mySound.play();
            channel.soundTransform = transform;

            mySound.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
        }

        private function errorHandler(errorEvent:IOErrorEvent):void {
            trace("The sound could not be loaded: " + errorEvent.text);
        }
    }
}
SoundTransformExample.as

The following example loads and plays an MP3 file. As the MP3 file plays, move the mouse; the volume and panning change as you move the mouse over the Stage. To run this example, place a file named MySound.mp3 in the same directory as your SWF file.
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);
            soundFactory.load(request);
            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;
            }

            var volume:Number = 1 - (yPos / stage.stageHeight);

            setVolume(volume);
            setPan(pan);
            
        }
    }
}