Javascript ExternalInterface.addCallback不工作
这是我的AC3代码Javascript ExternalInterface.addCallback不工作,javascript,actionscript,Javascript,Actionscript,这是我的AC3代码 private function uploadet( dosya:String ):void { var uploader:URLRequest = new URLRequest(dosya); localFile.upload(uploader); } var a = flash.external.ExternalInterface.addCallback("uploadet",uploadet); 这
private function uploadet( dosya:String ):void {
var uploader:URLRequest = new URLRequest(dosya);
localFile.upload(uploader);
}
var a = flash.external.ExternalInterface.addCallback("uploadet",uploadet);
这是Javascript
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("myId", "9.0.0", "expressInstall.swf");
function uploadet(dosya){
var myFlashMovie = swfobject.getObjectById("myId");
myFlashMovie.uploadet(dosya);
}
</script>
<style type="text/css">
<!--
body {
background-color: #e6e6e6;
margin-top: 50px;
}
-->
</style></head>
<body >
<object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="300" height="120">
<param name="movie" value="SimpleUploader.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="SimpleUploader.swf" width="300" height="120">
<!--<![endif]-->
<div>
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
<div id="flash" align="center">
</div>
<div align="center"><b>Javascript Feedback:</b></div>
<div align="center" id="output"></div>
<input type="button" name="Submit" value="Submit" onclick="uploadet('dsadsa.php');" />
我不能让它工作,任何帮助都是感激的
谢谢您的问题是,您可能没有使用以下方法到达正确的元素:
var myFlashMovie = document.getElementById('simpleUploader');
嵌套的标记具有相同的id属性,从而产生意外的结果
您应该使用SWFObject(一个广为人知且使用广泛的flash嵌入库)来嵌入flash电影,并使用SWFObject.getObjectById方法来正确访问标记
要了解有关SWFObject的更多信息,请访问以下链接:
这是Adobe for SWFObject提供的初学者教程:
var parametersObj = { allowScriptAccess: "always" };
swfobject.embedSWF(
swfPath,
targetElement,
swfWidth,
swfHeight,
minFlashVersion,
expressInstall,
flashvarsObj,
parametersObj,
attributesObj
);
通过以下链接在API文档中查找getObjectById:
您必须在web服务器上部署flash应用程序,以便对其进行测试或使自己成为本地web服务器。
如果您将文件作为文件从本地主机加载,flash player将不允许您使用外部接口file:///c:......嵌入SWF时,如果不允许脚本,则无法使用ExternalInterface,有关详细信息,请阅读本文档。换句话说,如果要将此HTML直接嵌入页面,请使用此HTML:
<object ... >
.
.
.
<param name="allowScriptAccess" value="always"/>
</object>
不要使用getObjectById方法获取swf对象。 您可以使用以下代码:
swfobject.registerObject("myId", "9.0.0", "expressInstall.swf", callbackFn);
function callbackFn(status) {
if (status.success) {
var obj = status.ref;
document.getElementById("but1").onclick = function() {
if (obj && typeof obj.uploadet!= "undefined") {
obj.uploadet(dosya);
}
};
}
您可以参考更多详细信息
是的,我创建了SWFObject并编辑了我的问题,但它仍然不起作用。介意提供一些错误消息吗?当它不起作用时会发生什么?事实上,这解决了我的问题。非常感谢。这可能没有解决他的问题,但它解决了我的问题。我认为这是相关的。