Пересеките Домен ExternalInterface “Ошибочный вызывающий метод для NPObject”

Это то, что я использую (очень эффективно):

function find_last () { find "${1:-.}" -type f -printf '%TY-%Tm-%Td %TH:%TM %P\n' 2>/dev/null | sort | tail -n "${2:-10}" }

PROS:

  • это порождает только 3 процесса

USAGE :

find_last [dir [number]]

где:

  • dir - каталог для поиска [текущий каталог]
  • number - количество отображаемых новейших файлов [10]

Выход для find_last /etc 4 выглядит следующим образом:

2019-07-09 12:12 cups/printers.conf
2019-07-09 14:20 salt/minion.d/_schedule.conf
2019-07-09 14:31 network/interfaces
2019-07-09 14:41 environment
19
задан lord_t 24 May 2012 в 15:50
поделиться

3 ответа

Для того, чтобы это работало, вам понадобятся только две вещи:

1) allowscriptaccess = always позволит вашему swf отправлять данные на страницу

2 ) System.security.allowDomain ("yourhtmldomain.com");

Обратите внимание, что это System.security.allowDomain () в AS2 - это не то же самое, что AS3 или то, что вы написали выше.

номер 2 позволяет странице html в domainA вызывать объекты в swf на domainB.

Домен, на котором размещен ваш js, здесь не имеет значения, поскольку браузер встраивает его в domainA, сценарий выполняется в domainA.

crossdomain.xml в основном предназначен только для загрузки удаленных файлов, чего вы не делаете, поэтому вы можете удалить его, если хотите. (и вы, вероятно, не хотите иметь файл crossdomain.xml с allow = "*"

20
ответ дан 30 November 2019 в 04:40
поделиться

Поскольку вы загружаете несколько файлов swf, вам может потребоваться включить параметры безопасности в каждый из этих загружаемых файлов swf в домене B.

Также может потребоваться контекст загрузчика с соответствующим настройки безопасности.

import flash.system.LoaderContext;
import flash.system.ApplicationDomain;
import flash.system.Security;
import flash.system.SecurityDomain;
import flash.net.URLRequest;
import flash.net.URLLoader;

var context:LoaderContext = new LoaderContext(true, ApplicationDomain.currentDomain, (Security.sandboxType == Security.REMOTE) ? SecurityDomain.currentDomain : null);
var l:Loader = new Loader();
l.load(new URLRequest("http://example.com/myswf.swf"), context);
1
ответ дан 30 November 2019 в 04:40
поделиться

При использовании AS3 с Flash Player версии 10 мне не удалось заставить ExternalInterface.addCallback () правильно работать для локального тестирования. Наконец-то моя локальная копия заработала, добавив параметр «allowNetworking» со значением «все» ( http://www.adobe.com/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html /wwhelp.htm?context=LiveDocs_Parts&file=00001079.html). Удачи всем, кто борется с этим!

0
ответ дан 30 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: