本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://"
onmouseover="mySoundObj.TGotoAndPlay('/scale-event', 'start')">
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://"
onmouseover="mySoundObj.TGotoAndPlay('/',1)">
从第1帧开始播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TGotoAndPlay('/',100)">
从第1000帧开始播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TGotoAndPlay('/',200)">
从第200帧开始播放</A>;
<A HREF="javascript://"
onmouseover="mySoundObj.TStopPlay('/')">
暂停</A><
<SCRIPT>
mySoundObj.autostart = false;
mySoundObj.embedSWF("earsonly.swf");
</SCRIPT>
</BODY>
</HTML>
这里我们将autostart(自动开始播放)设置为Flase。这个例子很好地说明了我们怎样利用JavaScript来重载Flash行为。
停止和播放流
FlashSound的JavaScript API支持一个等价于暂停的方法,即TStopPlay()。这个TStopPlay()方法有一个参数,即timeline(时间线)。我们可以使用“/”(反斜线)来指定主时间线。TStopPlay()可以在指定的时间线上停止向前播放,而不会重新播放。值得指出的是,这个TstopPlay()方法只能停止了设置为流同步的声音的播放,而不能设置为时间或者开始同步的声音的播放。
同样,FlashSound的JavaScript API页支持等价于播放的方法,即TPlay()。这个TPlay()方法也有一个参数,也为时间线。类似地,我们可以使用“/”来指定主时间线。TPlay()可以在被TStopPlay()停止播放的帧处的时间线(传递给TPlay()的参数)上开始播放,或者从第一帧开始播放。这个TPlay()方法也只能开始播放被设置为流同步的声音,也不能开始播放被设置为时间同步或者开始同步的声音。
(图2)
如图2所示的三个连接是连到典型的磁带录音机控制面板上。第一个连接是利用TGotoAndPlay()重新播放,第二个连接是利用TStopPlay()来暂停播放,而第三个连接是利用Tplay来继续播放被暂停在某处的声音。详细的代码如下: <HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<A HREF="javascript://" onmouseover="mySoundObj.TGotoAndPlay('/',1)">
重新开始播放</A>
<A HREF="javascript://" onmouseover="mySoundObj.TStopPlay('/')">
暂停播放</A>
<A HREF="javascript://" onmouseover="mySoundObj.TPlay('/')">
继续播放</A>
<SCRIPT>
mySoundObj.autostart = false;
mySoundObj.embedSWF("earsonly.swf");
</SCRIPT>
</BODY>
</HTML>
检查是否磁道在播放 FlashSound的JavaScript API可以让你检查磁道是否在播放,为了做到这点它为了提供了IsPlaying()方法。这个IsPlaying()方法没有任何参数,它只是在有磁道在播放的时候才返回True(真),否则就返回False(假)。所以你可以利用这个方法来创建一些例子,比如你可以在声音磁道没有播放的情况下在另外一个磁道播放声音,这个实现起来是很简单的。
如图3所示的前三个连接是连到典型的磁带录音机控制面板。而右边的连接是检查在时间上是否有磁道在播放。当鼠标移过它的时候,我们就可以获得“是否播放”的答案了。在图3中第二行的连接是播放一个scale音乐,但是它只能在教程音乐没有播放的时候才播放,为了实现这个目的,我们来检查教程音乐的IsPlaying()的值是否为False。这里教程音乐对象为mySoundObj1,而scale音乐对象是mySoundObj2,所以实现以上功能的语句应该为:
if (!mySoundObj1.IsPlaying()) mySoundObj2.TGotoAndPlay('/scale-event', 'start')
好吧,我们可以试一试我们的这几个连接了。首先开始播放我们的教程音乐,在停止该该教程音乐以播放scale音乐,然后在继续教程音乐,这时候你会发觉scale音乐停止了。
(图3)
具体源代码如下:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj1 = new FlashSound();
var mySoundObj2 = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<P><A HREF="javascript://"
onmouseover="mySoundObj1.TGotoAndPlay('/',1)">播放教程音乐</A>
<A HREF="javascript://"
onmouseover="mySoundObj1.TStopPlay('/')">暂停播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj1.TPlay('/')">继续播放</A>
<A HREF="javascript://"
onmouseover="alert(mySoundObj1.IsPlaying('/'))">是否播放</A></P>
<A HREF="javascript://"
onmouseover="if (!mySoundObj1.IsPlaying()) mySoundObj2.TGotoAndPlay('/scale-event', 'start')">播放Scale音乐</A></P>
<SCRIPT>
mySoundObj1.autostart = false;
mySoundObj1.embedSWF("earsonly.swf");
mySoundObj2.embedSWF("scale.swf");
</SCRIPT>
</BODY>
</HTML>
检查是否播放器准备好
FlashSound的JavaScript API的isPlayerReady()方法在浏览器识别到播放器和JavaScrip对象并且SWF至少被装载一个帧上的时候就返回True(真值)。如果不是这样的话就返回False。FlashSound API是在所有其它API方法调用之前执行这个方法,所以你不用担心多次使用它会有什么问题的。但是你在调用一个Flash方法的时候,你必须使用isPlayerReady(),因为Flash方法不是FlashSound的 JaScript API的一部分。
如图4所示的连接是播放一个Flash流磁道,它在FlashSound上播放一段教程音乐。我们可以增加两条语句来实现,第一条,在嵌入教程音乐之前,我们打印出isPlayReady()的数值;第二条,在嵌入教程SWF之后打印出isPlayerReady()的数值。这样我们可以看看这两次的区别,从打印的结果我们可以发现:在嵌入教程音乐之前,isPlayReady()的值是False,而在嵌入教程音乐之后,其值是True。
(图4)
下面是详细的代码:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<P><A HREF="javascript://"
onmouseover="mySoundObj.TGotoAndPlay('/',1)">播放教程音乐</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TStopPlay('/')">暂停播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TPlay('/')">继续播放</A>
<A HREF="javascript://"
onmouseover="alert(mySoundObj.IsPlaying('/'))">是否播放</A></P>
<SCRIPT>
alert("Before Embedding, isPlayerReady() returns " +
mySoundObj.isPlayerReady());
mySoundObj.autostart = false;
mySoundObj.embedSWF("earsonly.swf");
alert("After Embedding, isPlayerReady() returns " +
mySoundObj.isPlayerReady());
</SCRIPT>
</BODY>
</HTML>
检查SWF转载的百分比 FlashSound JavaScript API的PercentLoaded()方法返回SWF装载到浏览器的百分比。这个数值可以是从0到100的任意值。如果你装载一个SWF(当然包括流同步磁道)到网页的时候这个数值都将小于等于100。
点击如图5所示的连接就可以播放一个Flash流磁道,它是一个FlashSound的教程音乐。对于上面的代码语句我们也只需要修改两条语句。第一条,在嵌入教程音乐的之前打印出PercentLoaded()的数值;第二条,在嵌入教程音乐SWF之后打印这个数值。从结果中你可以发现:在嵌入教程音乐之前,PercentLoaded()的数值为0,而在嵌入教程音乐完毕之后,这个数值为100。
(图5)
以下是具体代码:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<P><A HREF="javascript://"
onmouseover="mySoundObj.TGotoAndPlay('/',1)">播放教程音乐</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TStopPlay('/')">暂停播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TPlay('/')">继续播放</A>
<A HREF="javascript://"
onmouseover="alert(mySoundObj.IsPlaying('/'))">是否播放</A></P>
<SCRIPT>
alert("Before Embedding, PercentLoaded() returns " +
mySoundObj.PercentLoaded());
mySoundObj.autostart = false;
mySoundObj.embedSWF("earsonly.swf");
alert("After Embedding, PercentLoaded() returns " +
mySoundObj.PercentLoaded());
</SCRIPT>
</BODY>
</HTML>
验证SWF是否完全装载好
FlashSound JavaScript API的Tloaded方法返回SWF是否已经完全装载到浏览器。这个数值可以为False或者True。当你往网页嵌入你的SWF文件(当然包括流同步磁道)的时候,它返回Fasle值。只能等到装载完毕的时候才返回True值。
点击如图6所示的连接,就将播放一段Flash流磁道,即FlashSound中的教程音乐。当然我们对上面的代码要修改两个地方。第一,在嵌入教程音乐之前打印Tloaded()的数值;第二,在嵌入教程音乐之后打印Tloaded()的数值。此时,从结果中你可以发现:在嵌入教程音乐之前,TLoaded()的数值为False值,而在嵌入教程音乐完毕之后,这个数值为True值。
(图6)
具体修改的代码如下:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<
隐藏嵌入的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://"
onmouseover="mySoundObj.TGotoAndPlay('/scale-event', 'start')">
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://"
onmouseover="mySoundObj.TGotoAndPlay('/',1)">
从第1帧开始播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TGotoAndPlay('/',100)">
从第1000帧开始播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TGotoAndPlay('/',200)">
从第200帧开始播放</A>;
<A HREF="javascript://"
onmouseover="mySoundObj.TStopPlay('/')">
暂停</A><
<SCRIPT>
mySoundObj.autostart = false;
mySoundObj.embedSWF("earsonly.swf");
</SCRIPT>
</BODY>
</HTML>
这里我们将autostart(自动开始播放)设置为Flase。这个例子很好地说明了我们怎样利用JavaScript来重载Flash行为。
停止和播放流
FlashSound的JavaScript API支持一个等价于暂停的方法,即TStopPlay()。这个TStopPlay()方法有一个参数,即timeline(时间线)。我们可以使用“/”(反斜线)来指定主时间线。TStopPlay()可以在指定的时间线上停止向前播放,而不会重新播放。值得指出的是,这个TstopPlay()方法只能停止了设置为流同步的声音的播放,而不能设置为时间或者开始同步的声音的播放。
同样,FlashSound的JavaScript API页支持等价于播放的方法,即TPlay()。这个TPlay()方法也有一个参数,也为时间线。类似地,我们可以使用“/”来指定主时间线。TPlay()可以在被TStopPlay()停止播放的帧处的时间线(传递给TPlay()的参数)上开始播放,或者从第一帧开始播放。这个TPlay()方法也只能开始播放被设置为流同步的声音,也不能开始播放被设置为时间同步或者开始同步的声音。
(图2)
如图2所示的三个连接是连到典型的磁带录音机控制面板上。第一个连接是利用TGotoAndPlay()重新播放,第二个连接是利用TStopPlay()来暂停播放,而第三个连接是利用Tplay来继续播放被暂停在某处的声音。详细的代码如下: <HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<A HREF="javascript://" onmouseover="mySoundObj.TGotoAndPlay('/',1)">
重新开始播放</A>
<A HREF="javascript://" onmouseover="mySoundObj.TStopPlay('/')">
暂停播放</A>
<A HREF="javascript://" onmouseover="mySoundObj.TPlay('/')">
继续播放</A>
<SCRIPT>
mySoundObj.autostart = false;
mySoundObj.embedSWF("earsonly.swf");
</SCRIPT>
</BODY>
</HTML>
检查是否磁道在播放 FlashSound的JavaScript API可以让你检查磁道是否在播放,为了做到这点它为了提供了IsPlaying()方法。这个IsPlaying()方法没有任何参数,它只是在有磁道在播放的时候才返回True(真),否则就返回False(假)。所以你可以利用这个方法来创建一些例子,比如你可以在声音磁道没有播放的情况下在另外一个磁道播放声音,这个实现起来是很简单的。
如图3所示的前三个连接是连到典型的磁带录音机控制面板。而右边的连接是检查在时间上是否有磁道在播放。当鼠标移过它的时候,我们就可以获得“是否播放”的答案了。在图3中第二行的连接是播放一个scale音乐,但是它只能在教程音乐没有播放的时候才播放,为了实现这个目的,我们来检查教程音乐的IsPlaying()的值是否为False。这里教程音乐对象为mySoundObj1,而scale音乐对象是mySoundObj2,所以实现以上功能的语句应该为:
if (!mySoundObj1.IsPlaying()) mySoundObj2.TGotoAndPlay('/scale-event', 'start')
好吧,我们可以试一试我们的这几个连接了。首先开始播放我们的教程音乐,在停止该该教程音乐以播放scale音乐,然后在继续教程音乐,这时候你会发觉scale音乐停止了。
(图3)
具体源代码如下:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj1 = new FlashSound();
var mySoundObj2 = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<P><A HREF="javascript://"
onmouseover="mySoundObj1.TGotoAndPlay('/',1)">播放教程音乐</A>
<A HREF="javascript://"
onmouseover="mySoundObj1.TStopPlay('/')">暂停播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj1.TPlay('/')">继续播放</A>
<A HREF="javascript://"
onmouseover="alert(mySoundObj1.IsPlaying('/'))">是否播放</A></P>
<A HREF="javascript://"
onmouseover="if (!mySoundObj1.IsPlaying()) mySoundObj2.TGotoAndPlay('/scale-event', 'start')">播放Scale音乐</A></P>
<SCRIPT>
mySoundObj1.autostart = false;
mySoundObj1.embedSWF("earsonly.swf");
mySoundObj2.embedSWF("scale.swf");
</SCRIPT>
</BODY>
</HTML>
检查是否播放器准备好
FlashSound的JavaScript API的isPlayerReady()方法在浏览器识别到播放器和JavaScrip对象并且SWF至少被装载一个帧上的时候就返回True(真值)。如果不是这样的话就返回False。FlashSound API是在所有其它API方法调用之前执行这个方法,所以你不用担心多次使用它会有什么问题的。但是你在调用一个Flash方法的时候,你必须使用isPlayerReady(),因为Flash方法不是FlashSound的 JaScript API的一部分。
如图4所示的连接是播放一个Flash流磁道,它在FlashSound上播放一段教程音乐。我们可以增加两条语句来实现,第一条,在嵌入教程音乐之前,我们打印出isPlayReady()的数值;第二条,在嵌入教程SWF之后打印出isPlayerReady()的数值。这样我们可以看看这两次的区别,从打印的结果我们可以发现:在嵌入教程音乐之前,isPlayReady()的值是False,而在嵌入教程音乐之后,其值是True。
(图4)
下面是详细的代码:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<P><A HREF="javascript://"
onmouseover="mySoundObj.TGotoAndPlay('/',1)">播放教程音乐</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TStopPlay('/')">暂停播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TPlay('/')">继续播放</A>
<A HREF="javascript://"
onmouseover="alert(mySoundObj.IsPlaying('/'))">是否播放</A></P>
<SCRIPT>
alert("Before Embedding, isPlayerReady() returns " +
mySoundObj.isPlayerReady());
mySoundObj.autostart = false;
mySoundObj.embedSWF("earsonly.swf");
alert("After Embedding, isPlayerReady() returns " +
mySoundObj.isPlayerReady());
</SCRIPT>
</BODY>
</HTML>
检查SWF转载的百分比 FlashSound JavaScript API的PercentLoaded()方法返回SWF装载到浏览器的百分比。这个数值可以是从0到100的任意值。如果你装载一个SWF(当然包括流同步磁道)到网页的时候这个数值都将小于等于100。
点击如图5所示的连接就可以播放一个Flash流磁道,它是一个FlashSound的教程音乐。对于上面的代码语句我们也只需要修改两条语句。第一条,在嵌入教程音乐的之前打印出PercentLoaded()的数值;第二条,在嵌入教程音乐SWF之后打印这个数值。从结果中你可以发现:在嵌入教程音乐之前,PercentLoaded()的数值为0,而在嵌入教程音乐完毕之后,这个数值为100。
(图5)
以下是具体代码:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<SCRIPT>
var mySoundObj = new FlashSound();
</SCRIPT>
</HEAD>
<BODY>
<P><A HREF="javascript://"
onmouseover="mySoundObj.TGotoAndPlay('/',1)">播放教程音乐</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TStopPlay('/')">暂停播放</A>
<A HREF="javascript://"
onmouseover="mySoundObj.TPlay('/')">继续播放</A>
<A HREF="javascript://"
onmouseover="alert(mySoundObj.IsPlaying('/'))">是否播放</A></P>
<SCRIPT>
alert("Before Embedding, PercentLoaded() returns " +
mySoundObj.PercentLoaded());
mySoundObj.autostart = false;
mySoundObj.embedSWF("earsonly.swf");
alert("After Embedding, PercentLoaded() returns " +
mySoundObj.PercentLoaded());
</SCRIPT>
</BODY>
</HTML>
验证SWF是否完全装载好
FlashSound JavaScript API的Tloaded方法返回SWF是否已经完全装载到浏览器。这个数值可以为False或者True。当你往网页嵌入你的SWF文件(当然包括流同步磁道)的时候,它返回Fasle值。只能等到装载完毕的时候才返回True值。
点击如图6所示的连接,就将播放一段Flash流磁道,即FlashSound中的教程音乐。当然我们对上面的代码要修改两个地方。第一,在嵌入教程音乐之前打印Tloaded()的数值;第二,在嵌入教程音乐之后打印Tloaded()的数值。此时,从结果中你可以发现:在嵌入教程音乐之前,TLoaded()的数值为False值,而在嵌入教程音乐完毕之后,这个数值为True值。
(图6)
具体修改的代码如下:
<HTML>
<HEAD>
<SCRIPT SRC="flashsound.js"></SCRIPT>
<