Безопасность Песочница в AS3 - PullRequest
4 голосов
/ 20 ноября 2008

Что такое нарушение в изолированной программной среде безопасности и как его переопределить? Я делаю проект во FlashDevelop, и сегодня он не будет загружать внешние файлы, даже если это было ранее. Это дает следующий вывод:

************* Security Sandbox Violation ********* Подключение к Файл: /// C | /Documents%20and%20Settings/Kevin.PC885314341208/Desktop/Import%20.txt/StockData/1.txt остановлено - запрещено Файл: /// C | /Documents%20and%20Settings/Kevin.PC885314341208/Desktop/Import%20.txt/import.swf

Надеюсь, это не серьезная проблема.

Спасибо за любую помощь.

Ответы [ 4 ]

11 голосов
/ 01 декабря 2008

Сообщение об ошибке, которое вы опубликовали, показывает, что вы пытаетесь загрузить локальный файл из локального SWF. Эта ошибка может быть исправлена ​​для вашего сценария.

В FlashDevelop установите для «Использовать сетевые службы» значение false (Свойства проекта -> вкладка «Параметры компилятора»). Это предотвратит доступ SWF к Интернету, но позволит загружать локальные файлы. Установка в true позволит доступ в интернет, но не доступ к локальным файлам.

Во Flash этот параметр находится в разделе «Параметры публикации», вкладка «Flash». Он называется «Безопасность локального воспроизведения», а настройки - «Доступ только к локальным файлам» или «Доступ только к сети». Это та же настройка, что и в FlashDevelop, просто другое имя.

Вы также можете переключить флаг «Использовать сеть» SWF-файла после публикации / компиляции с помощью бесплатного + открытого Adobe Content Updater .

.
4 голосов
/ 20 ноября 2008

Вы загружаете локальный файл, что запрещено. Однако, когда вы разрабатываете это, вы, конечно, можете это разрешить.

Добавьте папку вашего проекта в надежные расположения: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

Изменить: Я мог бы добавить, что если вы запустите его с отключенной сетью, он будет работать (это для целей разработки). Это происходит, например, при запуске из Flash IDE, что объясняет, почему это могло сработать раньше?

2 голосов
/ 21 ноября 2008

Вы не можете загружать файлы рабочего стола, когда пытаетесь запустить SWF через веб-браузер. Flash не дает вам доступа к локальному жесткому диску, так как это будет серьезной проблемой безопасности. Вам нужно будет где-то разместить эти файлы на сервере и передать Flash прямой URL.

0 голосов
/ 21 ноября 2008

OK. Я заставил его работать, опубликовав его с помощью встроенного в FlashDevelop Flashplayer (я не знаю, как это описать лучше). Я не смог использовать настройки безопасности, предложенные Антти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...