【问题标题】:Flash Player scripting + IE8Flash Player 脚本 + IE8
【发布时间】:2010-06-10 10:03:22
【问题描述】:

我为第三方软件生成的 Flash 查看器开发了一个小型控制栏。它有一个 First、Prev、Next 和 Last 按钮,以及一个 Zoom 命令。

虽然 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。

【问题讨论】:

    标签: javascript flash


    【解决方案1】:

    您可以尝试替换此代码:

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

    有了这个

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

    它不是那么好,但它是另一种选择。 TotalFrames() 应该可以工作。

    【讨论】:

      猜你喜欢
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      相关资源
      最近更新 更多