如何使用Javascript正确地重放任何flash .swf文件

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

本文关键字:任何 flash swf 文件 何使用 Javascript 正确地      更新时间:2023-09-26

我正在尝试使用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 (' moviclip ',0)

逐个倒带

我可以触发与hide和show相同的事件而不实际隐藏和显示元素吗?(如何?)

或者有更好的重放方式吗?

您也可以通过使用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);