2011-01-14 11 views
2

Ich weiß, diese Frage wurde zweimal auf Stack gefragt .... aber ich brauche noch Hilfe. Ich habe 2 Divs, die jeweils SWFObjects enthalten. Hier ist die jquery, das zeigt/versteckt meine Divs:Stopp Flash-Video, wenn versteckt

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

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

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

Aber ich brauche mein Video in DIV2 die Wiedergabe zu stoppen, wenn es versteckt und von vorne beginnen, wenn Sie es noch einmal zeigen. Von dem, was ich gelesen habe, muss ich es aus dem DOM entfernen ... aber ich verstehe nicht, wie man es wieder hinzufügt. Ich habe Vorschläge für detach() gesehen; aber kann nicht herausfinden, wohin mein AppendTo() gehen würde.

Kann mir jemand helfen ?? Ich würde es wirklich schätzen. BTW, hier ist eine related post (die einen Link zu einem anderen verwandten Post enthält).

Vielen Dank im Voraus!

Antwort

0

Von meiner vorherigen Erfahrung, lösen DOM Elemente, die Flash-Objekt enthalten ist sehr anfällig für den Absturz des Browsers, Firefox war besonders anfällig, wenn ich mich richtig erinnere.

Sie könnten die Unterelemente entfernen, indem Sie etwas wie $ ("# DIV1 OBJECT"). Remove() ausführen und dann erneut mit swfobject hinzufügen, wenn Sie sie erneut benötigen.

Oder Sie könnten ExternalInterface verwenden, um zu versuchen, mit Ihren Flash-Objekten von Javascript zu kommunizieren.

Sie sagen nicht, wie Sie die Videos abspielen, aber wenn Sie einen eigenen Player haben, müssen Sie Ihrer Flash-Datei einige Schnittstellen hinzufügen, ansonsten könnte der Player, den Sie verwenden, vorhanden sein einige vorhandene externe Schnittstellen, die Sie dafür verwenden können.

+0

Ben - vielen Dank für Ihre Antwort! Ich möchte (und habe versucht) die .remove() Route zu nehmen, aber ich verstehe nicht, wie ich es mit swfobject zurückstellen würde - könntest du das näher erläutern? Das ist der Schlüssel, den ich vermisse. Vielen Dank! – user576277

+0

var elem = $ ("# someId") [0]; elem.reload(); Ich habe das gefunden - kann es aber erst später ausprobieren - brauche ich das? – user576277

+0

Wenn Sie swfobject verwenden, müssen Sie lediglich swfobject erneut aufrufen, um das Element erneut einzufügen. Überprüfen Sie die swfobject-Dokumentation http://code.google.com/p/swfobject/ – Ben

5

Danke für Ihre Hilfe Ben. Bevor ich Ihre letzte Antwort sah, landete ich mit, was ich in einer Antwort auf eine similar post aber es eingestellt gesehen hatte wie so:

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

Das perfekt für mich gearbeitet. Ich habe meinem swfobject eine ID "video" gegeben, die im div "video-holder" lag. Hoffe das hilft anderen!

+0

Noch einmal, diese Lösung hat mich gerettet . Danke dafür! – raidfive