вызов метода actionscript из javascript

Я пытаюсь вызвать метод actionscript из javascript, но он говорит, что flashObj.method() не является функцией. Я объявил этот метод внутри подмодуля моего флеш-объекта. Итак, как вызывать методы подмодулей


person Seeker    schedule 27.04.2012    source источник


Ответы (3)


Вот работающий пример с исходным кодом.

http://www.redcodelabs.com/2012/04/calling-actionscript-method-from-javascript/

Вам нужно взглянуть на класс ExternalInterface. Все, что вам нужно, есть. Также вам нужно быть осторожным с обработкой ошибок с обеих сторон (AS3 или JS).

person Adrian Pirvulescu    schedule 27.04.2012


Как указано выше, вам нужно использовать

ExternalInterface.addCallback("nameOfFunctionAsCalledFromJS",nameOfFunctionInFlash);

Я рекомендую использовать разные имена для двух функций. Вы можете использовать это, чтобы сделать общедоступными даже функции разных классов, при условии, что они общедоступны. Однако, предполагая, что ваши модули являются загружаемыми извне SWF-файлами, когда вы загружаете свои SWF-файлы в приложение, вам нужно использовать LoaderContext и устанавливать модули в том же ApplicationDomain и SecurityDomain, что и приложение, которое их загружает:

var lc:LoaderContext = new LoaderContext(true,ApplicationDomain.currentDomain,SecurityDomain.currentDomain);
loader.load(urlRequest,lc);

Кроме того, вам нужно разрешить доступ из JS к вашему приложению (тому, которое загружает модули), и поэтому вам нужно вызывать allowDomain перед любыми вызовами из JS:

Security.allowDomain("yourdomain");
Security.allowInsecureDomain("yourdomai")
person Urash    schedule 27.04.2012