代码之家  ›  专栏  ›  技术社区  ›  Joel A. Villarreal Bertoldi

Flash播放器脚本+IE8

  •  0
  • Joel A. Villarreal Bertoldi  · 技术社区  · 14 年前

    我为第三方软件生成的Flash浏览器开发了一个小控制栏。它有一个first、prev、next&last按钮和一个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];
    }
    

    顺便说一句,那是moooltools,不是jquery。

    不管怎样. movie.TotalFrames() 打电话。我能做些什么来解决这个问题?记住我 需要 这要通过javascript完成,因为我不能编辑SWF。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Samuel Neff    14 年前

    您可以尝试替换此代码:

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

    用这个

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

    不是很好,但这是另一种选择。 TotalFrames() 应该工作。