Сценарии Flash Player + IE8 - PullRequest
0 голосов
/ 10 июня 2010

Я разработал небольшую панель управления для средства просмотра Flash, созданного сторонним программным обеспечением.Он имеет кнопки «Первый», «Предыдущий», «Следующий» и «Последний», а также команду «Масштаб».

Хотя «Масштаб» отлично работает во всех браузерах, кнопки навигации в 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 Ответ

1 голос
/ 10 июня 2010

Вы можете попробовать заменить этот код:

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

с этим

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

Это не так приятно, но это другой вариант. TotalFrames() должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...