当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 用javascript实现利用FLASH嵌入声音

Javascript
我也种棵OO树JXTree[js+css+xml]
新浪中用来显示flash的函数
JXTree对象,读取外部xml文件数据,生成树的函数
用js来格式化字符串示例模仿css
js prototype 格式化数字 By shawl.qiu
新浪刚打开页面出来的全屏广告代码
记录几个javascript有关的小细节
Some tips of wmi scripting in jscript (1)
JavaScript Try...Catch 声明的 使用方法
JS版获取字符串真实长度和取固定长度的字符串函数
Javascript中的数学函数
ArrayList类(增强版)
javascript中巧用“闭包”实现程序的暂停执行功能
javascript判断单选框或复选框是否选中方法集锦
FireFox的getYear的注意事项
JavaScript For...In 使用方法
JavaScript Switch 声明
JavaScript If...Else 声明
JavaScript For 循环
JavaScript While 循环 教程

Javascript 中的 用javascript实现利用FLASH嵌入声音


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 321 ::
收藏到网摘: n/a

    本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>

<