套件 | flash.media |
類別 | public final class SoundTransform |
繼承 | SoundTransform Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
相關 API 元素
flash.display.SimpleButton.soundTransform
flash.display.Sprite.soundTransform
flash.media.Microphone.soundTransform
flash.media.SoundChannel.soundTransform
flash.media.SoundMixer.soundTransform
flash.net.NetStream.soundTransform
flash.display.Sprite.soundTransform
flash.media.Microphone.soundTransform
flash.media.SoundChannel.soundTransform
flash.media.SoundMixer.soundTransform
flash.net.NetStream.soundTransform
公用屬性
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
leftToLeft : Number
介於 0 (無) 和 1 (全部) 之間的值,指定要在左邊喇叭中播放左邊輸入的量。 | SoundTransform | ||
leftToRight : Number
介於 0 (無) 和 1 (全部) 之間的值,指定要在右邊喇叭中播放左邊輸入的量。 | SoundTransform | ||
pan : Number
聲音的左至右相位,範圍介於 -1 (完全左平衡) 到 1 (完全右平衡) 之間。 | SoundTransform | ||
rightToLeft : Number
介於 0 (無) 和 1 (全部) 之間的值,指定要在左邊喇叭中播放右邊輸入的量。 | SoundTransform | ||
rightToRight : Number
介於 0 (無) 和 1 (全部) 之間的值,指定要在右邊喇叭中播放右邊輸入的量。 | SoundTransform | ||
volume : Number
音量,範圍介於 0 (靜音) 到 1 (最大音量) 之間。 | SoundTransform |
公用方法
方法 | 定義自 | ||
---|---|---|---|
會建立 SoundTransform 物件。 | SoundTransform | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object |
屬性詳細資訊
leftToLeft | 屬性 |
leftToRight | 屬性 |
pan | 屬性 |
rightToLeft | 屬性 |
rightToRight | 屬性 |
volume | 屬性 |
建構函式詳細資料
SoundTransform | () | 建構函式 |
public function SoundTransform(vol:Number = 1, panning:Number = 0)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會建立 SoundTransform 物件。
參數vol:Number (default = 1 ) — 音量,範圍介於 0 (靜音) 到 1 (最大音量) 之間。
| |
panning:Number (default = 0 ) — 聲音的左至右相位,範圍介於 -1 (完全左平衡) 到 1 (完全右平衡) 之間。 值為 0 則表示沒有左右相位 (置中)。
|
範例 ( 如何使用本範例 )
在下列範例中,聲音只從右聲道播放,而且音量設定為 50%。
建構函式中會載入聲音,並將它指定給聲道 (channel
)。另外,也會建立 SoundTranform 物件 (transform
)。 它的第一個引數將音量設定為 50% (範圍是 0.0 到 1.0)。 它的第二個引數則設定左右相位。在這個範例中,左右相位設定為 1.0,表示聲音只會從右喇叭傳出來。為了使這些設定生效,必須將 transform
SoundTranform 物件指定給聲道的 souundTransform
屬性。
注意:這個範例只有有限的錯誤處理功能。
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
下列範例會載入並播放 MP3 檔。 當播放 MP3 檔案時,移動滑鼠或是其他使用者輸入裝置;當您在 Stage 上方移動使用者輸入裝置時,音量與平衡會隨之變更。若要執行此範例,請將名為 MySound.mp3 的檔案與 SWF 檔放置於相同的目錄中。
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); } } }
Tue Jun 12 2018, 03:47 PM Z