Flash Player脚本+ IE8

时间:2010-06-10 01:30:02

标签: javascript flash

我为第三方软件生成的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。

1 个答案:

答案 0 :(得分:1)

您可以尝试替换此代码:

if (currentFrame < movie.TotalFrames() - 1)

用这个

if (currentFrame < movie.TGetProperty('/', 5) - 1)

它不是很好,但是另一种选择。 TotalFrames()应该有效。