2009-06-19 2 views
0

Мы загружаем внешний swf-контент в приложение adobe air. Контент предоставляется все большим количеством третьих сторон.Какие ограничения/обходные пути необходимы для сторонних сторонних сторон swf

Будучи третьим лицом, он будет загружен в отдельный домен безопасности (trustContent = false) и домен приложения для дочернего узла (loadForCompatibility = true). Мы делаем это, используя класс Loader.

Каковы функции/варианты/подходы, которые могут вызвать проблемы при использовании swf в качестве внешнего содержимого?

Меня интересуют любые проблемы, так как мы уже воспроизводили проблемы с контентом, которые происходят независимо от домена домена приложения/безопасности, где он загружен (и происходит также и в загрузчике, и в SWFLoader).

Любые обходные решения для проблем высоко оценены, особенно те, которые могут быть применены в главном приложении.

ответ

1

Большая неприятная проблема (и проблема, с которой мы имели дело!) Заключается в том, что внешним SWF просто нельзя доверять напрямую. Когда-либо. Это затрудняет взаимодействие между ними и базовым AIR-приложением.

Существует такая проблема, основанная на загрузке данных SWF через URLLoader, а затем извлечении из него байта и перекачивании его в загрузчик. Тем не менее, я считаю, что взлом был убит AIR 1.5.1.

Сообщалось, что между приложением AIR и загруженным SWF можно связать с тем, что Adobe называет мостом песочницы. Тем не менее, настройка моста для песочницы - это боль в королевстве, и любые сложные данные (объекты, даже такие же простые, как массивы), разделяются на общие объекты на другой стороне моста и не могут быть возвращены в их исходную форму.

Для наших недавних проектов, которые необходимы для использования моста, мы создали класс специальности AIRBridge, который вы используете с обеих сторон моста, и это облегчает настройку всех должным образом. Если вам интересно, вы можете вытащить текущий источник из нашего проекта Google Code Automata-Tools.

+0

Thx много Branden для хорошей информации. Это подтверждает то, что я недавно прочитал о модели воздушной безопасности в ссылке, размещенной в этом ответе: http://stackoverflow.com/questions/697155/is-there-an-way-to-load-external-swf-into- а-песочница-в-вспышка/698079 # 698079. Мы в настоящее время не общаемся с сторонними SWF, но мы будем и я обязательно рассмотрим этот проект, когда мы доберемся до него. У вас возникли другие проблемы с внешним контентом, то есть с использованием свойств сцены, корня и подобных объектов? (читайте недавно, те могут ввести проблемы, но не уверены в этом) – eglasius

+0

Да, у вас нет доступа к сцене. Любая попытка доступа к нему приведет к исключению. Это также означает, что некоторые компоненты не будут работать в дочернем swf. Я знаю, что comobox - один из преступников, и я подозреваю, что любой из них, кто «всплывает», может вызвать проблемы. Удачи, и это было проклято умным, чтобы спросить здесь сначала - нам пришлось обнаружить эти проблемы болезненным способом! –

0

Один мы уже обращались:

  • Содержимое за пределами внешних сценических швейцарских франков показывает в приложении, а также при установлении размера, где она будет отображаться в закулисных элементы принимаются во внимание. Обход проблемы: Добавьте маску в основное приложение, чтобы внешний контент был скрыт. Используйте .content.width/height (полный с элементами вне сцены) и .content.loaderInfo.width/height (исходный размер сцены), чтобы рассчитать, насколько масштабируется контент, чтобы исходная сцена соответствовала видимой области.
Смежные вопросы