Интерфейсы API в ActionScript 3.0

Выполнение внешних сценариев и доступ к URL-адресам (посредством HTTP URLs, mailto: и т. д.) осуществляются с помощью следующих интерфейсов API в ActionScript 3.0:

  • Функция flash.system.fscommand()
  • Метод ExternalInterface.call()
  • Функция flash.net.navigateToURL()

Если SWF-файл выполняется локально, вызовы интерфейса API успешны только если SWF-файл и содержащие его веб-страницы находятся доверенной локальной «песочнице». Вызов этих команд не удается, если содержимое находится в локальной «песочнице» для работы с сетью или в локальной «песочнице» для работы с файлами.

Параметр AllowScriptAccess в коде HTML, с помощью которого загружается файл SWF, управляет способностью исходящего доступа к URL из файла SWF. Этот параметр следует задать внутри тега PARAM или EMBED. Если для параметра AllowScriptAccess значение не задано, обмен данными между файлом SWF и страницей HTML может осуществляться при их наличии на одном и том же домене.

Параметру AllowScriptAccess может быть присвоено одно из трех возможных значений: always, sameDomain или never:

  • Если для параметра AllowScriptAccess задано значение always, обмен данными может осуществляться между файлом SWF и страницей HTML, в которую он встроен. Это правило действует, даже если этот SWF-файл находится на другом домене.
  • Если для параметра AllowScriptAccess задано значение sameDomain, обмен данными может осуществляться между файлом SWF и страницей HTML, в которую встроен этот SWF-файл, при условии что он находится на том же домене. Это значение является значением по умолчанию для AllowScriptAccess. Используйте этот параметр, если требуется, чтобы SWF-файл с одного домена не мог обращаться к сценарию HTML-страницы на другом домене. Или, не устанавливайте значение для AllowScriptAccess, 
  • Если для параметра AllowScriptAccess задано значение never, обмен данными между файлом SWF и страницей HTML невозможен. Использование этого значения не рекомендуется, в нем нет необходимости, если вы не размещаете сомнительные SWF-файлы на своем собственном домене. При необходимости размещать сомнительные SWF-файлы компания Adobe рекомендует создать отдельный поддомен и разместить на нем все сомнительное содержимое.

Использование функции navigateToURL()

В дополнение к параметру защиты, заданному параметром allowScriptAccess (см. выше), у функции navigateToURL() есть второй дополнительный параметр. С помощью параметра target («цель») можно указать имя окна или кадра HTML, в которые требуется отправить запрос URL. К таким запросам применяются дополнительные ограничения по безопасности. Ограничения варьируются в зависимости от того, используется ли функция navigateToURL() в качестве сценария или выражения сценария не используется.

К выражениям сценарий, например navigateToURL(JavaScript: alert — приветствие во Flash Player), применяются следующие правила.

  • Если SWF-файл находится в локальном доверенном файле, запрос выполняется успешно.
  • Если целью является HTML-страница, в которую встроен SWF-файл, применяются правила allowScriptAccess, описанные выше.
  • Если цель имеет содержимое, загруженное с того же домена, что и SWF-файл, запрос выполняется успешно.
  • Если цель имеет содержимое, загруженное с другого домена, и не выполнены предыдущие два условия, запрос не выполняется.

Для выражений без сценария (HTTP, HTTPS, mailto: и т. д.), запрос не выполняется при следующих условиях:

  • Целью является одно из особых ключевых слов "_top" или "_parent" и
  • SWF-файл встроен в веб-страницу, размещенную на другом домене, и
  • SWF-файл встроен с использованием значения параметра allowScriptAccess, отличного от always.

 

Ключевые слова: AllowScriptAccess, Flash Player, Flash, Flex, fscommand, ExternalInterface, navigateToURL, песочница; tn_16494

Эта работа лицензируется в соответствии с лицензией Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported  На посты, размещаемые в Twitter™ и Facebook, условия Creative Commons не распространяются.

Правовые уведомления   |   Политика конфиденциальности в сети Интернет