В пакете 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