2011-01-14 1 views
2

この質問はスタックで2回尋ねられていますが、まだ助けが必要です。私はそれぞれSWFObjectを含む2つのdivを持っています。隠しときにフラッシュビデオを停止する

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

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

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

しかし、私はそれが隠されていたときに再生を停止し、あなたは再びそれを示して最初から開始するDIV2に私のビデオを必要とする:ここに私のdivを隠す/表示さjqueryのです。私が読んだことから、私はDOMからそれを削除する必要があります...しかし、私はそれを再追加する方法を理解していません。私はdetach()の提案を見た。私のAppendTo()がどこに行くのか分からない。

誰でも手伝いできますか?私は本当にそれを感謝します。ところで、related post(これには他の関連記事へのリンクが含まれています)です。

ありがとうございます!

答えて

0

私の以前の経験から、デタッチフラッシュオブジェクトを含むDOM要素は、ブラウザがクラッシュする可能性が非常に高いです。私が正しく覚えていれば、Firefoxは特に脆弱でした。

$( "#DIV1 OBJECT")のようなことをしてサブ要素を削除することができます。もう一度swfobjectを使用してremove()を追加し、再度追加してください。

またはExternalInterfaceを使用して、JavaScriptからFlashオブジェクトとの通信を試みることができます。

あなたは動画をどのように再生するのかは言わないが、あなた自身のカスタムプレーヤーを持っている場合は、フラッシュファイルにインターフェイスを追加する必要があります。そうしないと、使用しているプレーヤーが既存の外部インターフェイスを使用することができます。

+0

ベン - ありがとうございました! .remove()のルートを取りたいと思っていますが、swfobjectを使ってどのように戻すのか分かりません。それが欠けているような鍵です。ありがとうございました! – user576277

+0

var elem = $( "#someId")[0]; elem.reload();私はこれを見つけましたが、後でそれを試すことはできません - これは私が必要とするものですか? – user576277

+0

swfobjectを使用している場合は、swfobjectを再度呼び出すだけで、要素を再挿入する必要があります。swfobject docsを確認してください。http://code.google.com/p/swfobject/ – Ben

5

ご協力ありがとうございます。私はあなたの最も最近の応答を見て前に、私は私がsimilar postへの答えで見られるが、そのようにそれを調整していたものを使用して終了:

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

これは私のために完全に働きました。私は自分のswfobjectにdiv "ビデオホルダー"内に座っていたID "video"を与えました。これが他人を助けることを願っています

+0

もう一度、 。ありがとう! – raidfive

関連する問題