【问题标题】:How to correctly replay any flash .swf file using Javascript?如何使用 Javascript 正确重播任何 flash .swf 文件?
【发布时间】:2014-06-03 15:51:43
【问题描述】:

我正在尝试使用 javascript 重播 .swf 闪存文件。目前我知道这样做的两种方法:

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) 单独倒带它们

我可以在不实际隐藏和显示元素的情况下触发隐藏和显示的相同事件吗? (如何?)

或者有没有更好的回放方式?

【问题讨论】:

    标签: javascript flash swfobject


    【解决方案1】:

    你也可以通过使用 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/

    【讨论】:

      【解决方案2】:

      我还找到了另一种方法,即删除并重新插入<param> 标记之一。 这样我就不需要重新创建对象了:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-06
        • 2017-06-04
        • 2013-04-24
        • 1970-01-01
        • 1970-01-01
        • 2013-08-26
        相关资源
        最近更新 更多