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"탭에 있습니다. (플래시가 처음입니다.)