使用jQuery更新flashvars并重新加载flash

我想更新flashvars值参数以查看另一个video:

 

我发现通过更新参数以及读取整个flash内容的额外步骤,我可以在Firefox中使用它。

 $("param[name=flashvars]").attr("value", "movieId=33"); $("embed").attr("flashvars", "movieId=33"); $(".root").append($("#video")); 

但这在IE8中不起作用,因为浏览器不会刷新Flash内容。 有关如何在没有外部依赖性(如swfobject.js)的情况下重新加载Flash内容的任何想法?

您可以使用ExternalInterface AS3类将新值发送到Flash,而不是使用flashvars。

ExternalInterface允许AS3和Javascript之间的双向通信

 // update flashvars var fv = 'foobar=1'; $("object param[name='flashvars']").attr("value", fv); $("embed").attr("flashvars", fv); // create new object to hold it var obj = $("object"); // remove existing Flash from DOM $("object").remove(); // add new HTML to DOM $("#mviewer").append(obj.html()); 

我对此也很好奇。 我正在尝试通过flashvars向SWF发送一个新的字符串,我没有机会改变,只需用jQuery更改flashvars,而不必使用外部接口,是最好的选择。

如果你想更改flash变量并重新加载Flash,你应该从DOM中删除SWF并再次使用你的新变量嵌入它(使用SWFObject或任何其他适合你的方法!)。

如果你想在不重新加载Flash的情况下更改闪存变量,那你就不走运了:没有官方支持的方式。 在这种情况下,您应该使用ExternalInterface来调用从JavaScript更新值的ActionScript方法。

实际上,为什么不使用swfobject.js?

我喜欢这样: