本JavaScipt教程將讓你感受到FLASH給您帶來有聲世界的無窮魅力。在開始本教程之前,我先介紹一下本教程涉及到的內容:隱藏嵌入的SWF、 播放流同步的SWF、 從指定的幀上開始流、 停止和播放流、 檢查是否磁道在播放、 檢查是否播放器准備好、 檢查SWF轉載的百分比、驗證SWF是否完全裝載好、檢查播放器的版本號、設置最小的播放器版本號、 清除錯誤信息等等。好吧,開始我們的教程吧。
隱藏嵌入的SWF
FlashSound的JavaScript API往網頁插入一個FlashSound對象,隨同插入還有embedSWF()方法。但是在網頁中我們為什麼不能看到這個對象呢?哦,原來是FlashSound隱藏了這個對象。在Internet浏覽器中,FlashSound是這個對象變得透明,也就是說你看不到這個對象,但實際上它是存在的。而在Netscape浏覽器中,這個對象的顏色被指定為跟網頁相同的顏色,所以你也看不到它。你可以在Netscape浏覽器中通過使用bgcolor屬性來設置對象的顏色。以上兩種方法正是隱藏對象的核心所在。試一試吧,下面我的代碼是實現當鼠標移過對象時播放scale.swf文件,所以我們這樣來創建FlashSound對象:
<SCRIPT>
mySoundObj.bgcolor = "#0000ff";
mySoundObj.embedSWF("scale.swf");
</SCRIPT>
下面的代碼可以讓你在Netscape浏覽器中看到在“Play a Scale”下面有一個小點,它正是我們創建的FlashSound,因為此時它的顏色不是與網頁的背景色相同,看看代碼吧:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<P><A HREF="javascript://"
>
Play a Scale</A>
<SCRIPT>
mySoundObj.bgcolor = "#0000ff";
mySoundObj.embedSWF("scale.swf");
</SCRIPT>
播放流同步的SWF
Flash文件格式支持四種同步的類型:Event(事件)、Start(開始)Stop(停止)和Stream(流)。事件同步允許你同時播放多個磁道的聲音;開始同步可以避免並行的磁道播放;停止同步作用是停止磁道播放;而對於流同步聲音包含了聲音的幀尺寸樣式,它可以反復地天衣無縫地播放。不象其它真實的流聲音格式(比如Real Audio),Flash流文件是在播放的時候裝載到浏覽器中去的。當播放結束的時候,這個流聲音就全部被裝載浏覽器的高度緩沖區中。所以在接下去的播放是來源與浏覽器的告訴緩沖區,而不是來源於網頁。
以下的連接是播放一個流同步,它解釋了FlashSound的JavaScript API,代碼如下:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
mySoundObj.embedSWF("earsonly.swf");
</SCRIPT>
</BODY>
</HTML>
這裡值得注意的是Flash聲音被設置在Flash編輯器中來自動開始播放。
從指定的幀上開始流 FlashSound的JavaScript API支持象CD播放器那樣的隨機訪問磁道中任何幀的能力。所以你可以指定任意的幀好來播放你喜歡的聲音。
如圖1所示的四個連接是連到一個典型的CD播放器控制面板上,第一個連接是回到第一幀開始播放,第二個連接是否從第100幀處開始播放,第三個連接是從第200幀處開始播放,而第四個連接是暫停所有的播放。
(圖1)
詳細的代碼如下:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<A HREF="javascript://"
>
從第1幀開始播放</A>
<A HREF="javascript://"
>
從第1000幀開始播放</A>
<A HREF="javascript://"
>
從第200幀開始播放</A>;
<A HREF="javascript://"