我已经为第三方软件生成的Flash查看器开发了一个小型控制栏。它有一个第一个、Prev、Next & Last按钮和一个Zoom命令。
虽然Zoom在所有浏览器中都能正常工作,但在Internet 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);
}
}...and中的任何一个都处理帧导航:
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。
发布于 2010-06-10 02:03:22
您可以尝试替换以下代码:
if (currentFrame < movie.TotalFrames() - 1)有了这个
if (currentFrame < movie.TGetProperty('/', 5) - 1)这不太好,但这是另一种选择。TotalFrames()应该能工作。
https://stackoverflow.com/questions/3011083
复制相似问题