从javascript调用as3函数时出现问题
所以我的团队的项目在JavaScript中嵌入了一个swf,我们实际上使用Javaservlet来创建html/JavaScript。我正在尝试使用as3的ExternalInterface添加一个回调,该回调将在javascript中被调用,但我尝试的一切都不会起作用 以下是一些相关代码: Javascript:(记住使用servlet,这就是为什么这些都在一个字符串中)从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
所需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("*");