用JavaScript实现利用FLASH嵌入网页声音
2008-02-23 07:42:41来源:互联网 阅读 ()
隐藏嵌入的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()方法也只能开始播放被设置为流同步的声音,也不能开始播放被设置为时间同步或者开始同步的声音。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash