聲音 Sound
透過 Sound 物件實體,載入外部 mp3 格式檔並播放,或關閉聲音串流及存取聲音相關資訊,但一個 Sound 物件無法重複載入多個聲音。更複雜的聲音控制,則透過 SoundChannel 物件、 Microphone 物件及處理聲音輸出的 SoundTransform 物件。
Sound 及 SoundChannel 類別與物件 - flash.media 套件
建立 Sound 物件如有傳遞參數 stream (聲音檔位址) ,則會直接載入聲音;如果沒有指定參數,則可透過 load() 方法載入。 SoundChannel 物件可用來控制聲音更多的屬性,但實體不會由 new 指令直接建立,而是透過 Sound 物件呼叫 play() 方法就會建立 SoundChannel 實體,這是簡單的道理,  SoundChannel 物件不可能在 Sound 物件沒有載入聲音前建立。
建構 Sound 物件
 - 建立 Sound 物件實體時就載入聲音
 
 - 
  
var uriAt:URLRequest=new URLRequest(mp3檔位址的字串);var soundA:Sound=new Sound(uriAt);soundA.play();
  
 - 使用 Sound 類別的 load() 方法載入聲音
 
 - 
  
var uriAt:URLRequest=new URLRequest(mp3檔位址的字串);var soundB:Sound=new Sound();soundB.load(uriAt);soundB.play(3000,1); //從 3000 ms 位置開始播放一次
  
 - 由 Sound 類別的 play() 方法建立 SoundChannel 物件實體
 
 - 
  
var soundC:Sound=new Sound(new URLRequest(mp3檔位址的字串));var chA:SoundChannel=soundC.play(); //播放聲音並建立 SoundChannel 物件。
  
 - 建構函式 Sound()
 
 - 
  
- 建立 Sound 物件實體,指定有效的聲音檔位址 (參數 stream) ,即會載入聲音。
 - Sound(stream:URLRequest=null, context:SoundLoaderContext=null)
- stream : mp3 聲音檔的 uri 位址。
 - context : 預先載入 mp3 資料至緩衝區的毫秒數,預設值為 1000 。
 
 
  
Sound 的屬性與方法
 - Sound 繼承 EventDispatcher
 
 - [屬性]
 
 - 
  
   - length
 
   - 
    
- 取得聲音物件的總長度。
 - length:Number [唯讀],單位為 ms 。
 var ln:Number=sd.length //將 sd 聲音物件的總長度指定給 ln 物件。
    
  
  
 - [方法]
 
 - 
  
   - play()
 
   - 
    
- 播放聲音,並會產生 SoundChannel 物件實體。
 - public function play(startTime:Number = 0, loops:int = 0, sndTransform:SoundTransform = null):SoundChannel
- startTime : 播放起始時間點,單位為 ms 。
 - loops : 重複播放的次數。
 - sndTransform : 控制音量或左右聲道平衡的 SoundTransform 物件。
 
     sd.play(5000,1) //  sd 物件從 5 秒的位置開始播放一次。
    
   - load()
 
   - 
    
- 載入參數 stream 取得位址的外部聲音檔。
 - public function load(stream:URLRequest, context:SoundLoaderContext  = null):void
- stream : 由 URLRequest 物件取得的外部聲音檔位址。
 - context : 可定義緩衝時間,或預先檢查跨網域原則檔案的 SoundLoaderContext 物件。
 
     sd.load(uriAt) //  sd 物件載入 uriAt 物件取得的聲音檔。
    
  
  
 - [事件]
 
 - 
  
   - complete
 
   - 
    
- 代表在聲音檔載入完成時的事件。
 - 建議使用 Event.COMPLETE 靜態常數代表。
 
    
   - progress
 
   - 
    
- 代表聲音檔正在進行載入時的事件。
 - 建議使用 ProgressEvent.PROGRESS 靜態常數代表。
 
    
  
  
SoundChannel 的屬性與方法
 - SoundChannel 繼承 EventDispatcher
 
 - [屬性]
 
 - 
  
   - position
 
   - 
    
- 指出聲音目前播放的時間點。可運用 
Event.ENTER_FRAME 事件持續取得。 - position:Number [唯讀],單位為 ms 。
 var p:Number=ch.position //將 ch 物件的目前播放位置指定給 p 物件。
    
   - soundTransform
 
   - 
    
- 由 SoundTransform 物件指出音量控制、左右聲道平衡等屬性。
 - soundTransform:SoundTransform [讀寫]
 ch.soundTransform=tr //將包含聲音屬性的 tr 物件指定給 ch 物件。
    
  
  
 - [方法]
 
 - 
  
   - stop()
 
   - 
    
- 停止播放聲音。
 - public function stop():void
 ch.stop() //停止 ch 物件播放聲音。
    
  
  
 - [事件]
 
 - 
  
   - soundComplete
 
   - 
    
- 代表聲音播放完畢時的事件。
 - 建議使用 Event.SOUND_COMPLETE 靜態常數代表。
 
    
  
  
SoundTransform 類別與物件 - 	flash.media 套件
SoundTransform 物件含有音量及左右聲道平衡的屬性。
建構 SoundTransform 物件
 - 
  
var sdProp:SoundTransform=new SoundTransform(0.9,-0.2);
  
 - 建構函式 SoundTransform()
 
 - public function SoundTransform(vol:Number  = 1, panning:Number  = 0)
- vol : 音量大小,介於 0 (靜音) 到 1 (最大音量) 間的數值。
 - panning : 左右聲道平衡,介於 -1 (左極強) 到 1 (右極強) 間的數值,預設值 0 表示左右強度均等。
 
  
  
SoundTransform 的屬性與方法
 - SoundTransform 繼承 Object
 
 - [屬性]
 
 - 
  
   - volume
 
   - 
    
- 指出音量大小。
 - volume:Number [讀寫],介於 0 (靜音) 到 1 (最大音量) 間的數值。
 tr.volume=0.6 // tr 物件的音量為 0.6
    
   - pan
 
   - 
    
- 指出左右聲道平衡。
 - pan:Number [讀寫],介於 -1 (左極強) 到 1 (右極強) 間的數值, 0 表示左右強度均等。
 tr.pan=0.8 // tr 物件的右聲道較強為 0.8
    
  
  
SoundMixer 類別與物件 - 	flash.media 套件
SoundMixer 物件會控制全域 (所有) 內嵌及串流聲音,包含聲音控制的靜態屬性和方法。
SoundMixer 的屬性與方法
 - SoundMixer 繼承 Object
 
 - [屬性]
 
 - 
  
   - soundTransform
 
   - 
    
- 由 SoundTransform 物件指出音量控制、左右聲道平衡等屬性。
 - soundTransform:SoundTransform [讀寫]
 SoundMixer.soundTransform=tr //將包含聲音屬性的 tr 物件指定給所有聲音物件。
    
  
  
 - [方法]
 
 - 
  
   - stopAll()
 
   - 
    
- 停止目前正在播放的所有聲音。
 - public static function stopAll():void
 SoundMixer.stopAll() //停止所有聲音
    
  
  
由元件庫內嵌聲音資源建構 Sound 物件
- 匯入聲音至元件庫。
 - 在元件庫更改聲音資源屬性: [連結] 區,勾選 [匯出給 ActionScript 使用],預設同時會勾選 [匯出在第一個影格] 。
 - [基底類別] 輸入項會自動出現預設的 flash.media.Sound , [類別] 輸入項自行定義類別名稱 (假設是 SampleSound) 。如果不需要擴充類別,按確定就行了;會出現警告「類別路徑中找不到這個類別的定義,將在匯出時自動產生至 SWF 檔」,忽略就可以了,接著 flash 會自動產生 [基底類別] 的擴充空類別。
 
 - 在第一個影格加入 ActionScript
 
 var sd:SampleSound=new SampleSound(); //產生 SampleSound的 instancesd.play();