2008-11-20 3 views
4

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

************* Security Sandbox Нарушение ********* Подключение к файла: /// C |/Documents% 20 и% 20Settings/Kevin.PC885314341208/Desktop/Import% 20.txt/StockData/1.txt halted - не разрешено с file: /// C | /Documents%20and%20Settings/Kevin.PC885314341208/Desktop/Import% 20.txt/import.swf

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

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

ответ

4

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

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

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

+0

Запуск swf из Flash IDE фактически запускает его в привилегированном режиме: он имеет доступ к локальным и сетевым ресурсам. Это когда вы запускаете его в автономном flash-плеере, чтобы он мог получить доступ только к одному из локальных или сетевых ресурсов. – aaaidan 2008-12-01 02:23:35

0

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

+0

В свойствах проекта FlashDevelop (на вкладке «Параметры компилятора») есть параметр «Использовать сетевые службы». Если вы установите для этого значение true, вы можете получить доступ ТОЛЬКО к интернету, а false разрешает ТОЛЬКО локальные файлы. Не может быть и того, и другого. – aaaidan 2008-12-01 02:25:33

+0

Причина, по которой он работает в «встроенном» проигрывателе, заключается в том, что он, вероятно, работает в «привилегированном режиме», что обеспечивает доступ как к локальным, так и к сетевым ресурсам. Этот режим доступен только во время разработки, поэтому вы не можете полагаться на него для развертывания. – aaaidan 2008-12-01 02:32:53

2

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

11

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

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

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

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

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