2010-02-21 5 views
5

자바 스크립트에서 ActionScript (3.0) 함수를 호출하는 테스트 용 약간의 테스트 SWF가 있습니다.JS에서 ActionScript 함수를 호출 할 때 보안 오류가 발생했습니다.

import flash.external.ExternalInterface 

function callMe(name:String):String{ 

    return "busy signal"; 

    } 

    ExternalInterface.addCallback("myFunction",callMe); 

그리고 JS : 나는 플래시 플레이어 오류되게하고 페이지를로드 할 때 (http://www.adobe.ca/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000340.html) :

SecurityError: Error #2060: Security sandbox violation: ExternalInterface caller file: c:/externalinterface.swf cannot access file: c:\myhtml.html 
at flash.external::ExternalInterface$/_initJS() 
    at flash.external::ExternalInterface$/addCallback() 
    at externalinterface_fla::MainTimeline/frame1() 

이는 액션이다 나는 참고로 플래시 문서를 사용하고 있습니다 :

<script type="text/javascript" language="javascript"> 
    function callSwf() { 
     var callResult = flashObject.myFunction("Nick"); 
     alert(callResult); 
    } 

</script> 

마지막으로 HTML 개체 :

<object width="550" height="400"> 
<param name="movie" value="externalinterface.swf"> 
<embed src="externalinterface.swf" width="550" height="400"> 
</embed> 
</object> 

어떻게 해결할 수 있습니까?

+3

귀하의 HTML에 스크립트 실행을 허용 하시겠습니까? params.allowscriptaccess = "always" –

답변

6

온라인 또는 로컬 호스트를 테스트하면 돔과 같은 allowscriptaccess = "true"매개 변수가있는 경우 작동합니다. file : // 프로토콜로 테스트하는 경우 플래시 플레이어 보안 옵션에서 드라이브를 허용해야합니다.

+0

전역 보안 설정에서 로컬 swf 경로를 추가했으나 오류가 사라졌습니다. – Nick

+4

다른 모든 사용자의 경우 글로벌 보안 설정은 http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html에서 편집됩니다. – Patrick

관련 문제