Можно ли получить доступ к статическим полям, объявленным в главном приложении фильмами, загруженными динамически с помощью SWFLoader - PullRequest
0 голосов
/ 02 мая 2009

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

Моя главная задача - убедиться, что мы не предоставляем данные загруженным SWF-файлам, а хотим прослушивать события (через функции обратного вызова размещенных приложений), запускаемые загруженным SWF-файлом.


UPDATE

SWFLoader (для flex) и Loader (flash) различаются. SWFLoader оборачивает Loader, но до Flex API 3.2 (или 3.3?) Кажется, что вы не можете получить прямой доступ к загрузчикам contentLoaderInfo , который используется в качестве ссылки на загруженный swf-файл loaderInfo без необходимости сначала обращаться к нему свойство содержимого хоста swfloader. В Flex 3.3 они представляют свойство SWFLoader.swfBridge, которое (глядя на исходный код) предоставляет объект contentLoaderInfo.sharedEvents вложенного загрузчика.

Но, похоже, все еще существует проблема: swfBridge (на event.COMPLETE) кажется нулевым?

Так как же нам получить объект contentLoaderInfo.sharedEvents узла SWFLoader?

1 Ответ

1 голос
/ 03 мая 2009

Если ваше приложение A.swf загружает файл B.swf из другого домена, а в домене B.swf есть файл междоменной политики, позволяющий A.swf получить доступ к содержимому B.swf, да Вы можете получить доступ почти ко всему, что есть внутри B.swf, включая статические поля. Вы читаете тех, кто использует TextSnapshot класс.

Если вы хотите, чтобы A.swf загружал B.swf из другого домена, но не хотите, чтобы A.swf имел доступ к содержимому B.swf, просто не позволяйте ему, что касается событий, я помню, было что-то под названием SharedEvents . Мне повезло, что мне это пока не нужно, но я помню, как читал об этом в Essential Actionscript 3.0 . Была целая скучная глава о безопасности. Извините, я не могу привести более конкретный пример, так как я не отвечаю из своего личного опыта.

Гудлак!

...