2009-11-04 3 views
2

Javascript를 사용하여 Flash에서 함수를 호출해야합니다. 이 목적을 위해 ExternalInterface 클래스를 사용하고 있습니다 (예 : http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/external/ExternalInterface.html 끝 부분에 설명되어 있음). 그러나 그것은 나를 위해 작동하지 않습니다.Flash와 Javascript 간 통신 방법

는 SWF가이 같은 HTML 페이지에 선언 :

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="305" height="270" id="DemoPlayer" align="middle"> 
<param name="allowScriptAccess" value="always" /> 
<param name="allowFullScreen" value="false" /> 
<param name="movie" value="DemoPlayer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /> <embed src="DemoPlayer.swf" quality="high" bgcolor="#ffffff" width="305" height="270" name="DemoPlayer" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 
</object> 

내가 자바 스크립트를 사용하여 플래시에서 함수를 호출 시도 : Flash에서

function thisMovie(movieName) { 
     if (navigator.appName.indexOf("Microsoft") != -1) { 
      return window[movieName]; 
     } else { 
      return document[movieName]; 
     } 
    } 
    function sendToActionScript(value) { 
     thisMovie("DemoPlayer").sendToActionScript(value); 
    } 

내가 가진 :

ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript); 

FireFox에서 다음 메시지가 나타납니다 : "NPObject에서 메서드를 호출하는 중 오류가 발생했습니다! [플러그인 예외 : Actionscript의 오류입니다. try/catch 블록을 사용하여 오류를 찾습니다.]. "

나는 이미 "allow"매개 변수의 값을 "always"로 변경했지만 도움이되지 않습니다. 아마도 이것이 ExternalInterface.addCallback ("sendToActionScript", receivedFromJavaScript)의 위치에 문제가 될 수 있습니다. "Adobe Flash"* .fla 파일의 "Action-Frame"탭에 있습니다. (플래시가 처음입니다.)

답변

3

문제점을 발견했습니다 - Flash Player settings입니다. 먼저 swf 만 추가했습니다. 파일을 신뢰할 수있는 파일로 만들었지 만 전체 디렉토리를 추가하면 작동하기 시작했습니다.