내 팀의 프로젝트에 JavaScript가 포함되어 있으므로 실제로는 자바 서블릿을 사용하여 HTML/JavaScript를 만듭니다. as3의 ExternalInterface를 사용하여 자바 스크립트에서 호출 될 콜백을 추가하려고하지만 시도한 모든 것이 작동하지 않습니다.자바 스크립트에서 as3 함수 호출 문제
자바 스크립트 : (이 문자열 내에서 모든 이유 서블릿 먹으 렴을 사용하여 기억)
<html>
<head>
<script src='/oddmanor/AC_OETags.js' language='javascript'></script>
<script language='JavaScript' type='text/javascript'>
var requiredMajorVersion = 10;
var requiredMinorVersion = 1;
var requiredRevision = 0;
</script>
</head>
<body marginwidth='0' marginheight='0' leftmargin='0' topmargin='0'>
<script language='JavaScript' type='text/javascript'>
var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if (hasReqestedVersion) {
AC_FL_RunContent(
'src', 'http://localhost:8080/download/FlashClient',
'width', '760',
'height', '600',
'align', 'middle',
'id', 'myswf',
'quality', 'high',
'bgcolor', '#FFFFFF',
'name', 'myswf',
'allowScriptAccess','always',
'type', 'application/x-shockwave-flash',
'codebase', 'http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab',
'pluginspage', 'http://www.adobe.com/go/getflashplayer',
'wmode', 'opaque',
'flashvars', 'challenge=c0oC5CjXjOpRagA0Eh0xi2uYCv-8HZfz-XpG2CCmJHZMnFQK8wYI4kultTUGYGff3N8-5lco_TrR2MfCvnUhVUyCOII6Xtem2rRIPD3SBJ18YxUSkH2GykI78Im2pfqw-UR44OqlOuZGafL3VRkn7KSiMm-AWbZt60MFHzHFaeEhIQke9aj04UkmaJL1MWoOU4CklVxoqX-ag146KilHEroL46JxcD9TLvCW9MG_Gv9fTAYOZK2_FEsHUMg0kP8WjyheWBftNxOuZoHQ9bIsB9EDe9pR4RwZryCjyL6p4T7Si0dMFfmEvml5mkhRYG74yj7pLDKTgHJeURUKOYY9RU9mFbsA82Q8-7cXeGlvQnk'
);
} else {
var alternateContent = 'Alternate HTML content should be placed here.<BR>'
+ 'This content requires the Adobe Flash Player. '
+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
document.write(alternateContent);
}
</script>
<noscript>
<div align="middle" id="swf">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">
<param name="src" value="http://localhost:8080/download/FlashClient">
<param name="width" value="760">
<param name="height" value="600">
<param name="align" value="middle">
<param name="id" value="myswf">
<param name="quality" value="high">
<param name="bgcolor" value="#FFFFFF">
<param name="name" value="myswf">
<param name="allowScriptAccess" value="always">
<param name="type" value="application/x-shockwave-flash">
<param name="codebase" value="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="pluginspage" value="http://www.adobe.com/go/getflashplayer">
<param name="wmode" value="opaque">
<param name="flashvars" value="challenge=c0oC5CjXjOpRagA0Eh0xi2uYCv-8HZfz-XpG2CCmJHZMnFQK8wYI4kultTUGYGff3N8-5lco_TrR2MfCvnUhVUyCOII6Xtem2rRIPD3SBJ18YxUSkH2GykI78Im2pfqw-UR44OqlOuZGafL3VRkn7KSiMm-AWbZt60MFHzHFaeEhIQke9aj04UkmaJL1MWoOU4CklVxoqX-ag146KilHEroL46JxcD9TLvCW9MG_Gv9fTAYOZK2_FEsHUMg0kP8WjyheWBftNxOuZoHQ9bIsB9EDe9pR4RwZryCjyL6p4T7Si0dMFfmEvml5mkhRYG74yj7pLDKTgHJeURUKOYY9RU9mFbsA82Q8-7cXeGlvQnk">
<embed src="http://localhost:8080/download/FlashClient" width="760" height="600" align="middle" id="myswf" quality="high" bgcolor="#FFFFFF" name="myswf" allowScriptAccess="always" type="application/x-shockwave-flash" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="opaque" flashvars="challenge=c0oC5CjXjOpRagA0Eh0xi2uYCv-8HZfz-XpG2CCmJHZMnFQK8wYI4kultTUGYGff3N8-5lco_TrR2MfCvnUhVUyCOII6Xtem2rRIPD3SBJ18YxUSkH2GykI78Im2pfqw-UR44OqlOuZGafL3VRkn7KSiMm-AWbZt60MFHzHFaeEhIQke9aj04UkmaJL1MWoOU4CklVxoqX-ag146KilHEroL46JxcD9TLvCW9MG_Gv9fTAYOZK2_FEsHUMg0kP8WjyheWBftNxOuZoHQ9bIsB9EDe9pR4RwZryCjyL6p4T7Si0dMFfmEvml5mkhRYG74yj7pLDKTgHJeURUKOYY9RU9mFbsA82Q8-7cXeGlvQnk" />
</object>
This content requires the Adobe Flash Player and a browser with JavaScript enabled.
<a href='http://www.adobe.com/go/getflash/'>Get Flash</a>
</div>
</noscript>
<div>
<a href='http://d1fjc9whyjwawe.cloudfront.net/KingX_Studios_Terms_of_Service.pdf' TARGET='_blank'>KingX Terms of Service</a> |
<a href='http://d1fjc9whyjwawe.cloudfront.net/Privacy_Policy_Odd_Manor.pdf' TARGET='_blank'>Privacy Policy</a> |
<a href='http://www.activeboard.com/forum.spark?aBID=138536&topicID=42164567&p=3' TARGET='_blank'>Report a Bug</a>
</div>
<div id='fb-root'></div>
<script src='http://connect.facebook.net/en_US/all.js'></script>
<script type='text/javascript'>
FB.init(
{
'appId': '191461020878253',
'status': true,
'cookie': true,
'channelUrl': 'http://nimbus.com:8080/oddmanor/fb_channel.html'
}
);
var callback = function(data) {
var res;
if (data['order_id']) {
res = true;
}
else {
res = false;
}
var me;
if (navigator.appName.indexOf('Microsoft') != -1) {
me = window['myswf'];
}
else {
me = document['myswf'];
}
me.onPurchaseCompletion(res);
};
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName]; }
function getFriendsUsingApp()
{
alert("ALERRRRRT!!!");
getFlashMovie("myswf").passFriendArrayToFlash();
return "set2";
}
function makePurchase(objectInfo) {
var obj = {
'method': 'pay',
'order_info': objectInfo,
'purchase_type': 'item'
};
FB.ui(obj, callback);
}
</script>
</body>
</html>
이 또한 내가 자바 스크립트 코드의 비트를 찢어 여기
는 관련 코드의 일부입니다 그 didnt는이 문제 (아무리해도)와 아무 상관이 없기 때문에 아마도 태그가 빠져 있거나 내 문제가 아닐 수도 있습니다.
주 전> AS3은 ('= 작동하지 않습니다 JS-를 제외한 작동의 ExternalInterface를 사용하여 올바르게를 포함하고 자바 스크립트 기능을 (AS3가 getStuff FN를 호출)를 호출 할 수 있도록 SWF로 얻을.
다른 노트, 는 ...
내가 일 이후에는 코드를 사용하지하려고하면나는 아무것도 동영상 개체 (getFlashMovie의 반환 값)를 사용하지 못할 .... 는 SWF의 이름입니다 FlashClient
조치 스크립트 코드는 외부 인터페이스 addCallbac 올바르게 (내가 아는 방법은 시도 캐치에서 호출) K 기능 경우 (Availible 외부 ...) ("passStuff", as3PassStuff) ... 외부 다음 addCallBack
내가 생각할 수있는 유일한 일을; 1) 임베디드 코드는 객체를 올바르게 생성하지 않습니다. 왜냐하면 어떤 것도 동영상을 사용할 수 없으므로 입니다. 2) swf가 이상하게 생성되어 스크립트 액세스를 허용하지 않습니다.
우리는 FlashBuilder를 사용하여 swf를 빌드하고 있습니다.
swf의 내부에 대한 추가 정보가 없으면 내 생각에 대답을 찾는 것이 매우 어려울 것입니다. – cwallenpoole
Java 소스 대신 렌더링 된 HTML을 붙여 넣을 수 있습니까? 또한 Firebug를 사용하여 자바 스크립트 기능을 실행할 수 있는지 확인하십시오. – Satish
getFlashMovie 함수가 예상 한 결과를 반환하고 있습니까? 그렇다면 문제는 AS3 측에있는 것처럼 보일 것입니다. 그러나 당신이 그 기능에서 기대하는 것을 얻고 있는지 확인하십시오. – prototypical