Остановить флэш-видео, когда скрыто

Я знаю, что этот вопрос дважды задавался в стеке... но мне все еще нужна помощь. У меня есть 2 div, каждый из которых содержит объекты SWFObject. Вот jquery, который показывает / скрывает мои Div:

$(document).ready(function(){ 
 $("#DIV2").hide();

  $('#button1').bind('click', function() {
    $("#DIV1").hide();
    $("#DIV2").show();
  });

  $('#button2').bind('click', function() {
    $("#DIV1").show();
    $("#DIV2").hide();
});
});

Но мне нужно, чтобы мое видео в DIV2 перестало играть, когда оно скрыто, и начиналось с самого начала, когда вы снова его показываете. Из того, что я прочитал, мне нужно удалить его из DOM... но я не понимаю, как его добавить. Я видел предложения для detach(); но не могу понять, куда пойдет мой AppendTo().

Может кто-нибудь помочь?? Я действительно ценю это. Кстати, вот соответствующий пост (который содержит ссылку на другой пост).

Заранее спасибо!

2 ответа

Спасибо за вашу помощь, Бен. Прежде чем я увидел ваш последний ответ, я использовал то, что видел в ответе на аналогичный пост, но настроил его так:

 // Remove and re-add video
 var clone = $("#video").clone(true);
 $("#video").remove();
 $("#video-holder").html(clone);

Это отлично сработало для меня. Я дал своему swfobject идентификатор "video", который находился внутри div "video-holder". Надеюсь, что это помогает другим!

Исходя из моего предыдущего опыта, отсоединение элементов DOM, содержащих flash-объект, очень подвержено сбоям браузера, Firefox был особенно уязвим, если я правильно помню.

Вы можете удалить вложенные элементы, выполнив что-то вроде $("#DIV1 OBJECT"). Remove() и добавив его снова с помощью swfobject, когда они вам понадобятся снова.

Или вы могли бы использовать ExternalInterface, чтобы попытаться связаться с вашими Flash-объектами из JavaScript.

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

Другие вопросы по тегам