Ошибка безопасности при попытке вызвать функцию ActionScript из JS - PullRequest
5 голосов
/ 21 февраля 2010

У меня есть небольшой тестовый swf для проверки вызова функции ActionScript (3.0) из JavaScript. Я использую документацию по Flash в качестве ссылки: (http://www.adobe.ca/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000340.html) При загрузке страницы появляется сообщение об ошибке Flash Player:

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()

Это код ActionScript:

 import flash.external.ExternalInterface

function callMe(name:String):String{

    return "busy signal";

    }

    ExternalInterface.addCallback("myFunction",callMe);

И JS:

<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>

Как мы можем обойти это?

1 Ответ

6 голосов
/ 22 февраля 2010

, если вы тестируете онлайн или локальный хост, он должен работать, если у вас есть параметр allowcriptaccess = "true", как сказал Dome. Если вы тестируете по протоколу file: //, вам нужно включить ваш диск в настройках безопасности флэш-плеера.

...