我为第三方软件生成的Flash查看器开发了一个小控制栏。它有First,Prev,Next&最后一个按钮和一个缩放命令。
虽然Zoom在所有浏览器中都能正常工作,但导航按钮似乎在Internet Explorer 8中失败。
我使用至少两个功能。这个找到我想要操作的Flash对象:
function getFlashMovieObject(movieName)
{
if (window.document[movieName])
{
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet")==-1)
{
if (document.embeds && document.embeds[movieName])
return document.embeds[movieName];
}
else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
{
return document.getElementById(movieName);
}
}
...其中任何一个都处理帧导航:
var currentFrame = 0;
function gotoFirst(id)
{
getFlashMovieObject(id + "Blueprints").Rewind();
currentFrame = 0;
$("currentFrame").innerHTML = currentFrame + 1;
$("frameTitle").innerHTML = frameTitles[id][currentFrame];
}
function gotoPrev(id)
{
var movie = getFlashMovieObject(id + "Blueprints");
if (currentFrame > 0)
{
currentFrame--;
}
movie.GotoFrame(currentFrame);
$("currentFrame").innerHTML = currentFrame + 1;
$("frameTitle").innerHTML = frameTitles[id][currentFrame];
}
function gotoNext(id)
{
var movie = getFlashMovieObject(id + "Blueprints");
if (currentFrame < movie.TotalFrames() - 1)
{
currentFrame++;
}
movie.GotoFrame(currentFrame);
$("currentFrame").innerHTML = currentFrame + 1;
$("frameTitle").innerHTML = frameTitles[id][currentFrame];
}
function gotoLast(id)
{
var movie = getFlashMovieObject(id + "Blueprints");
currentFrame = movie.TotalFrames() - 1;
movie.GotoFrame(currentFrame);
$("currentFrame").innerHTML = currentFrame + 1;
$("frameTitle").innerHTML = frameTitles[id][currentFrame];
}
不过,那个$是MooTools,而不是jQuery。
无论如何,IE在movie.TotalFrames()
电话中死亡。我该怎么做才能解决这个问题?请记住,需要这是通过JavaScript完成的,因为我无法编辑SWF。
答案 0 :(得分:1)
您可以尝试替换此代码:
if (currentFrame < movie.TotalFrames() - 1)
用这个
if (currentFrame < movie.TGetProperty('/', 5) - 1)
它不是很好,但是另一种选择。 TotalFrames()
应该有效。