这是我的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');" />
我无法得到它,任何帮助都表示赞赏。
由于
答案 0 :(得分:5)
您必须在网络服务器上部署Flash应用程序才能对其进行测试(或使自己成为本地Web服务器)。 如果您将文件从本地主机加载为文件(文件:/// c:.....),Flash播放器将不允许您使用外部接口。
答案 1 :(得分:2)
不要使用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);
}
};
}
您可以参考Static Embed method:Browser communication test page with callback
了解更多详细信息和Dynamic Embed method:Browser communication test page with callback
答案 2 :(得分:1)
嵌入SWF时,如果不允许使用脚本,则无法使用ExternalInterface,请阅读此Adobe Knowledge Base文档以获取更多信息。换句话说,如果您将其直接嵌入页面,请使用此HTML:
<object ... >
.
.
.
<param name="allowScriptAccess" value="always"/>
</object>
如果您使用的是SWFObject,则可以使用以下内容:
var parametersObj = { allowScriptAccess: "always" };
swfobject.embedSWF(
swfPath,
targetElement,
swfWidth,
swfHeight,
minFlashVersion,
expressInstall,
flashvarsObj,
parametersObj,
attributesObj
);
答案 3 :(得分:0)
您的问题是您可能无法使用以下方法找到正确的<OBJECT>
元素
var myFlashMovie = document.getElementById('simpleUploader');
您的嵌套代码具有相同的id属性,会产生意外结果。
您应该使用SWFObject(一个广为使用的Flash嵌入库)来嵌入您的Flash电影,并使用swfobject.getObjectById()
方法正确访问您的<OBJECT>
标记。
要了解有关SWFObject的更多信息,请点击以下链接:
http://code.google.com/p/swfobject/
这是Adobe提供的初学者教程(适用于SWFObject):
http://www.adobe.com/devnet/flashplayer/articles/swfobject.html
通过以下链接查找API文档中的getObjectById()
: