2012-06-14 4 views
0

Я использую этот код для воспроизведения swf с командой onclick для изображения. При первом нажатии я получаю сообщение «flashMovie.Play is not a function». Во втором клике он работает, и каждый раз после этого. Это конфликт с порядком выполнения с другими элементами на странице? Что происходит при первом щелчке, что делает второй щелчок работать правильно? (это работает в IE, но не в firefox)flashMovie.Play не является функцией

Может ли это повлиять на это, возможно, поможет? Любые предложения относительно того, как я могу это попробовать?

<script language="JavaScript"> 
    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); 
     } 
    } 

    function PlayFlashMovie(name) 
    { 
     var flashMovie=getFlashMovieObject(name); 
     flashMovie.Play();  
    } 
</script> 
+0

Попробуйте использовать jQuery для обработки событий и ожидания. – 11684

ответ

1

Если ваш флеш-фильм не загружен до нажатия на кнопку, вы можете столкнуться с этой проблемой. Я не думаю, что какая-то конкретная временная задержка - хорошая идея; было бы лучше выяснить, что именно точно вы ожидаете, а затем реализуете правильный обработчик.

Например, если вы ждали всю страницу для загрузки, прежде чем делать что-то, вместо того, чтобы иметь секундную задержку 1, реализовать document.onload обработчик, например, так:

document.onload = function() { 
    //your code here 
} 

В качестве примечания, вы может рассмотреть использование SWFObject, так как это делает вашу жизнь намного проще в отношении Flash и JavaScript.

+0

Спасибо за ввод. Я использую swfobject, динамическую публикацию. Я думаю, вы абсолютно правы. Как-то мне нужно загрузить все флеш-ролики (у меня около шести на странице). Итак, при первом щелчке, фильм загружается, а затем на втором нажатии он будет воспроизводиться. Я пробовал много разных вещей. Интересно, что он отлично работает в IE. Я заглянул в щелчок, чтобы активировать проблему, но не нашел решения ... и это должно было быть в любом случае IE. –

+0

в настоящее время, при первом нажатии, загрузка фильма, затем на втором нажатии будет воспроизводиться. Мне нужно, чтобы он играл на первом клике. –

Смежные вопросы