Загрузка приложений Flash / Flex в другое приложение AIR

Я загружаю приложение Flex в свое приложение AIR и использую childSandboxBridge и parentSandboxBridge для связи между ними. Работает как шарм.

Но я попытался загрузить Flash-приложение (основной класс расширяет Sprite, а не Application), и поэтому я получаю SecurityError при попытке установить childSandboxBridge в объекте loaderInfo.

В приложении Flex это выглядит так: я использую loaderInfo, поскольку свойство childSandboxBridge доступно только в AIR.

loaderInfo = FlexGlobals.topLevelApplication.systemManager.loaderInfo;
try {
   Object(loaderInfo).childSandboxBridge = this;
} catch(e:Error) {
 ...
}

В моем приложении Flash это так:

loaderInfo = myMainObject.loaderInfo; // myMainObject is the same class as 'root'
try {
   Object(loaderInfo).childSandboxBridge = this;
} catch(e:Error) {
 ...
}

В приведенном ниже примере я получаю следующую ошибку SecurityError:

Error #3206: Caller app:/airapp.swf/[[DYNAMIC]]/1 cannot set LoaderInfo property childSandboxBridge.

SecuritySandbox для обоих примеров - это «приложение».

Есть идеи, почему это не работает с приложением Flash? Заранее спасибо.


person Timo    schedule 11.05.2010    source источник


Ответы (1)


Возможно, вам потребуется явно указать во Flash-коде, что вы разрешите его загрузку в другую виртуальную машину. Дополнительные сведения см. В документации класса flash.system.Security: http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/system/Security.html.

person Tim    schedule 11.05.2010