2008-10-22 3 views
0

My Flash (AS3/AIR) приложение в настоящее время использует несколько необычную архитектуру (для приложения Flash-), чтобы обеспечить определенные базовые классы для загруженного содержимого во время выполнения. Внешнее содержимое публикуется с базовыми классами «stub», которые затмеваются «реальными» базовыми классами во время выполнения при загрузке. Я слышал об этом, упомянутом Adobe как bootstrapping (pdf), и он работал очень хорошо для меня до сих пор. Похоже, что это не похоже на архитектуру DLL, хотя я не могу сказать точно.«самонастройка» удаленный SWF в приложение SecurityDomain (ActionScript3)

До сих пор загружался внешний контент, который был загружен из одного и того же SecurityDomain (такая же песочница), что позволяет мне легко загружать контент у ребенка ApplicationDomain. К сожалению, насколько я могу судить, Н. ApplicationDomain s, которые охватывают SecurityDomain s не могут быть связаны - то есть, я не могу сделать AppDom одного SecurityDom ребенка из AppDom другого SecurityDom.

Но теперь мне нужно загрузить этот внешний контент из-за пределы моей песочницы приложения. Существует множество способов достижения связи через SecurityDomain с - хотя большинство из них очень ограничены, API AIR sandboxBridge, вероятно, самый мощный. К сожалению, ни один из этих методов коммуникации не позволяет мне реализовать эту архитектуру начальной загрузки.

Я заметил, что LoaderContext объект имеет свойство securityDomain, но вспышка безопасности запрещает «местный СФБ» от прикосновения к его (он бросает SecurityError или аналогичный).

Flex-х SWFLoader имеет trustContent свойство, которое выглядит многообещающим, но я склонен считать, что он имеет те же ограничения, установив SecurityDomain в Loader «s LoaderContext.

Я подозреваю, что придется перепроектировать (который не будет легко), но я думал, что просто проверить здесь, что я не пропустил что-то в моих исследованиях.

Итак ... любые идеи или жемчужины мудрости? Я особенно волнуюсь, если кто-то из Adobe, который работает на модели безопасности, может дать окончательное «да/нет, это может/не может быть сделано» ...

Заранее благодарен!

Приложение: С тех пор я решил перепроектировать архитектуру так, чтобы процесс начальной загрузки происходил во внешнем домене. Однако мой вопрос все еще стоит из любопытства.

+0

какой подход сделал u в конечном итоге используя? :) Я разместил несколько связанных q здесь stackoverflow.com/questions/1020397/..., хотелось бы получить обратную связь на нем/как кажется, вы работали с сторонним внешним swf :) – eglasius 2009-06-20 00:59:37

+0

Freddy, интересно, мой вопрос сейчас немного устарел, как я писал, когда FP10 находился в состоянии бета-тестирования. – aaaidan 2010-08-11 02:39:02

ответ

1

На момент написания статьи я решил, что вы не можете загрузить ApplicationDomain в свой собственный SecurityDomain, если он из другого домена, даже с AIR.

По дизайну, я думаю.

1

Технически говоря, не было бы возможным для приложения AIR, чтобы просто сохранить внешние СФБ внутри директории вашего приложения, и загружать их оттуда так, что они живут в той же изолированной программной среде безопасности?

Однако есть некоторые поистине очевидные причины, по которым это было бы плохой кармой, поэтому кажется, что любое решение неизбежно ставит вопрос о том, следует ли пытаться помещать локальный контент приложения и удаленный ненадежный контент в один и тот же домен приложения - это правильная архитектура подход..?