User's collector

Внимание!   Данная опция будет доступна только после того, как вы авторизуетесь.
   запомнить меня 

Если вы являетесь (не скажу, что счастливым) обладателем Flex Builder IDE, то эту статью вам читать не обязательно, поскольку с описываемой в ней проблемой вы не столкнетесь (хотя о том, почему не столкнетесь, вы сможете узнать только, если дочитаете ее до конца). Однако если вы сами собрали для себя среду разработки на основе Open Source редактора, вроде FlashDevelop, и бесплатной Flex SDK, то описываемые в статье манипуляции окажутся для вас весьма полезными.

Итак, в чем заключается проблема? Проблема заключается в том, что вы не сможете тестировать локально свои приложения, если их функционал выходит за рамки песочницы безопасности Flash Player. Допустим, вы разрабатываете какой-либо проект, в котором SWF-ролик должен взаимодействовать с JavaScript на странице посредством ExternalInterface либо загружать данные с удаленного домена. Flash Player расценивает подобные операции как потенциально опасные и попросту блокирует их. При этом он может даже ничего вам не сообщить. Поэтому человек, впервые столкнувшийся с подобной проблемой, может потратить большое количество времени на то, чтобы добраться, наконец, до ее истинных причин.

Чтобы решить эту проблему, нужно добавить ваш ролик, или папку, в которой находится ваш ролик, в доверенную зону Flash Player. Существуют два способа сделать это:

  1. Добавить папку в доверенную зону какого-то конкретного пользователя системы (User Flash Player Trust directory).
  2. Добавить папку в доверенную зону всех пользователей системы (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 мы должны указать имя пользователя, для которого мы добавляем эти пути в доверенную зону. Синтаксис этого файла предельно прост — вы должны помнить всего два правила:

  1. Каждый новый путь к файлу или папке должен быть записан с новой строки.
  2. Комментарии помечаются символом решетки «#».

В качестве примера приведу содержимое файла C:\Documents and Settings\Yuri\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust\FlashDevelop.cfg, который в настоящий момент находится у меня на компьютере:

CODE:
  1. # Добавляем директорию с проектами FlashDevelop,
  2. # в доверенную зону Flash Player.
  3. 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.

На этом все. Кратчайшего вам дебага!

12 комментариев

Теги: