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

Javascript
jQuery中isFunction方法的BUG修复
将函数的实际参数转换成数组的方法
javascript 删除数组中重复项(uniq)
js 巧妙去除数组中的重复项
javascript下一种表单元素获取方法存在的问题
javascript 三种数组复制方法的性能对比
js 多层叠的TAB选项卡
javascript 自动标记来自搜索结果页的关键字
起点页面传值js,有空研究学习下
javascript 的Document属性和方法集合
JavaScript 使用简略语法创建对象的代码
使用JQuery进行跨域请求
jquery 经典动画菜单效果代码
jquery 常用操作方法
js提示信息jtip封装代码,可以是图片或文章
javascript面向对象的方式实现的弹出层效果代码
jquery中的sortable排序之后的保存状态的解决方法
js或css实现滚动广告的几种方案
使用JavaScript库还是自己写代码?
js 右键菜单,支持不同对象不同菜单(兼容IE、Firefox)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 48 ::
收藏到网摘: 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>

<