2011-03-09 2 views
7

Может ли кто-нибудь подтвердить, что ExternalInterface работает по протоколу file:, или указать на некоторые документы, которые говорят, что это не так?Работает ли ExternalInterface с файлом: протокол?

+1

Не по теме: Я использую XAMPP для отладки вспышки «локально» – zzzzBov

+0

это не для тестирования, это означает, что код, который будет работать на компакт-диск – erikvold

+0

нормально это перепутались, AFAICT docs на [navigateToURL] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/package.html#navigateToURL()), похоже, предполагают, что я ** должен ** использовать ExternalInterface для внутреннего контента WTF? – erikvold

ответ

8

Это начинает выглядеть как это не будет работать .. this page говорит:

сценарии в любом направлении между локальными HTML-файлами и локальными SWF файлами - например, с помощью ExternalInterface class-- требует, чтобы были связаны как с файлом HTML, так и с SWF-файлом , находящимся в изолированной локальной сети . Это связано с тем, что локальные модели безопасности для браузеров отличаются от от локальной безопасности Flash Player .

И это то, что он говорит о локальной доверенной песочнице:

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

Так как инсталлятор или пользователь должен поставить швейцарские франки в к локальной доверенному-песочнице AFAICT ..

+1

примечание: ~ hack упомянутый [здесь] (http://xs-sniper.com/blog/2011/01/04/bypassing-flash%E2%80%99s-local-with-filesystem- песочница /) – erikvold

3

По умолчанию ExternalInterface выдаст ошибку безопасности # 2060, если вы попытаетесь использовать ее из файла: //. Однако, если вы добавите опцию <param name="allowscriptaccess" value="always"/> для своего встраивания, она должна иметь возможность разговаривать с JavaScript.

docs on ExternalInterface ссылается на это в документации по исключению для addCallback() и call().

EDIT: После обсуждения этого далее в комментариях ниже, кажется, что, хотя это работает для меня на Mac, оно не работает в Windows. Ответ Эрика дает более подробную информацию о том, почему это не удается.

+0

поэтому использование '' предотвращает ошибку безопасности? – erikvold

+0

Да, у меня есть опыт. Документы ссылаются на это, а также на использование 'flash.system.Security.allowDomain (sourceDomain)' (обновленный мой ответ по ссылке, перейдите к методу addCallback). –

+0

, поэтому вы использовали 'flash.system.Security.allowDomain (sourceDomain)' внутри ActionScript, чтобы это работало в 'файле:'? – erikvold

Смежные вопросы