Я настроил функцию приостановки звука в mp3-плеере всякий раз, когда на странице нажимаются определенные элементы, используя ExternalInterface, но у меня возникла проблема в IE.
Установка такова: у меня есть видео-страница, которая вызывает список видео YouTube, используя RSS. Самое последнее видео отображается на странице в div под названием display. Затем все остальные видео в ленте отображаются в виде миниатюр и ссылок... Если щелкнуть одно из них, то основное «отображаемое» видео заменяется и начинает воспроизводиться. Все это работает нормально.
Я хочу, чтобы mp3-плеер на странице приостанавливал музыку всякий раз, когда запускается видео.
Функция ExternalInterface работает правильно. Всякий раз, когда нажимается одна из ССЫЛОК, mp3-плеер останавливается, начинается видео и т. д.
Проблема в том, что я также хочу, чтобы он останавливался при нажатии на ГЛАВНОЕ видео. Очевидно, поскольку это внешнее видео, загруженное с YouTube, я не могу получить доступ к FLA, чтобы добавить собственный код ExternalAccess.
Я попытался добавить идентификатор к видеообъекту, а затем использовать его в качестве селектора в jQuery для вызова функции stopMovie... нет. Я попытался добавить к нему класс, а затем вызвать функцию stopMovie при нажатии на класс. Я попытался поместить функцию щелчка в div, в который загружается видео ... ничего не работает. Если я удалю основное видео и у меня будет пустой div, затем щелкните div, mp3-плеер остановится... но если я загружу видео в div и щелкну по нему, ничего не произойдет (в IE... он работает в ФФ).
Очевидно, что jQuery не получает сообщение о том, что видео было нажато. Любые предложения или обходные пути?
Сценарий действия:
import flash.external.ExternalInterface;
ExternalInterface.addCallback("stopMovie", pauseSound);
function pauseSound(str:String):void {
if (str == "stop") {
if (my_channel) {
song_position = my_channel.position;
my_channel.stop();
song_paused=true;
}
}
}
Код jQuery:
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
function stopMovie() {
getFlashMovie('audio').stopMovie("stop");
}
//показываю все методы, которые я пробовал//
$('#video_player').live("click", function(){
stopMovie();
});
$('.stopper').live("click", function(){
stopMovie();
});
$('#curVideo').live("click", function(){
stopMovie();
});
$('#display object').live("click", function(){
stopMovie();
});
HTML:
<div id="video_player">
<div id="display">
(some PHP code here to call the feed)
<object id="curVideo" class="stopper" width="410" height="332"><param name="movie" value="<?php echo $videolink; ?>"></param><param name="allowFullScreen" value="true"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="<?php echo $videolink; ?>" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="410" height="332"></embed></object>
</div>
</div>