Если вы являетесь (не скажу, что счастливым) обладателем Flex Builder IDE, то эту статью вам читать не обязательно, поскольку с описываемой в ней проблемой вы не столкнетесь (хотя о том, почему не столкнетесь, вы сможете узнать только, если дочитаете ее до конца). Однако если вы сами собрали для себя среду разработки на основе Open Source редактора, вроде FlashDevelop, и бесплатной Flex SDK, то описываемые в статье манипуляции окажутся для вас весьма полезными.
Итак, в чем заключается проблема? Проблема заключается в том, что вы не сможете тестировать локально свои приложения, если их функционал выходит за рамки песочницы безопасности Flash Player. Допустим, вы разрабатываете какой-либо проект, в котором SWF-ролик должен взаимодействовать с JavaScript на странице посредством ExternalInterface либо загружать данные с удаленного домена. Flash Player расценивает подобные операции как потенциально опасные и попросту блокирует их. При этом он может даже ничего вам не сообщить. Поэтому человек, впервые столкнувшийся с подобной проблемой, может потратить большое количество времени на то, чтобы добраться, наконец, до ее истинных причин.
Чтобы решить эту проблему, нужно добавить ваш ролик, или папку, в которой находится ваш ролик, в доверенную зону Flash Player. Существуют два способа сделать это:
- Добавить папку в доверенную зону какого-то конкретного пользователя системы (User Flash Player Trust directory).
- Добавить папку в доверенную зону всех пользователей системы (Global Flash Player Trust directory).
Первый вариант довольно легко достигается посредством использования Setting Manager. Для этого переходим на специальную страницу менеджера настроек, в выпадающем списке «Edit locations…» выбираем пункт «Add location…» и указываем путь до SWF-ролика или папки с роликом.
Так же можно вручную создать файл SOMETHING.cfg (вместо SOMETHING написать все, что угодно), указать в нем доверенные директории или файлы и поместить этот файл в одну из следующих папок:
- для пользователей Windows:
C:\Documents and Settings\USER\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust\; - для пользователей Mac OS:
/Users/USER/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust.
Вместо USER мы должны указать имя пользователя, для которого мы добавляем эти пути в доверенную зону. Синтаксис этого файла предельно прост — вы должны помнить всего два правила:
- Каждый новый путь к файлу или папке должен быть записан с новой строки.
- Комментарии помечаются символом решетки «#».
В качестве примера приведу содержимое файла C:\Documents and Settings\Yuri\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust\FlashDevelop.cfg, который в настоящий момент находится у меня на компьютере:
-
# Добавляем директорию с проектами FlashDevelop,
-
# в доверенную зону Flash Player.
-
D:\Workspace_FD
Теперь поясню, почему пользователи Flex Builder никогда не столкнутся с описываемой в этой статье проблемой. Все дело в том, что в папке FlashPlayerTrust так же можно обнаружить файл flexbuilder.cfg, в котором Flex Builder совершенно таким же образом прописывает пути к своим папкам для хранения проектов. Поэтому все SWF-файлы, присутствующие в этих папках, автоматически попадают в доверенную зону.
Но что делать, если вы хотите добавить какой-либо локальный путь в доверенную зону всех пользователей текущего компьютера? Нужно точно таким же способом создать файл со списком доверяемых путей, но добавить его нужно уже в Global Flash Player Trust directory, действия которой будет распространяться на всех пользователей системы. Эта директория находится в следующих местах:
- для пользователей Windows:
C:\windows\system32\Macromed\Flash\FlashPlayerTrust; - для пользователей Mac OS:
/Library/Application Support/Macromedia/FlashPlayerTrust.
На этом все. Кратчайшего вам дебага!



PS: ложим его в папку проекта и пускаем.