Загрузка внешнего SWF - нарушение песочницы - PullRequest
1 голос
/ 05 мая 2010

Мне нужна помощь ... срочно !!! Я так старался понять это ... но я не мог .. поэтому я очень ценю вашу помощь ..

Я разрабатываю приложение для Air, используя флэш-память ... приложение динамически загружает внешний SWF-файл через XML-файл ... В SWF-файле есть мувиклип, в котором есть прослушиватель (нажатие кнопки ВКЛ.)

function mouseDownHandler(event:MouseEvent):void {
navigateToURL(new URLRequest(clickURL));

}

Все работает нормально, пока я не нажму на этот мувиклип ... он отображает следующее сообщение

SecurityError: Ошибка # 2121: нарушение изолированной программной среды безопасности: navigateToURL: http://www.mydomainexample.com/maskot/avatar.swf не может получить доступ к YAHOO.COM для пример. Это можно обойти, вызвав Security.allowDomain.

Любая помощь! потому что у меня действительно есть крайний срок!

Большое спасибо за любую помощь!

Ответы [ 3 ]

1 голос
/ 28 января 2011

На самом деле Security.allowDomain не будет работать, поскольку мы говорим об AIR.
Поиск по этой ссылке дает возможный ответ: http://code.google.com/p/maashaack/wiki/ApplicationDomain

var context:LoaderContext = new LoaderContext( false, AD );
context.allowLoadBytesCodeExecution = true;
loader.loadBytes( urlloader.data, context );
1 голос
/ 31 июля 2014

Securit.allowDomain здесь не имеет значения, потому что это только для указания того, где другие SWF-файлы / приложения могут быть расположены для доступа к вашему приложению.

То, что вы пытаетесь сделать, является нарушением безопасности, и прямого пути к этому нет. Но вы можете попробовать пару вещей:

  1. идея Вазора
  2. Напишите код в вашем основном приложении, который добавляет прослушиватель событий к вашей кнопке после загрузки внешнего SWF, а затем вызывает navigateToURL из вашего обработчика, который существует в основном приложении. Я попробовал этот метод, и он работает. Если вам нужно, вы также можете загрузить фактический URL-адрес с внешнего SWF.

Этот ответ может быть бесполезен, если ваш срок не будет более 4 лет в будущем ...

0 голосов
/ 05 мая 2010
This may be worked around by calling Security.allowDomain.

прочитайте ошибку.

...