Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript调用as3函数时出现问题_Javascript_Html_Actionscript 3_Externalinterface - Fatal编程技术网

从javascript调用as3函数时出现问题

从javascript调用as3函数时出现问题,javascript,html,actionscript-3,externalinterface,Javascript,Html,Actionscript 3,Externalinterface,所以我的团队的项目在JavaScript中嵌入了一个swf,我们实际上使用Javaservlet来创建html/JavaScript。我正在尝试使用as3的ExternalInterface添加一个回调,该回调将在javascript中被调用,但我尝试的一切都不会起作用 以下是一些相关代码: Javascript:(记住使用servlet,这就是为什么这些都在一个字符串中) 所需var主要版本=10; var requiredMinorVersion=1; var requiredRevisi

所以我的团队的项目在JavaScript中嵌入了一个swf,我们实际上使用Javaservlet来创建html/JavaScript。我正在尝试使用as3的ExternalInterface添加一个回调,该回调将在javascript中被调用,但我尝试的一切都不会起作用

以下是一些相关代码:

Javascript:(记住使用servlet,这就是为什么这些都在一个字符串中)


所需var主要版本=10;
var requiredMinorVersion=1;
var requiredRevision=0;
var hasrequestedversion=DetectFlashVer(所需主要版本、所需最小版本、所需修订);
如果(hasrequestedversion){
AC_FL_RunContent(
‘src’http://localhost:8080/download/FlashClient',
“宽度”、“760”,
‘高度’、‘600’,
'对齐','中间',
“id”,“myswf”,
"优质","高",,
‘bgcolor’、‘FFFFFF’,
'name'、'myswf',
'allowScriptAccess'、'always',
“类型”、“应用程序/x-shockwave-flash”,
“代码库”http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab',
'插件页','http://www.adobe.com/go/getflashplayer',
“wmode”,“不透明”,
“闪瓦学”的意思是“闪瓦学”的意思意思是“挑战”的意思是“挑战”的意思是“挑战”的意思是“挑战”的意思是“闪瓦学”的意思是“挑战”的意思是“挑战”的意思是“挑战”的意思是“挑战”的意思是“挑战”的意思是“挑战”的意思是“挑战”的意思是“挑战”的意思意思是“他们的意思意思是“中国政府”2 2 2)是“中国政府”是一个政府的一个8 8 8 8 8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8。8 74YJ7PLDKTGHJEURUKOY9RU9MFBSA82Q8-7cXeGlvQnk'
);
}否则{
var alternateContent='应将替代HTML内容放在此处。
' +“此内容需要Adobe Flash Player。” + ''; 文件。编写(替换内容); } 此内容需要Adobe Flash Player和启用JavaScript的浏览器。 | | FB.init( { “appId”:“191461020878253”, “状态”:正确, “cookie”:对, “channelUrl”:”http://nimbus.com:8080/oddmanor/fb_channel.html' } ); var callback=函数(数据){ var-res; if(数据['order_id']){ res=真; } 否则{ res=假; } var me; if(navigator.appName.indexOf('Microsoft')!=-1){ me=窗口['myswf']; } 否则{ me=文件['myswf']; } me.onPurchaseCompletion(res); }; 函数getFlashMovie(movieName){ var isIE=navigator.appName.indexOf(“Microsoft”)!=-1; 返回(isIE)?窗口[movieName]:文档[movieName];} 函数getFriendsUsingApp() { 警报(“ALERRRRRT!!!”; getFlashMovie(“myswf”).passFriendaryToFlash(); 返回“set2”; } 函数makePurchase(objectInfo){ var obj={ “方法”:“支付”, “订单信息”:objectInfo, “采购类型”:“项目” }; FB.ui(obj,回调); }


此外,我还删除了一些JavaScript代码,这些代码与这个问题没有任何关系(希望如此),因此如果缺少标记或其他东西,可能不是我的问题

注意,我正确地嵌入了它,并进入swf,允许它使用ExternalInterface调用javascript函数(as3调用getStuff fn),它可以工作,但JS->as3不工作='(

其他注释, FlashClient是swf的名称

我不能将电影对象用于任何事情(getFlashMovie的返回值),如果我尝试在工作后不使用代码

动作脚本代码正确地调用了外部接口addCallback函数(在一个try-catch中调用,我就是这样知道的) 如果(外部…可用) 外部…addCallback(“passStuff”,as3PassStuff)

我唯一能想到的事; 1) 嵌入代码没有正确创建对象,因为我无法将电影用于任何用途 2) 我的swf正在创建,不允许脚本访问

我们正在使用FlashBuilder构建swf

System.security.allowDomain("*");

在我的swf中,我们很好。

如果没有更多关于swf内部的信息,我猜很难找到答案。你能粘贴呈现的HTML而不是Java源代码吗?还可以尝试使用Firebug来查看是否可以运行javascript函数。您确定getFlashMovie函数返回了您期望的结果吗?如果是,那么问题似乎就在AS3方面。但是,请检查以确保您从该函数中得到了预期的结果。@cWallenPole将少量as3代码放入外部接口调用/回调帮助中吗?你可能会在关于这个主题的大多数教程中找到它。我会发布它,除非你说的是其他的“swf”设置。。?明天我将尝试发布呈现的HTML。以及as3代码(如果适用)@原型-您知道如果该函数没有返回值(或正确的值)会出现什么问题吗???我对HTML和JavaScript都是新手。谢谢你的快速回复!从java内容创建的html现在发布,而不是我以前发布的内容。
System.security.allowDomain("*");