В пакете flash.system содержится одна функция уровня пакета
fscommand()
, которая облегчает процесс обмена данными между SWF-файлом и его контейнером.Функция | Определено | ||
---|---|---|---|
Обеспечивает взаимодействие SWF-файла с проигрывателем Flash Player или программой, содержащей Flash Player, например web-браузером. | flash.system |
fscommand | () | функция |
public function fscommand(command:String, args:String = ""):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Обеспечивает взаимодействие SWF-файла с проигрывателем Flash Player или программой, содержащей Flash Player, например web-браузером. Чтобы передавать сообщения в Director или в Visual Basic, Visual C++ и другие программы, способные вмещать управляющие элементы ActiveX, можно также использовать функцию fscommand()
.
Функция fscommand()
обеспечивает взаимодействие SWF-файла со сценарием на web-странице. Но доступ к сценариям контролируется параметрами allowScriptAccess
для web-страниц. (Этот атрибут устанавливается в коде HTML, встроенном в SWF-файл. Например, в тег PARAM
для Internet Explorer или тег EMBED
для Netscape.)
- Если свойство
allowScriptAccess
имеет значениеsameDomain
(по умолчанию), работа со сценариями разрешена только для SWF-файлов, находящихся в том же домене, что и web-страница. - Если свойство
allowScriptAccess
имеет значениеalways
, SWF-может обращаться к HTML-странице, в которую он встроен, даже если он находится на другом домене. - Если свойство
allowScriptAccess
имеет значениеnever
, SWF-файл не может обращаться ни к каким HTML-страницам. Обратите внимание, что использование этого значения не рекомендуется. Оно не требуется, если в вашем собственном домене не обслуживаются недоверенные SWF-файлы. В случае необходимости обслуживать недоверенный SWF-файлы Adobe рекомендует создать отдельный субдомен, на который следует помещать все недоверенное содержимое.
Можно запретить использование SWF-файлом этого метода путем установки параметра allowNetworking
для тегов object
и embed
на странице HTML, содержащей SWF-содержимое.
Функция fscommand()
не разрешена, если вызывающий SWF-файл находится вне локальной файловой системы или изолированной сетевой среды, а содержащая его страница HTML находится не в доверенной изолированной среде.
Дополнительные сведения о безопасности см. в разделе центра разработчиков Flash Player Безопасность.
Применение 1: чтобы использовать функцию fscommand()
для отправки сообщения проигрывателю Flash Player, необходимо использовать предварительно определенные команды и параметры. В следующей таблице показаны значения, которые можно указать для передаваемых с функцией fscommand()
параметров command
и args
. Эти значения управляют SWF-файлам, воспроизводимыми в проигрывателе Flash Player, включая проекторы. (Проектором называют SWF-файл, сохраненный в формате, который позволяет выполнять его в автономном приложении, то есть, не используя проигрыватель Flash Player.)
Команда | Параметр (args) | Цель |
---|---|---|
quit | Не задан | Закрывает проектор. |
fullscreen | true или false | Установка значения true переводит проигрыватель Flash Player в полноэкранный режим работы. Установка значения false возвращает проигрыватель в обычный режим работы с отображением меню. |
allowscale | true или false | Установка значения false задает режим проигрывателя, в котором SWF-файл всегда воспроизводится в окне исходного размера и никогда не масштабируется. Установка значения true заставляет SWF-файл масштабироваться в проигрывателе до 100%. |
showmenu | true или false | Установка значения true включает полный набор команд в контекстное меню. Установка значения false скрывает все команды контекстного меню, за исключением пунктов «О Flash Player» и «Параметры». |
exec | Путь к приложению | Выполняет приложение из проектора. |
trapallkeys | true или false | Установка значения true отправляет все связанные с клавишами события, включая клавиши быстрого вызова, обработчику onClipEvent(keyDown/keyUp) в проигрывателе Flash Player. |
Не все из перечисленных в таблице команд доступны во всех приложениях.
- Ни одна из этих команд не доступна в веб-проигрывателях.
- Все команды доступны в автономных приложениях проектора.
- Приложения AIR должны использовать класс flash.desktop.NativeApplication для аналогичных функций, таких как
NativeApplication.nativeApplication.exit()
вместоfscommand("quit")
. - Только команды
allowscale
иexec
доступны в проигрывателях тестовых роликов.
Команда exec
может содержать только символы A-Z, a-z, 0-9, точку (.) и подчеркивание (_). Команда exec
выполняется только в подкаталоге fscommand. Другими словами, если для вызова приложения используется команда exec
, это приложение должно находиться в подкаталоге с названием fscommand. Команда exec
работает только из файла проектора Adobe Flash.
Применение 2: чтобы использовать функцию fscommand()
для отправки сообщения с использованием языка сценариев, например JavaScript в web-браузере, можно передать любые два параметра с помощью параметров command
и args
. Эти параметры могут быть строками или выражениями, они используются в функции JavaScript, которая обрабатывает или перехватывает функцию fscommand()
.
В web-браузере функция fscommand()
вызывает функцию JavaScript moviename_DoFScommand
, которая находится на web-странице, содержащей SWF-файл. Для moviename
укажите имя объекта Adobe Flash, используемого в качестве атрибута NAME
для тега EMBED
или свойства ID тега OBJECT
. Если SWF-файлу назначается имя myMovie, вызывается функция JavaScript myMovie_DoFScommand
.
На web-странице, содержащей SWF-файл, установите атрибут allowScriptAccess
, разрешив или запретив возможность доступа к web-странице из этого SWF-файла, как описано выше. (Этот атрибут устанавливается в коде HTML, встроенном в SWF-файл. Например, в тег PARAM
для Internet Explorer или тег EMBED
для Netscape.)
В приложении Flash Player версии 10 и старше, запущенном в браузере, при использовании этого метода в программных средствах открытие всплывающего окна может не выполняться. Различные браузеры (и конфигурации браузеров) могут блокировать всплывающие окна в любое время; невозможно гарантировать, что какое-либо всплывающее окно будет отображаться. Однако для повышения вероятности открытия всплывающего окна используйте этот метод только в коде, который выполняется в качестве непосредственного результата действия пользователя (например, в обработчике событий для события щелчка мышью или нажатия клавиши).
Применение 3: функция fscommand()
может отправлять сообщения в программу Director (Adobe Macromedia Director). Эти сообщения интерпретируются в Lingo (языке сценариев, используемом в Director) как строки, события или выполняемый код Lingo. Если сообщение является строкой или событием, необходимо написать код Lingo для получения сообщения из функции fscommand()
и выполнить это действие в Director. Дополнительные сведения см. в центре поддержки Director по адресу www.adobe.com/support/director/.
Применение 4: в VisualBasic, Visual C++ и других программах, в которых можно размещать управляющие элементы ActiveX, функция fscommand()
отправляет событие VB с двумя строками, которые могут обрабатываться языком программирования, используемом в среде. Дополнительные сведения можно найти по ключевым словам «Flash method» в центре поддержки Adobe Flash по адресу www.adobe.com/support/flash/.
Примечание. Класс ExternalInterface обеспечивает лучшую функциональность для взаимодействия между JavaScript и ActionScript (применение 2), а также между ActionScript и VisualBasic, Visual C++ или другими программами, которые могут содержать управляющие элементы ActiveX (применение 4). Необходимо продолжать использовать функцию fscommand()
для отправки сообщений в проигрыватель Flash Player (применение 1) и программу Director (применение 3).
Параметры
command:String — Строка, переданная главному приложению в различных целях, или команда, переданная проигрывателю Flash Player.
| |
args:String (default = " ") — Строка, переданная главному приложению в различных целях, или значение, переданное проигрывателю Flash Player.
|
Выдает
Error — Если вызов функции не выполняется в ответ на действие пользователя, например событие мыши или нажатие клавиши.
|
Связанные элементы API
Пример ( Использование этого примера )
fscommand()
может использоваться для перевода проигрывателя Flash Player в полноэкранный режим работы и разрешения масштабирования. Затем к рабочей области добавляется оранжевый прямоугольник с помощью методаdraw()
. В методе draw()
, добавляется прослушиватель события click
с именем clickHandler()
, который реагирует на события click
, вызывая завершение работы Flash Player с помощью другого обращения к функции fscommand().
Примечание. Этот пример должен выполняться в автономном проигрывателе Flash Player, но не в web-браузере.
package { import flash.display.Sprite; import flash.text.TextField; import flash.system.fscommand; import flash.events.MouseEvent; public class FSCommandExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 100; public function FSCommandExample() { fscommand("fullscreen", "true"); fscommand("allowscale", "false"); draw(); } private function clickHandler(event:MouseEvent):void { fscommand("quit"); trace("clickHandler"); } private function draw():void { var child:Sprite = new Sprite(); child.graphics.beginFill(bgColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); child.buttonMode = true; addEventListener(MouseEvent.CLICK, clickHandler); var label:TextField = new TextField(); label.text = "quit"; label.selectable = false; label.mouseEnabled = false; child.addChild(label); addChild(child); } } }
Tue Jun 12 2018, 11:50 AM Z