我有一个SWF,可以收集用户在网站上的反馈。所提出的问题以XML格式提取,使用通过页面中嵌入的flashvars提供的URL。不幸的是,这似乎在我的SWF的最新版本中已经破裂。
以下是我嵌入对象的方法:
<script src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("http://localhost/mysite/q.swf", "flashcontent", "900", "360", "9.0.0", "http://localhost/mysite/expressInstall.swf", { loadurl: escape("http://localhost/mysite/q.php?q=13") }, {}, {});
</script>
</head>
<body>
<div id="flashcontent">
</div>
</body>
我正试图像这样拉出loadurl flashvar:
this.loaderInfo.addEventListener(Event.COMPLETE, function(e:Event) {
init();
});
function init()
{
*snip*
loadurl = unescape((loaderInfo.parameters.loadurl));
}
使用ExternalInterface.call()
在浏览器中调用console.log
输出null,但在之前的版本中(此代码保持不变),它可以正常工作并输出URL。我可以在它们之间切换,看它在前面工作,然后更新到新的,它再次输出null。
这个资产的新版本中唯一的变化是我添加了一个符号和一些代码,以便在加载XML后将其添加到舞台中 - 但这并没有改变获取URL的代码来自页面的HTML。
我正在使用Flash CS5,它是一个ActionScript 3.0项目。
有谁能建议我哪里出错了?我花了很长时间把头发拉过这一头,所以任何帮助都会非常感激。我确实在某处读过这可以通过ExternalInterface完成 - 它会更适合这样的场景吗?如果由于某些原因我不能让它正常工作,它是否可行?
谢谢!
答案 0 :(得分:0)
如果您使用ExternalInterface.call()
来调用console.log
但它现在有效但现在返回null,那么console.log
的位置是否已移动?
答案 1 :(得分:0)
此处的解决方法是最终使用ExternalInterface.call
。不幸的是,我无法弄清楚为什么没有正确传递给SWF的flashvars,尽管有很多关于HTML,SWFObject等的麻烦。