我正在开发一个测验系统。通常每个问题都使用 jpeg 图像。但有一些测验以动画 .SWF 文件为特色。我想在用户单击答案后使用 jquery swfobject 调用 play() 方法。
我的解决方案在本地运行良好,但是当我尝试在线运行它时,它会抛出“在 NPObject 上调用方法时出错!”消息。
测验 HTML 位于 www.somedomain.com,SWF 位于 images.somedomain.com。所以,我猜这是一个跨域的事情。
对我来说,问题是,我对 Flash 一无所知...如何编辑 SWF 文件,对 Flash 属性等一无所知。
这是我的代码示例:
<div class="photos">
<object data="http://images.somedomain.com/q1tattooquiz.swf" type="application/x-shockwave-flash" width="600" height="350">
<param name="movie" value="http://images.somedomain.com/q1tattooquiz.swf">
<param name="wmode" value="opaque">
</object>
</div>
还有 JavaScript:
if (hasFlash) {
$('#question'+quesNum+' .photos').flash(function() { this.Play(); } );
}
这非常简单,正如我所说,它在我的电脑上运行良好。但是一旦上传就出错了。
我可以在 javascript 中添加什么以使这些文件正常工作?
最佳答案
柯克曼14,
除了allowScriptAccess 之外,请确保您使用正确数量的参数调用函数,并与AS 声明相匹配。如果您的 AS 声明:
function playSound(event:MouseEvent):void{
// code here
}
然后确保您相应地使用该函数playSound(null)
。
我自己也经历过这种事。
关于javascript - 如何克服 "Error calling method on NPObject"并 Play() a SWF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5607726/