Sound.setTransform()

可用性

Flash Player 5。

用法

my_sound.setTransform(soundTransformObject) 

参数

soundTransformObject 一个用通用 Object 类的构造函数创建的对象。

返回

无。

说明

方法;设置 Sound 对象的声音转换(即,均衡)信息。

soundTransformObject 参数是一个用通用 Object 类的构造函数方法创建的对象,该对象具有指定声音在左右声道(扬声器)间如何分布的参数。

声音占用相当大的磁盘空间和内存。因为立体声声音使用的数据是单声道声音的两倍,通常情况下最好使用 22 KHz 6 位单声道声音。您可以使用 setTransform() 将单声道声音播放为立体声、将立体声声音播放为单声道以及向声音添加有趣的效果。

soundTransformObject 的属性如下:

11 一个百分数值,指定左输入在左扬声器里播放的量 (0-100)。

1r 一个百分数值,指定右输入在左扬声器里播放的量 (0-100)。

rr 一个百分数值,指定右输入在右扬声器里播放的量 (0-100)。

rl 一个百分数值,指定左输入在右扬声器里播放的量 (0-100)。

这些参数的净结果由以下公式表示:

leftOutput = left_input * ll + right_input * lr
rightOutput = right_input * rr + left_input * rl

left_inputright_input 的值由 SWF 文件中的声音类型(立体声或单声道)确定。

立体声声音将声音输入在左右扬声器之间平均分配,且在默认情况下具有下面的转换设置:

ll = 100
lr = 0
rr = 100
rl = 0

单声道声音在左扬声器里播放所有的声音输入,且在默认情况下具有下面的转换设置:

ll = 100
lr = 100
rr = 0
rl = 0

示例

下面的示例说明了这样一个设置,它可以通过使用 setTransform() 实现,但不能通过使用 setVolume()setPan() 实现,即使将后两种方法结合起来使用也无法实现该设置。

下面的代码新建一个 soundTransformObject 对象并设置其属性,以便只在左声道中播放来自两个声道的声音。

mySoundTransformObject = new Object;
mySoundTransformObject.ll = 100;
mySoundTransformObject.lr = 100;
mySoundTransformObject.rr = 0;
mySoundTransformObject.rl = 0;

若要将 soundTransformObject 对象应用到 Sound 对象,则需要使用 setTransform() 将此对象传递给 Sound 对象,如下所示:

my_sound.setTransform(mySoundTransformObject);

下面的示例将立体声声音播放为单声道声音;soundTransformObjectMono 对象具有下列参数:

mySoundTransformObjectMono = new Object;
mySoundTransformObjectMono.ll = 50;
mySoundTransformObjectMono.lr = 50;
mySoundTransformObjectMono.rr = 50;
mySoundTransformObjectMono.rl = 50;
my_sound.setTransform(soundTransformObjectMono);

此示例只播放左声道音量的一半,而将左声道的剩余部分添加到右声道;
soundTransformObjectHalf 对象具有下列参数:

mySoundTransformObjectHalf = new Object;
mySoundTransformObjectHalf.ll = 50;
mySoundTransformObjectHalf.lr = 0;
mySoundTransformObjectHalf.rr = 100;
mySoundTransformObjectHalf.rl = 50;
my_sound.setTransform(soundTransformObjectHalf);

另请参见

Object 类