我想更新flashvars值参数以查看另一个视频:
<param name='flashvars' value='movieId=1002' />
我发现通过更新参数以及读取整个Flash内容的额外步骤,我可以在Firefox中使用它。
$("param[name=flashvars]").attr("value", "movieId=33");
$("embed").attr("flashvars", "movieId=33");
$(".root").append($("#video"));
但这在IE8中不起作用,因为浏览器不会刷新Flash内容。关于如何在没有外部依赖性的情况下重新加载flash内容的任何想法,如swfobject.js?
答案 0 :(得分:5)
// 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());
答案 1 :(得分:4)
我也很好奇。我正在尝试通过flashvars将新字符串发送到SWF,我没有机会更改,只需使用jQuery更改flashvars,而不必使用外部接口,是最好的选择。
答案 2 :(得分:3)
如果你想更改闪存变量并重新加载Flash,你应该从DOM中删除SWF并再次使用新变量嵌入它(使用SWFObject或任何其他适合您的方法!)。
如果你想在不重新加载Flash的情况下更改闪存变量,那你就不走运了:没有官方支持的方式。在这种情况下,您应该使用ExternalInterface来调用从JavaScript更新值的ActionScript方法。
答案 3 :(得分:0)
您可以使用ExternalInterface AS3类将新值发送到Flash,而不是使用flashvars。
ExternalInterface允许AS3和EX3之间的双向通信。的Javascript
答案 4 :(得分:0)
实际上,为什么不使用swfobject.js?
我确实喜欢这个:
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/swfobject.js"></script>
<div id="qsound"></div>
<script type="text/javascript">
if(q.sound) {
swfobject.embedSWF("js/dewplayer/dewplayer.swf", "qsound", "60", "20", "9.0.0", false, {'mp3': 'sounds/'+q.sound}, {'wmode': 'transparent'});
$('#qsound').show();
} else {
$('#qsound').hide();
}
</script>