2011-05-14 3 views
0

내 팀의 프로젝트에 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를 빌드하고 있습니다.

+1

swf의 내부에 대한 추가 정보가 없으면 내 생각에 대답을 찾는 것이 매우 어려울 것입니다. – cwallenpoole

+1

Java 소스 대신 렌더링 된 HTML을 붙여 넣을 수 있습니까? 또한 Firebug를 사용하여 자바 스크립트 기능을 실행할 수 있는지 확인하십시오. – Satish

+1

getFlashMovie 함수가 예상 한 결과를 반환하고 있습니까? 그렇다면 문제는 AS3 측에있는 것처럼 보일 것입니다. 그러나 당신이 그 기능에서 기대하는 것을 얻고 있는지 확인하십시오. – prototypical

답변

2
System.security.allowDomain("*"); 

내 swf에서 우리는 좋습니다.