Posts Tagged ‘Firefox’

Javascript控制swf播放

星期二, 2月 17th, 2009

有些使用swftools从pdf转换过来的swf,由于里面是一页一桢的,而每桢都有stop指令,因此如果要放在网页里面就需要用javascript增加控制其翻页的按钮。

样例代码:

<script language=’javascript’>

var movieObject = null;
var currentPage = 1;

function thisMovie()        //获取flash对象
{
if (movieObject == null)
{
if (navigator.appName.indexOf(”Microsoft”) != -1)
{
movieObject = window["testmovie"];
}
else
{
movieObject = document.testmovie;
}
}

return movieObject;
}

function next()           //向后翻页
{
if (currentPage < totalframes()) {
currentPage++;
thisMovie().Forward();
showpages();
}
}

function prev()          //向前翻页
{
if (currentPage > 1) {
currentPage–;
thisMovie().Back();
showpages();
}
}

function totalframes()            //获取flash的总桢数
{
if (navigator.appName.indexOf(”Microsoft”) != -1) {
return thisMovie().TotalFrames;
}
else {
return thisMovie().TotalFrames();
}
}

function showpages()           //显示当前页数
{
var t = document.getElementById(”pages”);
t.innerHTML = currentPage + “/” + totalframes();
}

</script>

HTML代码:

<body onload=”showpages();”>
<object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″
codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0″
width=”600″ height=”800″ id=”testmovie”>
<param name=”movie” value=”1.swf”>
<param name=”quality” value=”high”>
<param name=”fullscreen” value=”true”>
<param name=”scale” value=”exactfit”>
<embed src=”1.swf” quality=”high” name=”testmovie”
pluginspage=”http://www.macromedia.com/go/getflashplayer”
type=”application/x-shockwave-flash” width=”600″ height=”800″>
</embed>
</object>
<input type=’button’ value=’Prev Page’ onclick=’prev();’>
<input type=’button’ value=’Next Page’ onclick=’next();’>
<div id=’pages’></div>

</body>

代码本身兼容Firefox和IE的,其中的区别在于,获取影片对象的时候,IE使用的是:windows["moviename"],而FX使用的是document.moviename;而调用movie的属性的时候,IE使用属性名,比如TotalFrames,而FX使用同名的方法TotalFrames()。