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()。