繁体   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