簡體   English   中英

如何使用Javascript正確重播任何Flash .swf文件?

[英]How to correctly replay any flash .swf file using Javascript?

我正在嘗試使用javascript重播.swf Flash文件。目前,我知道有兩種方法可以執行此操作:

1)隱藏元素並再次顯示

2)選擇swfobject的DOM元素,然后調用.Rewind()和.Play()

http://jsfiddle.net/me2loveit2/4qth8/

//method one
    $('#objectID').hide();
    setTimeout(function(){
        $('#objectID').show();
    },10)
//Method 2
    document.getElementById('objectID').Rewind();
    document.getElementById('objectID').Play();

隱藏和顯示的問題在於它有時會在屏幕上閃爍並且在視覺上不吸引人。 .Rewind()或.GotoFrame(0)和.Play()的問題在於,它僅倒退主時間軸。(請注意,僅第二個綠色塊會重置並設置動畫)

我通常無法控制或更改Flash中的任何內容,因此,我試圖找到一種不涉及編輯Flash文件的解決方案。

有沒有一種方法可以使用Javascript獲取swf中所有電影剪輯的名稱? 然后,我可以使用.TGotoFrame('movieclip',0)分別倒帶

是否可以觸發隱藏和顯示相同的事件,而無需實際隱藏和顯示元素? (怎么樣?)

還是有更好的重播方法?

您還可以通過使用swfobject重寫swf標簽來重新啟動它,而不會產生10ms的延遲:

$(document).on('click','#replay3',function(){
    swfobject.embedSWF("http://philipp.werminghausen.us/testing/test.swf", 'replace', 275, 200, "9", null, {}, params, {}, function (res) {});

});

例:

http://jsfiddle.net/5jqW4/

我找到了另一種方法,也可以通過刪除並重新插入<param>標簽之一來實現。 這樣,我不需要重新創建對象:

http://jsfiddle.net/me2loveit2/5jqW4/10/

var param = $('#swf_movie').children().first().detach();
$('#swf_movie').append(param);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM