Javascript ExternalInterface.addCallback不工作

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); 这

这是我的AC3代码

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并编辑了我的问题,但它仍然不起作用。介意提供一些错误消息吗?当它不起作用时会发生什么?事实上,这解决了我的问题。非常感谢。这可能没有解决他的问题,但它解决了我的问题。我认为这是相关的。