flash.systemImageDecodingPolicy Класс ImageDecodingPolicy определяет значения свойства imageDecodingPolicy класса LoaderContext.Класс ImageDecodingPolicy определяет значения свойства imageDecodingPolicy класса LoaderContext. Object Класс ImageDecodingPolicy определяет значения свойства imageDecodingPolicy класса LoaderContext. LoaderContext.imageDecodingPolicyON_DEMAND Указывает на то, что загружаемое изображение не будет декодироваться, пока этого не потребуется.onDemandString Указывает на то, что загружаемое изображение не будет декодироваться, пока этого не потребуется. ON_LOAD Указывает на то, что изображение будет декодировано при загрузке до передачи сообщения complete.onLoadString Указывает на то, что изображение будет декодировано при загрузке до передачи сообщения complete. SystemUpdaterType Класс SystemUpdaterType предоставляет константы для обновления системы.Object Класс SystemUpdaterType предоставляет константы для обновления системы. Эти константы используются функцией SystemUpdater.update().

Примечание. API SystemUpdater поддерживается для стационарных компьютеров.

DRM Обновляет модуль DRM.drmString Обновляет модуль DRM. SYSTEM Обновляет саму среду выполнения проигрывателя.systemString Обновляет саму среду выполнения проигрывателя.
IMEConversionMode Этот класс содержит постоянные для использования со свойством IME.conversionMode.Object Этот класс содержит постоянные для использования со свойством IME.conversionMode. Установка для свойства conversionMode значений ALPHANUMERIC_FULL или JAPANESE_KATAKANA_FULL заставляет проигрыватель использовать шрифт полной ширины, а значений ALPHANUMERIC_HALF или JAPANESE_KATAKANA_HALF — шрифт половинной ширины. flash.system.IME.conversionModeALPHANUMERIC_FULL Строка ALPHANUMERIC_FULL для использования со свойством IME.conversionMode.ALPHANUMERIC_FULLString Строка ALPHANUMERIC_FULL для использования со свойством IME.conversionMode. Эта константа используется со всеми редакторами IME. Используйте синтаксис IMEConversionMode.ALPHANUMERIC_FULL. flash.system.IME.conversionModeALPHANUMERIC_HALF Строка ALPHANUMERIC_HALF для использования со свойством IME.conversionMode.ALPHANUMERIC_HALFString Строка ALPHANUMERIC_HALF для использования со свойством IME.conversionMode. Эта константа используется со всеми редакторами IME. Используйте синтаксис IMEConversionMode.ALPHANUMERIC_HALF. flash.system.IME.conversionModeCHINESE Строка CHINESE для использования со свойством IME.conversionMode.CHINESEString Строка CHINESE для использования со свойством IME.conversionMode. Эта константа используется с редакторами IME для упрощенного и традиционного китайского языков. Используйте синтаксис IMEConversionMode.CHINESE. flash.system.IME.conversionModeJAPANESE_HIRAGANA Строка JAPANESE_HIRAGANA для использования со свойством IME.conversionMode.JAPANESE_HIRAGANAString Строка JAPANESE_HIRAGANA для использования со свойством IME.conversionMode. Эта константа используется со всеми редакторами IME для японского языка. Используйте синтаксис IMEConversionMode.JAPANESE_HIRAGANA. flash.system.IME.conversionModeJAPANESE_KATAKANA_FULL Строка JAPANESE_KATAKANA_FULL для использования со свойством IME.conversionMode.JAPANESE_KATAKANA_FULLString Строка JAPANESE_KATAKANA_FULL для использования со свойством IME.conversionMode. Эта константа используется со всеми редакторами IME для японского языка. Используйте синтаксис IMEConversionMode.JAPANESE_KATAKANA_FULL. flash.system.IME.conversionModeJAPANESE_KATAKANA_HALF СтрокаJAPANESE_KATAKANA_HALF для использования со свойством IME.conversionMode.JAPANESE_KATAKANA_HALFString СтрокаJAPANESE_KATAKANA_HALF для использования со свойством IME.conversionMode. Эта константа используется со всеми редакторами IME для японского языка. Используйте синтаксис IMEConversionMode.JAPANESE_KATAKANA_HALF. flash.system.IME.conversionModeKOREAN Строка KOREAN для использования со свойством IME.conversionMode.KOREANString Строка KOREAN для использования со свойством IME.conversionMode. Эта константа используется со всеми редакторами IME для корейского языка. Используйте синтаксис IMEConversionMode.KOREAN. flash.system.IME.conversionModeUNKNOWN Строка UNKNOWN, которая может возвращаться при вызове свойства IME.conversionMode.UNKNOWNString Строка UNKNOWN, которая может возвращаться при вызове свойства IME.conversionMode. Это значение не может быть установлено и возвращается только в том случае, если проигрыватель не может идентифицировать текущий активный редактор IME. Используйте синтаксис IMEConversionMode.UNKNOWN. flash.system.IME.conversionModeSecurityPanel Класс SecurityPanel передает значения, задающие отображение одной из панелей параметров защиты.Object Класс SecurityPanel передает значения, задающие отображение одной из панелей параметров защиты.

Этот класс содержит статические переменные, используемые с методом Security.showSettings(). Нельзя создать новые экземпляры класса SecurityPanel.

В следующем примере показано, как событие click для объекта Sprite может использоваться для отображения панели параметров локального хранилища в окне параметров проигрывателя Flash Player. К рабочей области добавляется оранжевый прямоугольник с помощью методаdraw(). В методе draw(), добавляется прослушиватель события click с именем clickHandler(), который драгирует на события click, вызывая открытие панели настроек локального хранилища в проигрывателе Flash Player. package { import flash.display.Sprite; import flash.text.TextField; import flash.events.*; import flash.system.Security; import flash.system.SecurityPanel; public class SecurityExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 100; public function SecurityExample() { draw(); } 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; var label:TextField = new TextField(); label.text = "settings"; label.selectable = false; label.mouseEnabled = false; child.addChild(label); child.addEventListener(MouseEvent.CLICK, clickHandler); addChild(child); } private function clickHandler(event:MouseEvent):void { Security.showSettings(SecurityPanel.LOCAL_STORAGE); } } }
CAMERA При переходе к Security.showSettings() отображает панель камеры в окне параметров проигрывателя Flash Player.cameraString При переходе к Security.showSettings() отображает панель камеры в окне параметров проигрывателя Flash Player. Security.showSettings()DEFAULT При переходе к Security.showSettings() отображает панель, которая была открыта при последнем закрытии окна параметров проигрывателя Flash Player.defaultString При переходе к Security.showSettings() отображает панель, которая была открыта при последнем закрытии окна параметров проигрывателя Flash Player. Security.showSettings()DISPLAY При переходе к Security.showSettings() отображает панель отображения в окне параметров проигрывателя Flash Player.displayString При переходе к Security.showSettings() отображает панель отображения в окне параметров проигрывателя Flash Player. Security.showSettings()LOCAL_STORAGE При переходе к Security.showSettings() отображает панель параметров локального хранилища в окне параметров проигрывателя Flash Player.localStorageString При переходе к Security.showSettings() отображает панель параметров локального хранилища в окне параметров проигрывателя Flash Player. Security.showSettings()MICROPHONE При переходе к Security.showSettings() отображает панель микрофона в окне параметров проигрывателя Flash Player.microphoneString При переходе к Security.showSettings() отображает панель микрофона в окне параметров проигрывателя Flash Player. Security.showSettings()PRIVACY При переходе к Security.showSettings() отображает панель параметров конфиденциальности в окне параметров проигрывателя Flash Player.privacyString При переходе к Security.showSettings() отображает панель параметров конфиденциальности в окне параметров проигрывателя Flash Player. Security.showSettings()SETTINGS_MANAGER При переходе к Security.showSettings() отображает диспетчер параметров (в отдельном окне браузера).settingsManagerString При переходе к Security.showSettings() отображает диспетчер параметров (в отдельном окне браузера). Security.showSettings()
TouchscreenType Класс TouchscreenType перечисляет значения для различных типов сенсорных экранов.Object Класс TouchscreenType перечисляет значения для различных типов сенсорных экранов.

Используйте значения, определенные классом TouchscreenType вместе со свойством Capabilities.touchscreenType.

Следующий пример представляет собой простой тест, отображающий текущее состояние клавиш Num Lock и Caps Lock, а также тип клавиатуры и сенсорного экрана в среде выполнения. При тестировании этого примера щелкните текстовое поле, чтобы увидеть значения свойств: import flash.events.~~; import flash.display.~~; import flash.ui.Keyboard; import flash.system.Capabilities; import flash.text.TextField; var keyboardInfoTxt:TextField = new TextField(); keyboardInfoTxt.x = 30; keyboardInfoTxt.y = 50; keyboardInfoTxt.width = 300; keyboardInfoTxt.height = 100; keyboardInfoTxt.border = true; addChild(keyboardInfoTxt); addEventListener (MouseEvent.CLICK, getScreenKeyboardType); function getScreenKeyboardType(e:MouseEvent):void{ keyboardInfoTxt.text= "Caps Lock is : " + String(flash.ui.Keyboard.capsLock)+ "\n" + "Num Lock is : " + String(flash.ui.Keyboard.numLock) +"\n" + "Has Virtual Keyboard : " + String(flash.ui.Keyboard.hasVirtualKeyboard) + "\n" + "Physical Keyboard Type : " + flash.ui.Keyboard.physicalKeyboardType + "\n" + "flash.system.Capabilities.touchscreenType is : " + flash.system.Capabilities.touchscreenType; }
Capabilities.touchscreenTypeflash.ui.Mouse.supportsCursorFINGER Сенсорный экран, предназначенный для реагирования на касания пальцев.fingerString Сенсорный экран, предназначенный для реагирования на касания пальцев. NONE У компьютера или устройства нет поддерживаемого сенсорного экрана.noneString У компьютера или устройства нет поддерживаемого сенсорного экрана. STYLUS Сенсорный экран, предназначенный для использования с сенсорным пером.stylusString Сенсорный экран, предназначенный для использования с сенсорным пером.
ApplicationDomain Класс ApplicationDomain является контейнером для дискретных групп определений классов.Object Класс ApplicationDomain является контейнером для дискретных групп определений классов. Домены приложения используются для разделения классов в одном домене безопасности. Они обеспечивают возможность наличия нескольких определений одного класса и позволяют нижестоящим элементам многократно использовать определения вышестоящих элементов.

Домены приложений используются, если внешний SWF-файл загружается с помощью класса Loader. Все определения ActionScript 3.0 в загруженном SWF-файле хранятся в домене приложения, который указывается свойством applicationDomain объекта LoaderContext, передаваемого в параметре context объекта load() класса Loader или метода loadBytes(). Объект LoaderInfo также содержит свойство applicationDomain, доступное только для чтения.

Все программные коды в SWF-файле определены для существования в домене приложения. Текущим доменом приложения является домен, где выполняется основное приложение. Системный домен содержит все домены приложений, включая текущий домен, и это означает, что он содержит все классы проигрывателя Flash Player.

Каждый домен приложения, исключая системный домен, обладает связанным родительским доменом. Родительский домен домена главного приложения является системным доменом. Загруженные классы определяются только в том случае, если они уже не определены в своих родительских классах. Нельзя перезаписать определение загруженного класса новым определением.

Примеры использования доменов приложений см. в Руководстве разработчика по ActionScript 3.0.

Функция конструктора ApplicationDomain() позволяет создавать объект ApplicationDomain.

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

Примечания.

  • Поскольку класс ClassLoader загружает SWF-файл, необходимо обеспечивать локальную безопасность на уровне файловой системы.
  • Для выполнения этого примера необходимо наличие SWF-файла с именем RuntimeClasses.swf в той же папке, что и файл ApplicationDomainExample.swf.

Начните создавать файл RuntimeClasses.swf с помощью следующего программного кода:

package { import flash.display.Sprite; public class RuntimeClasses extends Sprite { public function RuntimeClasses() {} public function greet():String { return("Hello World"); } } }

Затем выполните следующий программный код:

package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.text.TextField; public class ApplicationDomainExample extends Sprite { private var loader:ClassLoader; private var tf:TextField = new TextField(); public function ApplicationDomainExample() { addChild(tf); loader = new ClassLoader(); loader.addEventListener(ClassLoader.LOAD_ERROR,loadErrorHandler); loader.addEventListener(ClassLoader.CLASS_LOADED,classLoadedHandler); loader.load("RuntimeClasses.swf"); } private function loadErrorHandler(e:Event):void { tf.text = "Load failed"; throw new IllegalOperationError("Cannot load the specified file."); } private function classLoadedHandler(e:Event):void { var runtimeClassRef:Class = loader.getClass("RuntimeClasses"); var greeter:Object = new runtimeClassRef(); tf.text = greeter.greet(); } } } import flash.display.Loader; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; import flash.net.URLRequest; import flash.system.ApplicationDomain; import flash.system.LoaderContext; class ClassLoader extends EventDispatcher { public static var CLASS_LOADED:String = "classLoaded"; public static var LOAD_ERROR:String = "loadError"; private var loader:Loader; private var swfLib:String; private var request:URLRequest; private var loadedClass:Class; public function ClassLoader() { loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler); } public function load(lib:String):void { swfLib = lib; request = new URLRequest(swfLib); var context:LoaderContext = new LoaderContext(); context.applicationDomain=ApplicationDomain.currentDomain; loader.load(request,context); } public function getClass(className:String):Class { try { return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class; } catch (e:Error) { throw new IllegalOperationError(className + " definition not found in " + swfLib); } return null; } private function completeHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.CLASS_LOADED)); } private function ioErrorHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.LOAD_ERROR)); } private function securityErrorHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.LOAD_ERROR)); } }
Если в нескольких SWF-файлах содержатся откомпилированные классы с одним и тем же именем, но по-разному реализованные, можно отделить классы загруженных извне SWF-файлов от классов каждого последующего примера. Ранее дочернему SWF-файлу предписывалось использовать ApplicationDomain.currentDomain. В этом случае новый домен приложения ApplicationDomain создается таким образом, что свойства и методы класса Greeter любого SWF-файла, загружаемого вторым, не будут замещать свойства и методы первого класса Greeter. Это можно проверить изменив свойство context.applicationDomain в методе load для ClassLoader.

Примечания.

  • Поскольку класс ClassLoader загружает SWF-файл, необходимо обеспечивать локальную безопасность на уровне файловой системы.
  • Для выполнения этого примера необходимо иметь два SWF-файла с названиями Greeter.swf, расположенными в папках en и es соответственно.

Создайте файл Greeter.as в каталоге en, используя следующий программный код:

package { import flash.display.Sprite; public class Greeter extends Sprite { public function Greeter() { } public function greet():String { return("Good Morning"); } } }

Затем создайте аналогичный файл Greeter.as в каталоге es:

package { import flash.display.Sprite; public class Greeter extends Sprite { public function Greeter() { } public function greet():String { return("Buenos Dias"); } } }

Скомпилируйте SWF-файлы для обоих случаев и затем выполните следующий программный код:

package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class ApplicationDomainExample2 extends Sprite { private var spanishGreeterLoader:ClassLoader; private var englishGreeterLoader:ClassLoader; private var tf:TextField = new TextField(); private var greetersLoaded:uint = 0; public function ApplicationDomainExample2() { tf.autoSize = TextFieldAutoSize.LEFT; addChild(tf); spanishGreeterLoader = new ClassLoader(); spanishGreeterLoader.addEventListener(ClassLoader.LOAD_ERROR,loadErrorHandler); spanishGreeterLoader.addEventListener(ClassLoader.CLASS_LOADED,classLoadedHandler); spanishGreeterLoader.load("es/Greeter.swf"); englishGreeterLoader = new ClassLoader(); englishGreeterLoader.addEventListener(ClassLoader.LOAD_ERROR,loadErrorHandler); englishGreeterLoader.addEventListener(ClassLoader.CLASS_LOADED,classLoadedHandler); englishGreeterLoader.load("en/Greeter.swf"); } private function loadErrorHandler(e:Event):void { tf.text = "Load failed"; throw new IllegalOperationError("Cannot load the specified file."); } private function classLoadedHandler(e:Event):void { greetersLoaded++; if(greetersLoaded == 2) { greet(); } } private function greet():void { var spanishGreeter:Class = spanishGreeterLoader.getClass("Greeter"); var englishGreeter:Class = englishGreeterLoader.getClass("Greeter"); var greeter1 = new spanishGreeter(); var greeter2 = new englishGreeter(); tf.text = greeter1.greet() + "\n" + greeter2.greet(); } } } import flash.display.Loader; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; import flash.net.URLRequest; import flash.system.ApplicationDomain; import flash.system.LoaderContext; class ClassLoader extends EventDispatcher { public static var CLASS_LOADED:String = "classLoaded"; public static var LOAD_ERROR:String = "loadError"; private var loader:Loader; private var swfLib:String; private var request:URLRequest; private var loadedClass:Class; public function ClassLoader() { loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler); } public function load(lib:String):void { swfLib = lib; request = new URLRequest(swfLib); var context:LoaderContext = new LoaderContext(); // context.applicationDomain = ApplicationDomain.currentDomain; context.applicationDomain = new ApplicationDomain(); loader.load(request,context); } public function getClass(className:String):Class { try { return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class; } catch (e:Error) { throw new IllegalOperationError(className + " definition not found in " + swfLib); } return null; } private function completeHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.CLASS_LOADED)); } private function ioErrorHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.LOAD_ERROR)); } private function securityErrorHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.LOAD_ERROR)); } }
flash.display.Loader.load()flash.display.Loader.loadBytes()flash.display.LoaderInfoflash.net.URLRequestflash.system.LoaderContextApplicationDomain Создает новый домен приложения.parentDomainflash.system:ApplicationDomainnullЕсли не указан родительский домен, родительским доменом для этого домена приложения становится системный домен. Создает новый домен приложения. getDefinition Получает общедоступное определение от указанного домена приложения.Общедоступного определения с указанным именем не существует. ReferenceErrorReferenceErrorОбъект связан с определением. ObjectnameStringИмя определения. Получает общедоступное определение от указанного домена приложения. Это определение может быть определением класса, пространства имен или функции. hasDefinition Проверяет существование общедоступного определения в указанном домене приложения.Устанавливается значениеtrue, если указанное определение существует; в противном случае устанавливается значение false. BooleannameStringИмя определения. Проверяет существование общедоступного определения в указанном домене приложения. Это определение может быть определением класса, пространства имен или функции. MIN_DOMAIN_MEMORY_LENGTH Определяет минимальную длину объекта памяти, необходимую для использования в качестве ApplicationDomain.domainMemory.uint Определяет минимальную длину объекта памяти, необходимую для использования в качестве ApplicationDomain.domainMemory. currentDomain Определяет текущий домен приложения, в котором выполняется код пользователя.flash.system:ApplicationDomain Определяет текущий домен приложения, в котором выполняется код пользователя. domainMemory Определяет и задает объект, на котором будут выполняться операции глобальной памяти домена в рамках данного ApplicationDomain.flash.utils:ByteArray Определяет и задает объект, на котором будут выполняться операции глобальной памяти домена в рамках данного ApplicationDomain. parentDomain Определяет родительский домен данного домена приложения.flash.system:ApplicationDomain Определяет родительский домен данного домена приложения.
Security Класс Security позволяет задать способ взаимодействия содержимого в различных доменах.Object Класс Security позволяет задать способ взаимодействия содержимого в различных доменах. В следующем примере показано, как событие click для объекта Sprite может использоваться для отображения панели параметров локального хранилища в окне параметров проигрывателя Flash Player. К рабочей области добавляется оранжевый прямоугольник с помощью методаdraw(). В методе draw(), добавляется прослушиватель события click с именем clickHandler(), который драгирует на события click, вызывая открытие панели настроек локального хранилища в проигрывателе Flash Player. package { import flash.display.Sprite; import flash.text.TextField; import flash.events.*; import flash.system.Security; import flash.system.SecurityPanel; public class SecurityExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 100; public function SecurityExample() { draw(); } 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; var label:TextField = new TextField(); label.text = "settings"; label.selectable = false; label.mouseEnabled = false; child.addChild(label); child.addEventListener(MouseEvent.CLICK, clickHandler); addChild(child); } private function clickHandler(event:MouseEvent):void { Security.showSettings(SecurityPanel.LOCAL_STORAGE); } } } allowDomain Позволяет SWF-файлам в указанных доменах обращаться к объектам и переменным в SWF-файле, содержащем вызов allowDomain().При вызове этого метода из кода в изолированной среде безопасности приложения AIR порождается исключение SecurityError. Содержимое за пределами изолированной среды безопасности приложения не может выполнять перекрестные сценарии для находящегося в ней содержимого. SecurityErrorSecurityErrordomainsОдна или несколько строк, а также объектов URLRequest, указывающих домены, из которых требуется разрешить доступ. Можно указать особый домен «~~», чтобы разрешить доступ из всех доменов.

Во Flash Professional указание домена «~~» является единственным способом разрешения доступа к нелокальным SWF-файлам из локальных SWF-файлов, опубликованных с помощью инструмента разработки Adobe Flash с установленным для параметра «Безопасность локального воспроизведения» режимом «Предоставлен доступ только к сети».

Примечание. Подстановочное значение не поддерживается для субдоменов. Например, нельзя использовать значение ~~.foo.com для параметра domains. Хотя субдомен можно указать с использованием подстановочного значения в файле междоменной политики (как в случае с ~~.foo.com), это недопустимо для метода allowDomain().

Обеспечивает SWF- и HTML-файлам доступ к объектам и переменным в вызывающем SWF-файле.
Обеспечивает файлам SWF в указанных доменах доступ к объектам и переменным в файле SWF, содержащем вызовallowDomain().

Примечание. При вызове этого метода из кода в изолированной среде безопасности приложения AIR порождается исключение SecurityError. Содержимое за пределами домена защиты приложения не может выполнять перекрестные сценарии для находящегося в ней содержимого. Однако содержимое, находящееся за пределами изолированной программной среды приложения, может обращаться к содержимому в этой среде с помощью так называемого моста.

Если два SWF-файла размещаются на одном домене, например http://mysite.com/swfA.swf и http://mysite.com/swfB.swf, то swfA.swf может анализировать и модифицировать переменные, объекты, свойства, методы и прочее в swfB.swf и наоборот. Это называется выполнением сценариев между роликами или выполнением перекрестных сценариев.

Если два SWF-файла находятся в разных доменах, например http://siteA.com/swfA.swf и http://siteB.com/siteB.swf, то по умолчанию Flash Player не позволяет swfA.swf выполнять сценарии, связанные с swfB.swf, и наоборот. SWF-файл предоставляет доступ к SWF-файлам из других доменов путем вызова Security.allowDomain(). Это называется выполнением междоменных сценариев. Вызывая Security.allowDomain("siteA.com"), siteB.swf дает siteA.swf разрешение на выполнение сценариев.

При междоменном вызове важно знать о двух участвующих сторонах. В этой документации сторона, осуществляющая перекрестное выполнение сценариев, называется вызывающей стороной (обычно вызывающий SWF-файл), а другая сторона называется вызываемой стороной (обычно вызываемый SWF-файл). Если файл siteA.swf создает сценарий для стороны siteB.swf, файл siteA.swf является вызывающей стороной, а файл siteB.swf — вызываемой стороной.

Междоменные права доступа, которые задаются с использованием метода allowDomain(), являются несимметричными. В предыдущем сценарии файл siteA.swf может создавать сценарий для файла siteB.swf, но файл siteB.swf не может создавать сценарий для файла siteA.swf, поскольку в файле siteA.swf отсутствует обращение к методу allowDomain() для предоставления SWF-файлам в узле siteB.com разрешения на создания сценариев. Можно настроить симметричные права доступа путем создания обращения в обоих SWF-файлах к методу allowDomain().

Кроме защиты SWF-файлов от междоменного создания сценариев другими SWF-файлами, в приложении Flash Player предусмотрена защита SWF-файлов от междоменного создания сценариев с использованием файлов HTML. Создание сценариев из файлов HTML в SWF-файлах может выполняться с использованием функций браузеров более ранних версий, например SetVariable, или обратных вызовов в функции ExternalInterface.addCallback(). Если создание сценариев из файлов HTML в SWF-файлах выполняется между доменами, вызываемый SWF-файл должен обращаться к методу allowDomain(), как и в том случае, если вызывающей стороной является SWF-файл, или произойдет сбой операции.

При указании IP-адреса в качестве параметра для allowDomain() доступ всем сторонам, расположенным по указанному IP-адресу, предоставлен не будет. Благодаря этому можно разрешить доступ только стороне, которая содержит указанный IP-адрес в своем URL-адресе, а не имя домена, указывающее на этот IP-адрес.

Различия, характерные для версий

Правила междоменной защиты Flash Player изменяются от версии к версии. В следующей таблице приводится сводная информация о различиях.

Последние версии SWF участвуют в перекрестном выполнении сценариевНеобходимость allowDomain()?Необходимость allowInsecureDomain()?SWF-файл, который должен вызывать метод allowDomain() или allowInsecureDomain()Сведения, которые необходимо указать в allowDomain() или allowInsecureDomain()5 или более ранняяНетНетнетнет6Да, если сверхобласти не соответствуютНетВызываемый SWF-файл или любой SWF-файл с такой же сверхобластью, как и у вызываемого SWF-файла
  • Текстовый домен (mysite.com)
  • IP-адрес (192.168.1.1)
7Да, если отсутствует точное соответствие доменовДа, при выполнении доступа с HTTP к HTTPS (даже при точном соответствии доменов)Вызываемый SWF-файл или любой SWF-файл с доменом, точно соответствующим домену вызываемого SWF-файла
  • Текстовый домен (mysite.com)
  • IP-адрес (192.168.1.1)
8 и более поздних версийДа, если отсутствует точное соответствие доменовДа, при выполнении доступа с HTTP к HTTPS (даже при точном соответствии доменов)Вызываемый SWF-файл
  • Текстовый домен (mysite.com)
  • IP-адрес (192.168.1.1)
  • Подстановочный знак (~~)

Версиями, в которых можно управлять поведением Flash Player, являются версии SWF (опубликованные версии SWF-файла), но не версии приложения Flash Player. Например, когда в приложении Flash Player 8 воспроизводится SWF-файл, опубликованный для версии 7, применяется поведение, характерное для версии 7. Такой подход позволяет убедиться в том, что поведение Security.allowDomain() в развернутых SWF-файлах не изменится из-за обновлений проигрывателя.

В столбце с версиями в предыдущей таблице указана последняя версия SWF, которая задействована в операции перекрестного выполнения сценариев. Поведение Flash Player определяется в соответствии с версией вызывающего SWF-файла или вызываемого SWF-файла в зависимости от того, какая версия является новее.

В следующих параграфах приводятся дополнительные сведения об изменениях безопасности Flash Player, в которых задействован метод Security.allowDomain().

Версия 5. Ограничения на междоменное выполнение сценариев не накладываются.

Версия 6. Вводится защита междоменного выполнения сценариев. По умолчанию в приложении Flash Player междоменное выполнение сценариев запрещено; его можно разрешить с помощью метода Security.allowDomain(). Чтобы определить, находятся ли оба файла в одном домене, в приложении Flash Player используется сверхобласть каждого файла, которая представляет собой точное имя узла из URL-адреса файла, за исключением первого сегмента, но состоит как минимум из двух сегментов. Например, сверхобластью узла www.mysite.com является mysite.com. SWF-файлы с узлов www.mysite.com и store.mysite.com могут осуществлять перекрестное выполнение сценариев без вызова метода Security.allowDomain().

Версия 7. Соответствие сверхобластей заменено на точное соответствие доменов. Двум файлам разрешено перекрестное выполнение сценариев, только если имена узлов в их URL-адресах полностью идентичны; в противном случае необходимо вызвать метод Security.allowDomain(). По умолчанию файлам, загруженным с URL-адресов, отличных от HTTPS, запрещено выполнять сценарии в файлах, загруженных с URL-адресов HTTPS, даже если файлы загружены с полностью идентичного домена. Благодаря этому ограничению можно защитить файлы HTTPS, поскольку файл, отличный от HTTPS, подвержен изменениям при загрузке, а злоумышленно измененный файл, отличный от HTTPS, может повредить файл HTTPS, который в противном случае защищен от такого повреждения. Метод Security.allowInsecureDomain() используется, чтобы разрешить вызываемым SWF-файлам HTTPS свободно отключать это ограничение, но метод Security.allowInsecureDomain() использовать не рекомендуется.

Версия 8. Изменения представлены в двух основных областях:

  • Обращение к методу Security.allowDomain() теперь позволяет осуществлять операции междоменного выполнения сценариев, только если вызываемый SWF-файл является SWF-файлом, вызывающим метод Security.allowDomain(). Другими словами, доступ предоставляется только SWF-файлу, который вызывает метод Security.allowDomain(). В предыдущих версиях обращение к методу Security.allowDomain() позволяло разрешить перекрестное выполнение сценариев, в то время как вызываемый SWF-файл мог быть любым SWF-файлом в том же домене, что и SWF-файл, вызывающий метод Security.allowDomain(). Ранее обращение к методу Security.allowDomain() позволяло открыть весь домен вызывающего SWF-файла.
  • Добавлена поддержка значений подстановочного символа в методах Security.allowDomain("~~") и Security.allowInsecureDomain("~~"). Использование значения подстановочного символа (~~) позволяет разрешить операции перекрестного выполнения сценариев, если вызываемый файл является любым файлом, загруженным с любого узла. Подстановочный символ можно рассматривать как глобальное предоставление прав. Права доступа, предоставленные с использованием подстановочного символа, необходимы для включения определенных операций в соответствии с правилами безопасности локального файла. В частности, чтобы локальный SWF-файл с правами сетевого доступа мог выполнять сценарий в SWF-файле в Интернете, вызываемый интернет-файл SWF должен обращаться к методу Security.allowDomain("~~"), в котором указано, что источник локального SWF-файла неизвестен. (Если Интернет-файл SWF загружен с использованием адреса URL HTTPS, вместо этого интернет-файл SWF должен обращаться к методу Security.allowInsecureDomain("~~").)

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

В этой ситуации можно использовать свойство url объекта URLRequest, переданного в метод Loader.load(). Например, если загружен дочерний SWF-файл в родительский SWF-файл, можно получить доступ к свойству contentLoaderInfo объекта Loader для родительского SWF-файла:

Security.allowDomain(loader.contentLoaderInfo.url)

Для получения правильного значения свойства url необходимо дождаться начала загрузки дочернего SWF-файла. Чтобы определить, когда началась загрузка дочернего SWF-файла, используйте событие progress.

Кроме того, может возникнуть противоположная ситуация; то есть можно создать дочерний SWF-файл, в котором необходимо разрешить выполнение сценария родительским файлом, но при этом домен родительского файла неизвестен. В этой ситуации можно получить доступ к свойству loaderInfo экранного объекта, который является корневым объектом SWF-файла. В дочернем SWF-файле необходимо вызвать Security.allowDomain( this.root.loaderInfo.loaderURL). Нет необходимости ждать загрузки родительского SWF-файла — он уже будет загружен к тому времени, когда будет проходить загрузка дочернего файла.

При публикации для Flash Player 8 или более поздней версии можно также решить эти ситуации, вызвав Security.allowDomain("~~"). Однако это решение может быть опасным, поскольку при этом доступ к вызывающему SWF-файлу разрешается любому SWF-файлу из любого домена. Использование свойства _url является более безопасным.

Дополнительные сведения о безопасности см. в разделе центра разработчиков Flash Player Безопасность.

ExternalInterface.addCallback()flash.events.Event.COMPLETEflash.display.DisplayObject.parentflash.net.URLRequest.urlallowInsecureDomain()
allowInsecureDomain Позволяет SWF- и HTML-файлам в определенных доменах обращаться к объектам и переменным в вызывающем SWF-файле, размещенном на сервере с использованием протокола HTTPS.При вызове этого метода из кода в изолированной среде безопасности приложения AIR выдается исключение SecurityError. Содержимое за пределами изолированной среды безопасности приложения не может выполнять перекрестные сценарии для находящегося в ней содержимого. SecurityErrorSecurityErrordomainsОдна или несколько строк, а также объектов URLRequest, указывающих домены, из которых требуется разрешить доступ. Можно указать особый домен «~~», чтобы разрешить доступ из всех доменов.

Указание домена «~~» является единственным способом разрешения доступа к нелокальным SWF-файлам из локальных SWF-файлов, опубликованных с помощью инструмента разработки Adobe Flash с установленным для параметра «Безопасность локального воспроизведения» режимом «Предоставлен доступ только к сети» (Файл > Параметры публикации > вкладка Flash).

Примечание. Подстановочное значение не поддерживается для субдоменов. Например, нельзя использовать значение ~~.foo.com для параметра domains. Хотя субдомен можно указать с использованием подстановочного значения в файле междоменной политики (как в случае с ~~.foo.com), это недопустимо для метода allowDomain().

Обеспечивает SWF- и HTML-файлам, принимаемым с помощью протокола HTTPS, доступ к объектам и переменным в вызывающем SWF-файле.
Обеспечивает файлам SWF и HTML в указанных доменах доступ к объектам и переменным в вызывающем файле SWF, размещенном на сервере с использованием протокола HTTPS.

В проигрывателе Flash Player этот метод allowInsecureDomain() предусмотрен для увеличения гибкости, но вызывать его не рекомендуется. Размещение файлов с использованием HTTPS обеспечивает несколько факторов защиты для вас и ваших пользователей, а вызов метода allowInsecureDomain ослабляет один из этих факторов.

Примечание. При вызове этого метода из кода в изолированной среде безопасности приложения AIR порождается исключение SecurityError. Содержимое за пределами домена защиты приложения не может выполнять перекрестные сценарии для находящегося в ней содержимого. Однако содержимое, находящееся за пределами изолированной программной среды приложения, может обращаться к содержимому в этой среде с помощью так называемого моста.

Этот метод работает так же, как и Security.allowDomain(), но, помимо этого, он позволяет выполнять операции, в которых вызываемая сторона загружается через протокол HTTPS, а вызывающая — нет. В Flash Player 7 и более поздних версиях файлам, загружаемым не через HTTPS, не разрешается выполнение перекрестных сценариев с файлами, загружаемым через HTTPS. Метод allowInsecureDomain() снимает это ограничение, когда его использует вызываемый SWF-файл с HTTPS.

Используйте allowInsecureDomain() только для разрешения выполнения сценариев файлов без HTTPS для файлов с HTTPS. Используйте этот метод для разрешения сценариев, когда вызывающий файл без HTTPS и вызываемый файл с HTTPS находятся на одном домене, например, если SWF-файл с адресом http://mysite.com хочет выполнить сценарий для SWF-файла с адресом https://mysite.com. Не используйте этот метод для разрешения сценариев между файлами без HTTPS, между файлами с HTTPS, а также для выполнения сценариев файла с HTTPS для файла без HTTPS. В таких ситуациях следует использовать метод allowDomain().

Следующий пример иллюстрирует, как метод allowInsecureDomain() может подвергнуть опасности защиту, если он используется без тщательного изучения.

Обратите внимание, что следующая информация является одним из возможных сценариев и предназначена для облегчения понимания метода allowInsecureDomain() с помощью наглядного примера перекрестного выполнения сценариев. Она не охватывает все вопросы, связанные с архитектурой безопасности, ее необходимо использовать только для справки. В центре разработки Flash Player содержится обширная информация о приложении Flash Player и безопасности. Дополнительные сведения см. в разделе центра разработки Flash Player Безопасность.

Предположим, выполняется построение web-сайта электронной коммерции, состоящего из двух компонентов: каталога, защита которого не требуется, поскольку в нем содержится только общедоступная информация; и компонента корзины для покупок или оформления, который должен быть защищенным для обеспечения безопасности финансовой и личной пользовательской информации. Предположим, рассматривается возможность обслуживания каталога с узла http://mysite.com/catalog.swf, а корзины — с узла https://mysite.com/cart.swf. Единственным требованием для web-сайта является обеспечение защиты, чтобы третья сторона не могла украсть номера пользовательских кредитных карт, воспользовавшись уязвимыми местами в архитектуре защиты.

Предположим, злоумышленник вторгается в канал связи между серверами и пользователями, пытаясь украсть номера кредитных карт, которые пользователи указывают в приложении корзины для покупок. Злоумышленником может являться, например, недобросовестный пользователь, применяющий пакет программ, или нечестный администратор на пользовательском рабочем месте — любой человек, получающий возможность просматривать или изменять сетевые пакеты, переданные через Интернет по каналу между пользователем и сервером. Такая ситуация не является редкой.

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

Протокол HTTPS, помимо прочего, позволяет предотвратить подобное изменение, поскольку, кроме шифрования, передачи HTTPS защищены от несанкционированного доступа. Если злоумышленник изменяет пакет, получающая сторона обнаруживает изменение и отказывается от принятия пакета. Поэтому в данной ситуации злоумышленник не может изменить файл cart.swf, так как он доставляется по протоколу HTTPS.

Однако предположим, что необходимо разрешить кнопки в файле catalog.swf, обслуживаемом по протоколу HTTP, для добавления элементов в корзину для покупок в файле cart.swf, обслуживаемом по протоколу HTTPS. Для этого в файле cart.swf вызывается метод allowInsecureDomain(), который позволяет файлу catalog.swf выполнять сценарий в файле cart.swf. Результат этого действия может быть непредвиденным: теперь злоумышленник может изменить файл catalog.swf при его первоначальной загрузке пользователем, поскольку файл catalog.swf передается по протоколу HTTP и не защищен от атак. Теперь злоумышленник, изменивший файл catalog.swf, может выполнять сценарий в файле script cart.swf, поскольку в файле cart.swf содержится вызов метода allowInsecureDomain(). В измененном файле catalog.swf можно использовать код ActionScript для доступа к переменным в файле cart.swf, что позволяет считывать пользовательскую информацию о кредитных картах и другие конфиденциальные данные. Затем измененный файл catalog.swf может передавать эти данные на сервер злоумышленника.

Очевидно, что такая реализация является нежелательной, но пользователю по-прежнему необходимо разрешить перекрестное выполнение сценариев в двух SWF-файлах на web-сайте. Существует два способа доработки этого гипотетического сайта электронной коммерции без использования метода allowInsecureDomain():

  • Обслуживание всех SWF-файлов необходимо выполнять в приложении по протоколу HTTPS. Это явно наиболее простое и надежное решение. В описанном сценарии оба файла — catalog.swf и cart.swf — необходимо обслуживать по протоколу HTTPS. Слегка может увеличиться использование полосы пропускания и нагрузка на ЦП сервера при переключении в файле, например catalog.swf, протокола HTTP на протокол HTTPS, а на компьютерах пользователей может слегка увеличиться время загрузки приложений. Необходимо провести испытания на реальных серверах, чтобы определить степень важности этих эффектов; обычно увеличения происходят не более чем на 10-20%, а иногда они вовсе отсутствуют. Повысить эффективность можно с использованием на сервере оборудования или программ для ускорения при передаче по протоколу HTTPS. Основным преимуществом обслуживания всех взаимосвязанных SWF-файлов по протоколу HTTPS является то, что можно использовать указатель URL HTTPS в качестве основного URL-адреса в браузере без получения предупреждений о смешанном содержимом в браузере. Кроме того, в браузере становится видимым значок висячего замка, предоставляющего пользователям общие и доверенные индикаторы защиты.
  • Используйте выполнение сценариев из HTTPS в HTTP вместо из HTTP в HTTPS. В описанном сценарии содержимое пользовательской корзины для покупок можно сохранить в файле catalog.swf, а в файле cart.swf только управлять процессом расчета. Во время расчета файл cart.swf может получать содержимое корзины из переменных ActionScript в файле catalog.swf. Ограничением выполнения сценариев из HTTP в HTTPS является асимметричность; несмотря на то, что в файле catalog.swf, доставленном по протоколу HTTP, нельзя безопасно разрешить выполнение сценария в файле cart.swf, доставленном по протоколу HTTPS, файл cart.swf HTTPS может выполнять сценарии в файле catalog.swf HTTP. Этот подход является не настолько простым, как подход, при котором все файлы передаются по протоколу HTTPS; необходимо проявлять осторожность и не доверять всем SWF-файлам, полученным по протоколу HTTP, поскольку они подвержены несанкционированному доступу. Например, когда файл cart.swf получает переменную ActionScript, в которой описано содержимое корзины, код ActionScript в файле cart.swf не может доверять данному значению переменной, даже если она получена в ожидаемом формате. Необходимо убедиться, что в содержимом корзины отсутствуют недопустимые данные, которые приведут к тому, что в файле cart.swf будет предпринято нежелательное действие. Необходимо также учитывать риск, что злоумышленник, изменив файл catalog.swf, может предоставить действительные, но неточные данные в файле cart.swf (например путем замены элементов в пользовательской корзине). Принятый процесс оформления покупок в некоторой степени позволяет устранить риск путем отображения содержимого тележки и общей стоимости покупок для окончательного одобрения пользователем, но риск все равно существует.

В web-браузерах на протяжении многих лет вводится вынужденное разделение файлов HTTPS и отличных от HTTPS, и в приведенных сценариях описана одна из веских причин для такого ограничения. В приложении Flash Player доступна возможность устранения этого ограничения безопасности, но перед выполнением этого действия необходимо иметь полное понимание последствий.

Дополнительные сведения о безопасности см. в разделе центра разработчиков Flash Player Безопасность.

allowDomain()
loadPolicyFile Поиск файла политик в каталоге, заданном параметром url.urlStringURL-адрес загружаемого файла политики. Поиск файла политик в каталоге, заданном параметром url. Поиск файла политик в каталоге, заданном параметром url. Приложение Adobe AIR и проигрыватель Flash Player используют файлы политик, чтобы определить, можно ли разрешать приложениям загружать данные с других серверов, кроме того, на котором они находятся. Обратите внимание, что несмотря на то, что метод называется loadPolicyFile(), фактическая загрузка файла обычно не выполняется до получения сетевого запроса, который должен быть передан файлом политик.

С помощью метода Security.loadPolicyFile() проигрыватель Flash Player или приложение AIR может загружать файлы политик из произвольно выбранных местоположений, как это показано в следующем примере.

Security.loadPolicyFile("http://www.example.com/sub/dir/pf.xml");

При этом проигрывателю Flash Player или приложению AIR предписывается извлечь файл политики по указанному URL-адресу. Любые разрешения, выдаваемые файлом политики, расположенном в определенном каталоге, будут действовать применительно ко всему содержимому, находящемуся на том же уровне или ниже в виртуальной иерархии каталогов данного сервера.

Например, в предыдущем коде не выдают исключение следующие строки:

import flash.net.~~; var request:URLRequest = new URLRequest("http://www.example.com/sub/dir/vars.txt"); var loader:URLLoader = new URLLoader(); loader.load(request); var loader2:URLLoader = new URLLoader(); var request2:URLRequest = new URLRequest("http://www.example.com/sub/dir/deep/vars2.txt"); loader2.load(request2);

Однако следующий код выдает исключение по безопасности:

import flash.net.~~; var request3:URLRequest = new URLRequest("http://www.example.com/elsewhere/vars3.txt"); var loader3:URLLoader = new URLLoader(); loader3.load(request3);

Используя метод loadPolicyFile(), можно загрузить любое число файлов политик. Обрабатывая запрос, требующий использования файла политики, Flash Player или AIR всегда ждет завершения загрузок всех файлов политик, прежде чем отклонить этот запрос. В качестве последнего действия, если авторизующий запрос файл политики не указан с помощью метода loadPolicyFile(), проигрыватель Flash Player или приложение AIR обращается в исходные местоположения по умолчанию.

Проверяя основной файл политики, проигрыватель Flash Player ожидает ответа сервера в течение трех секунд. Если ответ не получен, Flash Player делает вывод, что основной файл политики не существует. Однако для вызова метода loadPolicyFile() нет тайм-аута по умолчанию; проигрыватель Flash Player предполагает, что вызываемый файл существует и ожидает загрузки в течение неопределенного времени. Поэтому для гарантированной загрузки основного файла политики необходимо вызвать метод loadPolicyFile().

Нельзя подключаться к общепринятым зарезервированным портам. Полный список заблокированных портов см. в разделе «Ограничение API-интерфейсов сетевого подключения» в руководстве ActionScript 3.0 Developer's Guide (руководстве разработчика по ActionScript 3.0).

Использование протокола xmlsocket вместе с определенным номером порта позволяет извлекать файл политики непосредственно с сервера XMLSocket, как показано в следующем примере. Описанное выше ограничение не распространяется на подключения через сокеты.

Security.loadPolicyFile("xmlsocket://foo.com:414");

Это вызывает попытку проигрывателя Flash Player или приложения AIR получить файл политики из указанного хоста и порта. После того как соединение с указанным портом установлено, проигрыватель Flash Player или приложение AIR передает <policy-file-request />, прерываемый байтом со значением null. Сервер должен отправить байт null, чтобы прервать передачу файла политики, а после этого может закрыть соединение; если сервер не закроет соединение, это сделает проигрыватель Flash Player или приложение AIR после получения прерывающего байта null.

Можно запретить использование SWF-файлом этого метода путем установки параметра allowNetworking для тегов object и embed на странице HTML, содержащей SWF-содержимое.

Дополнительные сведения о безопасности см. в разделе центра разработчиков Flash Player Безопасность.

showSettings Отображает панель параметров безопасности в проигрывателе Flash Player.panelStringdefaultЗначение из класса SecurityPanel, указывающее, какую панель параметров конфиденциальности требуется отображать. Если этот параметр пропущен, используется SecurityPanel.DEFAULT. Отображает панель параметров безопасности в проигрывателе Flash Player. Этот метод не применяется к содержимому в Adobe AIR; его вызов в приложении AIR игнорируется. SecurityPanelAPPLICATION Файл работает в приложении AIR и был установлен с пакетом (файлом AIR) для этого приложения.applicationString Файл работает в приложении AIR и был установлен с пакетом (файлом AIR) для этого приложения. Это содержимое включено в каталог ресурсов приложения AIR (в котором установлено содержимое приложения). sandboxTypeREMOTELOCAL_WITH_FILELOCAL_WITH_NETWORKLOCAL_TRUSTEDLOCAL_TRUSTED Файл является локальным файлом, который указан в качестве доверенного с помощью диспетчера настроек проигрывателя Flash Player или файла конфигурации FlashPlayerTrust.localTrustedString Файл является локальным файлом, который указан в качестве доверенного с помощью диспетчера настроек проигрывателя Flash Player или файла конфигурации FlashPlayerTrust. Файл может считывать информацию из локальных источников данных и обмениваться данными через Интернет. sandboxTypeREMOTELOCAL_WITH_FILELOCAL_WITH_NETWORKAPPLICATIONLOCAL_WITH_FILE Файл является локальным файлом, не является доверенным для пользователя и не публиковался с сетевым наименованием.localWithFileString Файл является локальным файлом, не является доверенным для пользователя и не публиковался с сетевым наименованием. В Adobe AIR локальный файл не находится в каталоге ресурсов приложения. Такие файлы помещаются в изолированную программную среду безопасности приложения. Файл может считывать информацию из локальных источников данных, но не может обмениваться данными через Интернет. sandboxTypeREMOTELOCAL_WITH_NETWORKLOCAL_TRUSTEDAPPLICATIONLOCAL_WITH_NETWORK Файл является локальным SWF-файлом, не является доверенным для пользователя и публиковался с сетевым наименованием.localWithNetworkString Файл является локальным SWF-файлом, не является доверенным для пользователя и публиковался с сетевым наименованием. Файл может обмениваться данными через Интернет, но не может считывать информацию из локальных источников данных. sandboxTypeREMOTELOCAL_WITH_FILELOCAL_TRUSTEDAPPLICATIONREMOTE Файл взят с URL-адреса в Интернете и работает в соответствии с правилами изолированной программной среды на основе домена.remoteString Файл взят с URL-адреса в Интернете и работает в соответствии с правилами изолированной программной среды на основе домена. sandboxTypeLOCAL_WITH_FILELOCAL_WITH_NETWORKLOCAL_TRUSTEDAPPLICATIONexactSettings Определяет, каким образом проигрыватель Flash Player или приложение AIR выбирает домен для работы с такими параметрами Flash Player, как разрешения на доступ к камере и микрофону, квоты хранилища, а также параметры хранения постоянных общих объектов.BooleanПроигрыватель Flash Player или приложение AIR уже использовало значение exactSettings, по крайней мере однажды, когда принималось решение о параметрах проигрывателя. SecurityErrorSecurityError Определяет, каким образом проигрыватель Flash Player или приложение AIR выбирает домен для работы с такими параметрами Flash Player, как разрешения на доступ к камере и микрофону, квоты хранилища, а также параметры хранения постоянных общих объектов. Чтобы в SWF-файле использовались настройки, аналогичные тем, которые использовались в приложении Flash Player 6, задайте для exactSettings значение false.

В Flash Player 6 домен, используемый для этих параметров проигрывателя, выбирался исходя из конечной порции домена SWF-файла. Если домен SWF-файла включает больше двух сегментов, например www.example.com, первый сегмент домена (www) удаляется, и используется оставшаяся часть домена: example.com. Так, в Flash Player 6 и www.example.com и store.example.com используют example.com в качестве домена для этих параметров. Подобным образом, и www.example.co.uk и store.example.co.uk используют example.co.uk в качестве домена для параметров. В Flash Player 7 и более поздних версиях параметры проигрывателя по умолчанию выбираются в соответствии с точным доменом SWF- файла. Например SWF-файл с www.example.com будет использовать параметры проигрывателя для www.example.com, а SWF-файл с store.example.com — отдельные параметры для store.example.com.

Когда Security.exactSettings имеет значение true, Flash Player ли AIR использует точные домены для параметров проигрывателя. По умолчанию exactSettings имеет значение true. Изменение значения по умолчанию свойства exactSettings необходимо выполнить до появления событий, требующих выбора параметров проигрывателя Flash Player или AIR, таких как использование камеры или микрофона или получение постоянного общего объекта.

Если ранее был опубликован SWF-файл версии 6, из которого были созданы постоянные общие объекты, и теперь эти объекты необходимо получить из этого SWF-файла после перехода к версии 7 или более поздней или из другого SWF-версии 7 или более поздней, необходимо задать для Security.exactSettings значение false перед вызовом метода SharedObject.getLocal().

pageDomain Получает домен страницы, содержащей swf.String Получает домен страницы, содержащей swf. Из соображений безопасности метод не возвращает полный URL-адрес, а возвращает только домен страницы, например http://www.example.com. sandboxType Показывает тип изолированной программной среды безопасности, в которой работает вызывающий файл.String Показывает тип изолированной программной среды безопасности, в которой работает вызывающий файл.

Для Security.sandboxType можно устанавливать одно из следующих значений.

  • remote (Security.REMOTE): этот файл загружается с URL-адреса в Интернете и используется в соответствии с правилами изолированной программной среды на основе домена.
  • localWithFile (Security.LOCAL_WITH_FILE): этот файл является локальным файлом, не является доверенным для пользователя и не публиковался с сетевым наименованием. Файл может считывать информацию из локальных источников данных, но не может обмениваться данными через Интернет.
  • localWithNetwork (Security.LOCAL_WITH_NETWORK): этот SWF-файл является локальным файлом, не является доверенным для пользователя и публиковался с сетевым наименованием. SWF-файл может обмениваться данными через Интернет, но не может считывать информацию из локальных источников данных.
  • localTrusted (Security.LOCAL_TRUSTED): этот SWF-файл является локальным файлом, пользователь сделал его доверенным с помощью диспетчера настроек проигрывателя Flash Player или файла конфигурации FlashPlayerTrust. Файл может считывать информацию из локальных источников данных и обмениваться данными через Интернет.
  • application (Security.APPLICATION): файл работает в приложении AIR и был установлен с пакетом (файлом AIR) для этого приложения. По умолчанию файлы в изолированной программной среде безопасности приложения AIR могут выполнять перекрестные сценарии с любым файлом из любого домена (в то время как файлы за ее пределами могут не иметь разрешения на выполнение перекрестных сценариев с файлом AIR). По умолчанию файлы в изолированной программной среде безопасности приложения AIR могут загружать содержимое и данные из любого домена.

Дополнительные сведения о безопасности см. в разделе центра разработчиков Flash Player Безопасность.

REMOTELOCAL_WITH_FILELOCAL_WITH_NETWORKLOCAL_TRUSTEDAPPLICATION
LoaderContext Класс LoaderContext передает параметры для загрузки SWF-файлов и другого мультимедийного содержимого с помощью класса Loader.Object Класс LoaderContext передает параметры для загрузки SWF-файлов и другого мультимедийного содержимого с помощью класса Loader. Класс LoaderContext используется в качестве параметра context в методах load() и loadBytes() класса Loader.

Если SWF-файлы загружаются с помощью метода Loader.load(), необходимо принять два решения: в какой домен защиты должен быть помещен загружаемый SWF-файл, а также в какой домен приложения в этом домене защиты? Дополнительные сведения об этом см. в информации по свойствам applicationDomain и securityDomain.

Если загружается SWF-файл с помощью метода Loader.loadBytes(), также необходимо выбрать домен приложения как и при использовании метода Loader.load(). Но нет необходимости указывать домен защиты, поскольку Loader.loadBytes() всегда помещает загруженный SWF-файл в предназначенный для него домен защиты.

Если вместо SWF-файлов загружаются изображения (JPEG, GIF или PNG), то не требуется указывать ни домен защиты, ни домен безопасности, поскольку эти понятия имеют смысл только применительно к SWF-файлам. Необходимо принять всего одно решение: требуется ли программный доступ к растровому представлению загруженного изображения? Если да, см. свойство checkPolicyFile. Если при загрузке изображения необходимо применить подавление блочности, используйте класс JPEGLoaderContext вместо класса LoaderContext.

flash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.ApplicationDomainflash.system.JPEGLoaderContextflash.system.LoaderContext.applicationDomainflash.system.LoaderContext.checkPolicyFileflash.system.LoaderContext.securityDomainflash.system.SecurityDomainflash.system. ImageDecodingPolicyLoaderContext Создает новый объект LoaderContext с заданными параметрами.checkPolicyFileBooleanfalseУказывает необходимость проверки существования файла политики для URL-адреса перед загрузкой объекта. applicationDomainflash.system:ApplicationDomainnullУказывает, какой объект ApplicationDomain следует использовать для объекта Loader. securityDomainflash.system:SecurityDomainnullУказывает, какой объект SecurityDomain следует использовать для объекта Loader.

Примечание. Содержимое в изолированной среде безопасности приложения AIR не может загружать содержимое из других изолированных программных сред в свой SecurityDomain.

Создает новый объект LoaderContext с заданными параметрами. Дополнительные сведения об этих параметрах см. в описаниях свойств этого класса.
flash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.ApplicationDomainflash.system.SecurityDomain
allowCodeImport Указывает, можно ли использовать объект Loader для импорта содержимого с исполняемым кодом, например SWF-файла, в изолированную среду безопасности вызывающего приложения.Boolean Указывает, можно ли использовать объект Loader для импорта содержимого с исполняемым кодом, например SWF-файла, в изолированную среду безопасности вызывающего приложения. Существует две затрагиваемые операции импорта: метод Loader.loadBytes() и метод Loader.load() с параметром LoaderContext.securityDomain = SecurityDomain.currentDomain. (Вторая операция не поддерживается в изолированной программной среде приложения AIR.) Когда свойство allowCodeImport имеет значение false, допускаются только безопасные операции импорта, такие как загрузка изображений. Значение этого свойства не влияет на обычную загрузку SWF-файла (без импорта) с помощью метода Loader.load().

Это свойство полезно, когда требуется импортировать изображения в изолированную среду безопасности (например, когда требуется скопировать или обработать изображение из другого домена), но желательно избежать риска для безопасности, связанного с получением SWF-файла, если ожидается только графический файл. Так как SWF-файлы могут содержать код ActionScript, импорт SWF-файла представляет намного больше риска, чем импорт файла изображения.

Для содержимого в изолированной программной среде безопасности приложения AIR значением по умолчанию является false. Для всего содержимого, кроме самого приложения (то есть для всего содержимого во Flash Player) по умолчанию используется значение true.

Примечание. Свойство allowCodeImport впервые добавлено в версии Flash Player 10.1 и AIR 2.0. Однако оно доступно для файлов SWF и приложений Air, созданных во всех версиях, если его поддерживает сред выполнения Flash.

flash.display.Loader.loadBytes()flash.display.Loader.load()securityDomain
applicationDomain Указывает домен приложения для использования в методе Loader.load() или Loader.loadBytes().nullflash.system:ApplicationDomain Указывает домен приложения для использования в методе Loader.load() или Loader.loadBytes(). Используйте это свойство только при загрузке SWF-файлов, записанных на ActionScript 3.0 (но не изображений и не SWF-файлов, записанных на ActionScript 1.0 или ActionScript 2.0).

Каждый домен защиты содержит один или несколько доменов приложений, представленных объектами ApplicationDomain. Домены приложений создаются не в целях защиты; они предназначены для совместного использования объектов программного кода ActionScript. Если загрузка SWF-файла выполняется из другого домена, и его разрешено размещать в отдельном домене защиты, то управлять выбором домена приложений для размещения загружаемого SWF-файла нельзя; и даже если указать какой-либо домен приложений, это будет игнорироваться. Однако, если выполняется загрузка SWF-файла в собственный домен защиты (либо потому, что SWF-файл получен из собственного домена, либо потому, что в него выполняется импорт), то можно управлять выбором домена приложений для загружаемого SWF-файла.

В LoaderContext.applicationDomain можно указывать домен приложения только из собственного домена защиты. Попытка указать домен приложения из какого-либо другого домена защиты приводит к исключению SecurityError.

Существует четыре возможных варианта для выбора свойства ApplicationDomain.

  • Дочерний домен по отношению к ApplicationDomain объекта Loader. По умолчанию. Можно явным образом сделать этот выбор, используя синтаксис new ApplicationDomain(ApplicationDomain.currentDomain). Это позволяет загружаемому SWF-файлу напрямую использовать классы родительского домена, например, используя синтаксис new MyClassDefinedInParent(). Родительский домен, однако, не может использовать этот синтаксис; если ему требуется использовать классы дочернего домена, необходимо вызывать ApplicationDomain.getDefinition() для их извлечения. Преимущество такого выбора состоит в том, что если в дочернем домене определяется класс с тем же именем, что у класса, уже определенного в родительском домене, то ошибок не происходит; дочерний домен просто наследует определение такого класса из родительского домена, а конфликтное определение дочернего домена не используется до тех пор, пока либо дочерний, либо родительский домен не вызовет метод ApplicationDomain.getDefinition() для его извлечения.
  • ApplicationDomain принадлежит объекту Loader. Этот домен приложения используется при выполнении ApplicationDomain.currentDomain. Когда загрузка завершена, родительский и дочерний домены могут использовать классы друг друга напрямую. Если выполняется попытка определить в дочернем объекте класс с тем же именем, что и класс, уже определенный в родительском домене, то используется класс родительского домена, а класс дочернего домена игнорируется.
  • Дочерний домен системного ApplicationDomain. Этот домен приложения используется при выполнении new ApplicationDomain(null). Это полностью разделяет загружающий и загружаемый домены, позволяя им определять отдельные версии классов с одинаковым именем без конфликтов и пересечений. Единственным способом, которым каждая из сторон может видеть классы другой стороны, является вызов метода ApplicationDomain.getDefinition().
  • Дочерний домен какого-то другого ApplicationDomain. Иногда могут возникать более сложные иерархии доменов приложений. Можно загружать SWF-файл в любой домен приложения своего собственного домена защиты. Например, при выполнении new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain) SWF-файл загружается в новый дочерний домен по отношению к родительскому домену родительского домена текущего домена.

Когда загрузка завершается, каждой из сторон (загружающей и загружаемой) может потребоваться выполнить поиск собственного ApplicationDomain или ApplicationDomain другой стороны, чтобы вызвать ApplicationDomain.getDefinition(). Каждая из сторон может извлечь ссылку на собственный домен приложения, используя ApplicationDomain.currentDomain. Загружающий SWF-файл может извлекать ссылку на домен приложения загружаемого SWF-файла с помощью Loader.contentLoaderInfo.applicationDomain. Если для загруженного SWF-файла известен способ его загрузки, можно определить путь к объекту ApplicationDomain загружающего SWF-файла. Например, если дочерний объект был загружен принятым по умолчанию способом, он может найти домен приложения, загружающего SWF-файла, используя ApplicationDomain.currentDomain.parentDomain.

Дополнительные сведения см. в разделе «Класс ApplicationDomain» главы «Системная среда клиента» в Руководстве разработчика по ActionScript 3.0.

flash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.ApplicationDomain
checkPolicyFile Указывает, должно ли приложение пытаться загрузить файл политики для URL-адреса с сервера загружаемого объекта перед началом загрузки самого объекта.falseBoolean Указывает, должно ли приложение пытаться загрузить файл политики для URL-адреса с сервера загружаемого объекта перед началом загрузки самого объекта. Этот флаг применим к методу Loader.load(), но не работает для методаLoader.loadBytes().

Установите для этого флага значение true, если изображение (JPEG, GIF или PNG) загружается извне домена вызывающего SWF-файла и предполагается доступ к содержимому этого изображения из ActionScript. В число примеров обращения к содержимому изображений входят обращение к свойству Loader.content для получения объекта Bitmap, а также вызов метода BitmapData.draw() для получения копии растрового представления загруженного изображения. Если попытаться выполнить одну из этих операций, не указав checkPolicyFile во время загрузки, можно получить исключение SecurityError, поскольку необходимый файл политики еще не был загружен.

При вызове метода Loader.load() с установленным для LoaderContext.checkPolicyFile значением true, приложение не начнет загрузку указанного в URLRequest.url объекта до тех пор, пока успешно не загрузит соответствующий файл политики для URL-адреса или не обнаружит отсутствие такого файла. Приложение Flash Player или AIR в первую очередь учитывает файлы политик, которые уже загружены, затем пытается загрузить ожидающие файлы политик, указанные в вызовах метода Security.loadPolicyFile(), затем пытается загрузить файл политики из местоположения по умолчанию, соответствующему URLRequest.url (это файл /crossdomain.xml на том же сервере, что и URLRequest.url). Во всех случаях требуется, чтобы по адресу URLRequest.url существовал соответствующий файл политики на основе места размещения файла политики, а также, чтобы он обеспечивал доступ посредством одного или нескольких тегов <allow-access-from>.

Если для свойства checkPolicyFile задать значение true, основная загрузка, указанная в методе Loader.load(), не будет выполнена до полного завершения обработки файла политики. Поэтому, пока необходимый файл политики существует, как только будет получено любое из событий ProgressEvent.PROGRESS или Event.COMPLETE для свойства contentLoaderInfo объекта Loader, загрузка файла политики завершается и можно безопасно начинать выполнение операций, требующих этот файл политики.

Если для checkPolicyFile установлено значение true, а соответствующий файл политики не найден, сообщение об ошибке не будет отправляться до тех пор, пока не будет предпринята попытка выполнить операцию, создающую исключение SecurityError. Однако как только объект LoaderInfo передаст событие ProgressEvent.PROGRESS или Event.COMPLETE, можно убедиться, найден ли соответствующий файл политики, проверив значение свойства LoaderInfo.childAllowsParent.

Если необходим доступ к загружаемому изображению на уровне растрового представления, не следует устанавливать для свойства checkPolicyFile значение true. Проверка файла политики в этом случае бесполезна, поскольку это может задержать запуск загрузки, а также нерационально израсходовать дополнительные ресурсы полосы пропускания.

Также постарайтесь избегать установки для checkPolicyFile значения true, если для загрузки SWF-файла используется метод Loader.load(). Причина этого в том, что разрешения на взаимные обращения между SWF-файлами не контролируются файлами политик, а только с помощью метода Security.allowDomain(), поэтому вызов checkPolicyFile никак не влияет на загрузку SWF-файла. Проверка файла политики в этом случае бесполезна, поскольку это может задержать загрузку SWF-файла, а также нерационально израсходовать дополнительные ресурсы полосы пропускания. (Приложение Flash Player или AIR не может определить, будет ли основная загрузка выполняться для SWF-файла или изображения, поскольку загрузка файла политики произошла перед основной загрузкой.)

Будьте осторожны с checkPolicyFile, если выполняется загрузка объекта из URL-адреса, который может использовать HTTP-перенаправления на стороне сервера. Файлы политик всегда извлекаются по исходному URL-адресу, указанному в URLRequest.url. Если окончательный объект передается с другого URL-адреса из-за HTTP-перенаправлений, то изначально загруженные файлы политик могут быть не применимы к окончательному URL-адресу объекта, который и следует учитывать при принятии мер безопасности. В случае возникновения подобной ситуации можно проверить значение LoaderInfo.url после получения события ProgressEvent.PROGRESS или Event.COMPLETE, в котором сообщается окончательный URL-адрес объекта. Затем вызовите метод Security.loadPolicyFile() с файлом политики на основе URL-адресов, где учитывается окончательный URL-адрес объекта. Затем опрашивайте значение LoaderInfo.childAllowsParent до тех пор, пока оно не изменится наtrue.

Нет необходимости задавать это свойство для содержимого AIR, выполняющегося в изолированной программной среде приложения. Содержимое в изолированной программной среде приложения AIR может вызывать метод BitmapData.draw(), используя в качестве источника любое загруженное содержимое изображения.

flash.display.BitmapData.draw()flash.display.Loader.contentflash.display.Loader.load()flash.display.LoaderInfo.childAllowsParentflash.display.LoaderInfo.urlflash.system.Security.allowDomain()flash.system.Security.loadPolicyFile()
imageDecodingPolicy Указывает на то, будут ли данные изображения декодироваться при использовании или при загрузке изображения.String Указывает на то, будут ли данные изображения декодироваться при использовании или при загрузке изображения.

Стандартная политика ImageDecodingPolicy.ON_DEMAND определяет декодирование данных изображения средой выполнения, когда данные необходимы для отображения или других целей. Эта политика сохраняет поведение декодирования, использовавшееся в предшествующих версиях среды выполнения.

Политика ImageDecodingPolicy.ON_LOAD определяет декодирование данных изображения средой выполнения сразу после его загрузки перед передачей события complete. Декодирование изображений при загрузке, а не когда они необходимы, может улучшить производительность анимации и интерфейса пользователя, если несколько загруженных изображений выводятся одно за другим через короткие промежутки времени, например в прокручиваемом списке элемента управления cover flow. С другой стороны, постоянное применение политики onLoad может увеличить пиковое использование памяти приложением, так как в памяти одновременно будет больше данных декодированных изображений, чем при применении политики onDemand.

Под обеими политиками среда выполнения использует тот же самый кэш и метод очистки после декодирования изображения. Среда выполнения может в любое время очистить декодированные данные и повторно декодировать изображение, когда оно понадобится в следующий раз.

flash.system. ImageDecodingPolicy
parameters Объект, содержащий параметры, передаваемые объекту содержимого LoaderInfo.Object Объект, содержащий параметры, передаваемые объекту содержимого LoaderInfo.

Как правило, значение свойства contentLoaderInfo.parameters получается путем анализа запрашивающего URL-адреса. Если задана переменная parameters, метод contentLoaderInfo.parameters получает значение из объекта LoaderContext, а не из запрашивающего URL-адреса. Переменная parameters допускает только объекты, содержащие пары «имя-значение» типа String (аналогично параметрам URL-адреса). Если объект не содержит пары «имя-значение» типа String, передается ошибка IllegalOperationError.

Данный API-интерфейс предназначен для включения загрузки SWF-файла для передачи его параметров в загруженный SWF-файл. Эта функция особенно полезна при использовании метода loadBytes(), поскольку метод LoadBytes не предоставляет средства передачи параметров с помощью URL-адреса. Параметры могут быть успешно переданы только в другой SWF-файл AS3. SWF-файл AS1 или AS2 не поддерживает получение параметров в доступной форме, хотя объект loaderInfo.parameters AVM1Movie AS3 будет являться переданным объектом.

Например, рассмотрим следующий URL:

http://yourdomain/users/jdoe/test01/child.swf?foo=bar;

В следующем коде используется свойство LoaderContext.parameters для копирования параметра, переданного этому URL-адресу:

      import flash.system.LoaderContext; 
      import flash.display.Loader; 
      var l:Loader = new Loader(); 
      var lc:LoaderContext = new LoaderContext; 
      lc.parameters = { "foo": "bar" }; 
      l.load(new URLRequest("child.swf"), lc);
     

Чтобы убедиться в правильной передаче параметра, используйте следующую инструкцию trace после выполнения этого кода:

trace(loaderInfo.parameters.foo);

Если содержимое загружено успешно, будет выведена строка bar.

requestedContentParent Родительский объект, к которому загрузчик попытается добавить загруженное содержимое.flash.display:DisplayObjectContainer Родительский объект, к которому загрузчик попытается добавить загруженное содержимое.

Когда содержимое полностью загружено, объект Loader обычно становится родительским элементом для содержимого. Если задано свойство requestedContentParent, указанный в нем объект становится родительским элементом при отсутствии ошибки времени выполнения, препятствующей назначению. Подобное переназначение родительского элемента можно выполнить после получения события complete без использования данного свойства. Однако указание родительского элемента с помощью свойства LoaderContext.requestedContentParent позволяет исключить дополнительные события.

Свойство LoaderContext.requestedContentParent задает нужный родительский элемент перед выполнением сценариев первого кадра в загруженном содержимом, но после запуска конструктора. Если requestedContentParent имеет значение null (по умолчанию), объект Loader становится родительским элементом для содержимого.

Если загруженное содержимое является объектом AVM1Movie или при вызове метода addChild() в объекте requestedContentParent возникает ошибка, выполняются следующие действия:

  • Объект Loader становится родительским элементом для загруженного содержимого.
  • Среда выполнения отправляет событие AsyncErrorEvent.

Если запрошенный родительский элемент и загруженное содержимое находятся в различных изолированных программных средах системы защиты и запрошенный родительский элемент не имеет доступа к загруженному содержимому, то выполняются следующие действия:

  • Объект Loader становится родительским элементом для загруженного содержимого.
  • Среда выполнения отправляет событие SecurityErrorEvent.

В следующем коде используется requestedContentParent для помещения загруженного содержимого в объект Sprite:

      import flash.system.LoaderContext; 
      import flash.display.Loader; 
      import flash.display.Sprite; 
     
      var lc:LoaderContext = new LoaderContext(); 
      var l:Loader = new Loader(); 
      var s:Sprite = new Sprite(); 
      lc.requestedContentParent = s; 
      addChild(s); 
      l.load(new URLRequest("child.swf"), lc);
     

При выполнении этого кода дочерний SWF-файл появляется на рабочей области. Это подтверждает, что объект Sprite, добавленный в рабочую область, является вышестоящим узлом загруженного дочернего SWF-файла.

securityDomain Указывает домен защиты для использования в операции Loader.load().nullflash.system:SecurityDomain Указывает домен защиты для использования в операции Loader.load(). Используйте это свойство только при загрузке SWF-файлов (но не изображений).

Выбор домена безопасности имеет смысл только в том случае, если загружается SWF-файл, который мог быть получен из другого домена (другой сервер), отличающегося от загружающего SWF-файла. Если SWF-файл загружается из собственного домена, он всегда помещается в собственный домен защиты. Но если SWF-файл загружается из другого домена, есть два варианта действий. Можно разрешить загружаемому SWF-файлу быть помещенным в «обычный» домен защиты, который отличается от домена защиты загружающего SWF-файла; это вариант по умолчанию. Другим вариантом является указание того, что загружаемый SWF-файл требуется поместить в тот же домен защиты, что и загружающий SWF-файл, установив для myLoaderContext.securityDomain значение равное SecurityDomain.currentDomain. Это называется загрузка импортом, что с точки зрения обеспечения безопасности, эквивалентно копированию загружаемого SWF-файла на собственный сервер и загрузки его оттуда. Чтобы загрузка импортом завершилась успешно, загруженный SWF-файл должен иметь файл политики, определяющий в качестве доверенного домен загружающего SWF-файла.

Указывать собственный домен защиты можно только в LoaderContext.securityDomain. Попытка указать какой-либо другой домен защиты приводит к исключению SecurityError.

Содержимое в изолированной среде безопасности приложения AIR не может загружать содержимое из других изолированных программных сред в свой объект SecurityDomain.

Дополнительные сведения см. в главе «Безопасность» в Руководстве разработчика по ActionScript 3.0.

flash.display.Loader.load()flash.system.SecurityDomain
allowLoadBytesCodeExecution Устаревшее свойство, которое заменено на allowCodeImport, но все еще поддерживается с целью обеспечения совместимости.Boolean Устаревшее свойство, которое заменено на allowCodeImport, но все еще поддерживается с целью обеспечения совместимости. Раньше свойство allowLoadBytesCodeExecution затрагивало только операцию Loader.loadBytes(), но начиная с версий Flash Player 10.1 и AIR 2.0 оно также влияет на операцию импорта и загрузки методом Loader.load() с параметром LoaderContext.securityDomain = SecurityDomain.currentDomain. (Вторая операция не поддерживается в изолированной программной среде приложения AIR.) В результате такого двойного действия название allowLoadBytesCodeExecution стало слишком конкретным, поэтому теперь это свойство предпочтительно называть allowCodeImport. Установка одного из этих свойств затрагивает значения и того и другого: allowCodeImport и allowLoadBytesCodeExecution.

Указывает, можно ли использовать объект Loader для импорта содержимого с исполняемым кодом, например SWF-файла, в изолированную среду безопасности вызывающего приложения. Когда это свойство имеет значение false, допускаются только безопасные операции импорта, такие как загрузка изображений.

Для содержимого в изолированной программной среде безопасности приложения AIR значением по умолчанию является false. Для содержимого вне изолированной программной среды приложения значением по умолчанию является true.

flash.display.Loader.loadBytes()
JPEGLoaderContext Класс JPEGLoaderContext содержит свойство для инициализации фильтра подавления блочности при загрузке изображения JPEG.flash.system:LoaderContext Класс JPEGLoaderContext содержит свойство для инициализации фильтра подавления блочности при загрузке изображения JPEG. Фильтр подавления блочности повышает качество изображения при более высокой степени сжатия путем сглаживания соседних пикселей. Чтобы применить подавление блочности при загрузке изображения JPEG, создайте объект JPEGLoaderContext и задайте его свойство deblockingFilter. Затем укажите имя объекта JPEGLoaderContext в качестве значения параметра context метода load() объекта Loader, используемого для загрузки изображения.

Класс JPEGLoaderContext является расширением класса LoaderContext. Установите для свойства checkPolicyFile значение true, если требуется программный доступ к растровому представлению загруженного изображения (например, при использовании метода BitmapData.draw()). Для содержимого AIR, выполняющегося в изолированной программной среде приложения, задавать свойство checkPolicyFile не требуется.

flash.display.Loader.load()flash.display.BitmapData.draw()JPEGLoaderContext Создает новый объект JPEGLoaderContext с указанными параметрами.deblockingFilterNumber0.0Задает интенсивность фильтра подавления блочности. Значение 1,0 задает полную интенсивность фильтра подавления блочности, а значение 0,0 отключает этот фильтр. checkPolicyFileBooleanfalseУказывает, должен ли проигрыватель Flash Player проверять существование файла политики для URL-адреса перед загрузкой объекта. Не применяется для содержимого AIR, выполняемого в изолированной среде безопасности приложения. applicationDomainflash.system:ApplicationDomainnullУказывает, какой объект ApplicationDomain следует использовать для объекта Loader. securityDomainflash.system:SecurityDomainnullУказывает, какой объект SecurityDomain следует использовать для объекта Loader. Создает новый объект JPEGLoaderContext с указанными параметрами. flash.system.LoaderContextflash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.ApplicationDomainflash.system.SecurityDomaindeblockingFilter Задает интенсивность фильтра подавления блочности.0.0Number Задает интенсивность фильтра подавления блочности. Значение 1,0 задает полную интенсивность фильтра подавления блочности, а значение 0,0 отключает этот фильтр.
Capabilities Класс Capabilities предоставляет свойства, описывающие систему и среду выполнения, в которых находится приложение.Object Класс Capabilities предоставляет свойства, описывающие систему и среду выполнения, в которых находится приложение. Например, экран мобильного телефона может содержать 100 квадратных пикселей (черно-белых), в то время как экран ПК будет 1000 иметь квадратных пикселей (цветных). Используя объект Capabilities для определения возможностей клиента, можно предоставлять соответствующее содержимое максимально возможному количеству пользователей. Если известны возможности устройства, можно указать серверу подходящие SWF-файлы для отправки или задать смену презентации для SWF-файла.

Однако некоторые возможности Adobe AIR не обеспечиваются свойствами класса Capabilities. Они являются свойствами других классов:

СвойствоОписаниеNativeApplication.supportsDockIconНаличие в операционной системе поддержки значков приложения на панели Dock.NativeApplication.supportsMenuНаличие в операционной системе поддержки глобальных строк меню приложений.NativeApplication.supportsSystemTrayIconНаличие в операционной системе поддержки значков на панели задач.NativeWindow.supportsMenuНаличие в операционной системе поддержки оконных меню.NativeWindow.supportsTransparencyНаличие в операционной системе поддержки прозрачных окон.

Не используйте Capabilities.os или Capabilities.manufacturer для определения возможности на основе операционной системы. Создание функций на основе одной операционной системы не рекомендуется, так как это может привести к проблемам, если в приложении не рассмотрены все потенциальные целевые операционные системы. Вместо этого используйте свойство, соответствующее функции, для которой выполняется тестирование.

Информацию о возможностях, которая хранится в свойстве Capabilities.serverString в виде URL-строки, можно отправить с помощью HTTP-методов GET или POST. В следующем примере показана строка сервера для компьютера с поддержкой MP3 и разрешением экрана 1600 x 1200 пикселей, который работает под управлением Windows XP с установленным редактором методов ввода (IME).

A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&
     SB=f&DEB=t&V=WIN%209%2C0%2C0%2C0&M=Adobe%20Windows&
     R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP&
     L=en&PT=External&AVD=f&LFD=f&WD=f&IME=t

В следующей таблице перечислены свойства класса Capabilities и соответствующие строки сервера. Свойство класса CapabilitiesСтрока сервераavHardwareDisableAVDhasAccessibilityACChasAudioAhasAudioEncoderAEhasEmbeddedVideoEVhasIMEIMEhasMP3MP3hasPrintingPRhasScreenBroadcastSBhasScreenPlaybackSPhasStreamingAudioSAhasStreamingVideoSVhasTLSTLShasVideoEncoderVEisDebuggerDEBlanguageLlocalFileReadDisableLFDmanufacturerMmaxLevelIDCMLosOSpixelAspectRatioARplayerTypePTscreenColorCOLscreenDPIDPscreenResolutionXRscreenResolutionYRversionV

Существует также строка сервера WD, указывающая, отключен ли безоконный режим. Безоконный режим может быть отключен в Flash Player вследствие несовместимости с web-браузером или из-за пользовательской настройки в файле mms.cfg. Соответствующее значение свойства Capabilities отсутствует.

Все свойства класса Capabilities доступны только для чтения.

Следующий код выводит значения, найденные в объекте flash.system.Capabilities. Сначала значения выводятся в текстовое поле. Затем они выводятся путем многократного вызова метода trace(). package { import flash.display.Sprite; import flash.system.Capabilities; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class CapabilitiesExample extends Sprite { public function CapabilitiesExample() { showCapabilities(); } private function showCapabilities():void { var tf:TextField = new TextField(); tf.height = 600; tf.width = 400; tf.autoSize = TextFieldAutoSize.LEFT; tf.wordWrap = true; tf.text = "avHardwareDisable: " + Capabilities.avHardwareDisable + "\nhasAccessibility: " + Capabilities.hasAccessibility + "\nhasAudio: " + Capabilities.hasAudio + "\nhasAudioEncoder: " + Capabilities.hasAudioEncoder + "\nhasEmbeddedVideo: " + Capabilities.hasEmbeddedVideo + "\nhasIME: " + Capabilities.hasIME + "\nhasMP3: " + Capabilities.hasMP3 + "\nhasPrinting: " + Capabilities.hasPrinting + "\nhasScreenBroadcast: " + Capabilities.hasScreenBroadcast + "\nhasScreenPlayback: " + Capabilities.hasScreenPlayback + "\nhasStreamingAudio: " + Capabilities.hasStreamingAudio + "\nhasStreamingVideo: " + Capabilities.hasStreamingVideo + "\nhasTLS: " + Capabilities.hasTLS + "\nhasVideoEncoder: " + Capabilities.hasVideoEncoder + "\nisDebugger: " + Capabilities.isDebugger + "\nisEmbeddedInAcrobat: " + Capabilities.isEmbeddedInAcrobat + "\nlanguage: " + Capabilities.language + "\nlocalFileReadDisable: " + Capabilities.localFileReadDisable + "\nmanufacturer: " + Capabilities.manufacturer + "\nmaxLevelIDC: " + Capabilities.maxLevelIDC + "\nos: " + Capabilities.os + "\npixelAspectRatio: " + Capabilities.pixelAspectRatio + "\nplayerType: " + Capabilities.playerType + "\nscreenColor: " + Capabilities.screenColor + "\nscreenDPI: " + Capabilities.screenDPI + "\nscreenResolutionX: " + Capabilities.screenResolutionX + "\nscreenResolutionY: " + Capabilities.screenResolutionY + "\nserverString: " + Capabilities.serverString + "\ntouchscreenType: " + Capabilities.touchscreenType + // The following capabilities are supported only when publishing for AIR. // If you are publishing for AIR, uncomment the following lines. //"\nlanguages: " + Capabilities.languages + //"\ncpuArchitecture: " + Capabilities.cpuArchitecture + //"\nsupports32BitProcesses: " + Capabilities.supports32BitProcesses + //"\nsupports64BitProcesses: " + Capabilities.supports64BitProcesses + "\nversion: " + Capabilities.version; addChild(tf); trace("avHardwareDisable: " + Capabilities.avHardwareDisable); trace("hasAccessibility: " + Capabilities.hasAccessibility); trace("hasAudio: " + Capabilities.hasAudio); trace("hasAudioEncoder: " + Capabilities.hasAudioEncoder); trace("hasEmbeddedVideo: " + Capabilities.hasEmbeddedVideo); trace("hasIME: " + Capabilities.hasIME); trace("hasMP3: " + Capabilities.hasMP3); trace("hasPrinting: " + Capabilities.hasPrinting); trace("hasScreenBroadcast: " + Capabilities.hasScreenBroadcast); trace("hasScreenPlayback: " + Capabilities.hasScreenPlayback); trace("hasStreamingAudio: " + Capabilities.hasStreamingAudio); trace("hasStreamingVideo: " + Capabilities.hasStreamingVideo); trace("hasTLS: " + Capabilities.hasTLS); trace("hasVideoEncoder: " + Capabilities.hasVideoEncoder); trace("isDebugger: " + Capabilities.isDebugger); trace("isEmbeddedInAcrobat: " + Capabilities.isEmbeddedInAcrobat); trace("language: " + Capabilities.language); trace("localFileReadDisable: " + Capabilities.localFileReadDisable); trace("manufacturer: " + Capabilities.manufacturer); trace("maxLevelIDC: " + Capabilities.maxLevelIDC); trace("os: " + Capabilities.os); trace("pixelAspectRatio: " + Capabilities.pixelAspectRatio); trace("playerType: " + Capabilities.playerType); trace("screenColor: " + Capabilities.screenColor); trace("screenDPI: " + Capabilities.screenDPI); trace("screenResolutionX: " + Capabilities.screenResolutionX); trace("screenResolutionY: " + Capabilities.screenResolutionY); trace("serverString: " + Capabilities.serverString); trace("touchscreenType: " + Capabilities.touchscreenType); // The following capabilities are supported only when publishing for AIR. // If you are publishing for AIR, uncomment the following lines. //trace("cpuArchitecture: " + Capabilities.cpuArchitecture); //trace("languages: " + Capabilities.languages); //trace("supports32BitProcesses: " + Capabilities.supports32BitProcesses); //trace("supports64BitProcesses: " + Capabilities.supports64BitProcesses); trace("version: " + Capabilities.version); } } }
avHardwareDisable Показывает, был ли запрещен администратором доступ к камере и микрофону пользователя (значение true) или нет (значение false).Boolean Показывает, был ли запрещен администратором доступ к камере и микрофону пользователя (значение true) или нет (значение false). Строка сервера AVD.

В Adobe AIR™ это свойство применяется только к содержимому, находящемуся за пределами изолированной программной среды приложения. Содержимое, находящееся в изолированной программной среде приложения, может всегда обращаться к камере и микрофону пользователя.

flash.media.Camera.getCamera()flash.media.Microphone.getMicrophone()Security.showSettings()
cpuArchitecture Определяет текущую архитектуру центрального процессора.String Определяет текущую архитектуру центрального процессора. Свойство cpuArchitecture может возвратить следующие строки: PowerPC, x86, SPARC и ARM. Строка сервера ARCH. hasAccessibility Указывает, поддерживает ли система связь со средствами для обеспечения специальных возможностей (true) или нет (false).Boolean Указывает, поддерживает ли система связь со средствами для обеспечения специальных возможностей (true) или нет (false). Строка сервера ACC. flash.accessibility.Accessibility.activeflash.accessibility.Accessibility.updateProperties()hasAudioEncoder Показывает, может ли система кодировать аудиопотоки, например данные с микрофона (true), или нет (false).Boolean Показывает, может ли система кодировать аудиопотоки, например данные с микрофона (true), или нет (false). Строка сервера AE. hasAudio Указывает, поддерживает ли система воспроизведение аудио.Boolean Указывает, поддерживает ли система воспроизведение аудио. Для этого свойства всегда установлено значениеtrue. Строка сервера A. hasEmbeddedVideo Указывает, поддерживает ли система внедренное видео (true) или нет (false).Boolean Указывает, поддерживает ли система внедренное видео (true) или нет (false). Строка сервера EV. hasIME Указывает, установлен ли в системе редактор метода ввода (IME) (true) или нет (false).Boolean Указывает, установлен ли в системе редактор метода ввода (IME) (true) или нет (false). Строка сервера IME. flash.system.IMEflash.system.System.imehasMP3 Указывает, имеет ли система декодер МР3 (true) или нет (false).Boolean Указывает, имеет ли система декодер МР3 (true) или нет (false). Строка сервера MP3. hasPrinting Указывает, поддерживает ли система печать (true) или нет (false).Boolean Указывает, поддерживает ли система печать (true) или нет (false). Строка сервера PR. hasScreenBroadcast Показывает, поддерживает ли система разработку приложений видеотрансляции для работы через Flash Media Server (true) или нет (false).Boolean Показывает, поддерживает ли система разработку приложений видеотрансляции для работы через Flash Media Server (true) или нет (false). Строка сервера SB. hasScreenPlayback Показывает, поддерживает ли система воспроизведение приложений видеотрансляции, выполняемых через Flash Media Server (true) или нет (false).Boolean Показывает, поддерживает ли система воспроизведение приложений видеотрансляции, выполняемых через Flash Media Server (true) или нет (false). Строка сервера SP. hasStreamingAudio Показывает, поддерживает ли система воспроизведение потокового аудио (true) или нет (false).Boolean Показывает, поддерживает ли система воспроизведение потокового аудио (true) или нет (false). Строка сервера SA. hasStreamingVideo Показывает, поддерживает ли система воспроизведение потокового видео (true) или нет (false).Boolean Показывает, поддерживает ли система воспроизведение потокового видео (true) или нет (false). Строка сервера SV. hasTLS Показывает, поддерживает ли система собственные сокеты SSL через NetConnection (true) или нет (false).Boolean Показывает, поддерживает ли система собственные сокеты SSL через NetConnection (true) или нет (false). Строка сервера TLS. flash.net.NetConnection.connectedProxyTypeflash.net.NetConnection.proxyTypeflash.net.NetConnection.usingTLShasVideoEncoder Показывает, способна ли система кодировать видеопотоки, например данные с web-камеры (true), или нет (false).Boolean Показывает, способна ли система кодировать видеопотоки, например данные с web-камеры (true), или нет (false). Строка сервера VE. isDebugger Показывает, является ли система специальной отладочной версией (true) или официально выпущенной версией (false).Boolean Показывает, является ли система специальной отладочной версией (true) или официально выпущенной версией (false). Строка сервера DEB. Это свойство имеет значение true, когда работает отладочная версия Flash Player или AIR Debug Launcher (ADL). isEmbeddedInAcrobat Указывает, в какой версии среды выполнения Flash открывается PDF-файл, в который встроен проигрыватель в PDF-файл: в Acrobat 9.0 или более поздней (true) или нет (false).Boolean Указывает, в какой версии среды выполнения Flash открывается PDF-файл, в который встроен проигрыватель в PDF-файл: в Acrobat 9.0 или более поздней (true) или нет (false). languages Массив строк, содержащий сведения о предпочитаемых языках пользовательского интерфейса, заданных в операционной системе.Array Массив строк, содержащий сведения о предпочитаемых языках пользовательского интерфейса, заданных в операционной системе. Строки будут содержать теги языков (а также, где это применимо, сведения о сценарии и регионе), определенные в RFC4646 (http://www.ietf.org/rfc/rfc4646.txt), и будут использовать дефисы в качестве разделителей (например, "en-US" или "ja-JP"). Языки перечисляются в массиве в порядке предпочтения, в соответствии с параметрами операционной системы.

Операционные системы отличаются сведениями о регионе, возвращенными строками языковых стандартов. Одна операционная система может возвратить en-us, а другая — en.

Первая запись в возвращенном массиве, как правило, имеет тот же идентификатор основного языка, что и свойство Capabilities.language. Например, если Capabilities.languages[0] имеет значение en-US, то свойство language имеет значение en. Однако, если свойство Capabilities.language имеет значение xu (указывающее неизвестный язык), то первый элемент в этом массиве будет другим. В связи с этим Capabilities.languages[0] может указывать более точную информацию, чем Capabilities.language.

Строка сервера LS.

language Указывает код языка системы, в которой запущено содержимое.String Указывает код языка системы, в которой запущено содержимое. Язык указан как строчная двухсимвольная кодировка ISO 639-1. Для китайского языка предусмотрена дополнительная двухсимвольная национальная кодировка верхнего регистра из ISO 3166, различающая упрощенный и традиционный китайский языки. Обозначения кодировок основаны на английских названиях соответствующих языков, например: hu обозначает венгерский язык (Hungarian).

В системах на английском языке это свойство возвращает только код языка (en), но не код страны. В системах Microsoft Windows это свойство возвращает значение для языка интерфейса пользователя (UI), указывающее, какой язык используется во всех меню, диалоговых окнах, сообщениях об ошибках и файлах справки. В следующей таблице перечислены возможные значения. ЯзыкЗначениеЧешскийcsДатскийdaГолландскийnlАнглийскийenФинскийfiФранцузскийfrНемецкийdeВенгерскийhuИтальянскийitЯпонскийjaКорейскийkoНорвежскийnoДругой/неизвестенxuПольскийplПортугальскийptРусскийruКитайский (упрощенный)zh-CNИспанскийesШведскийsvКитайский (традиционный)zh-TWТурецкийtr

Примечание. Свойство Capabilities.language может иметь только те значения, которые перечислены в списке. Вследствие этого ограничения приложения Adobe AIR должны использовать первый элемент в массиве Capabilities.languages для определения основного языка пользовательского интерфейса в системе.

Строка сервера L.

В следующем примере отображаемое содержимое зависит от языка операционной системы пользователя.

В свойстве Capabilities.language возвращается код языка по стандарту ISO 639-1 (например, «en» для английского). Инструкция switch проверяет код языка и устанавливает в качестве содержимого текстового поля myTextField приветствие, характерное для данного языка. Если код этого языка в данном примере не поддерживается, возвращается строка ошибки по умолчанию.

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.system.Capabilities; public class Capabilities_languageExample extends Sprite { public function Capabilities_languageExample() { var myTextField:TextField = new TextField(); myTextField.x = 10; myTextField.y = 10; myTextField.background = true; myTextField.autoSize = TextFieldAutoSize.LEFT; var greetingEnglish:String = "Hello World"; var greetingGerman:String = "Hallo Welt"; var greetingFrench:String = "Bonjour Monde"; var greetingSpanish:String = "Hola Mundo"; var lang:String = Capabilities.language; switch (lang) { case "en": myTextField.text = greetingEnglish; break; case "de": myTextField.text = greetingGerman; break; case "fr": myTextField.text = greetingFrench; break; case "es": myTextField.text = greetingSpanish; break; default: myTextField.text = "Sorry your system's language is not supported at this time."; } this.addChild(myTextField); } } }
languages
localFileReadDisable Показывает, был ли запрещен администратором доступ к жесткому диску пользователя (значение true) или нет (значение false).Boolean Показывает, был ли запрещен администратором доступ к жесткому диску пользователя (значение true) или нет (значение false). В Adobe AIR это свойство применяется только к содержимому, находящемуся за пределами изолированной программной среды приложения. (Содержимое в изолированной программной среде приложения всегда может считывать данные в файловой системе.) Если для этого свойства установлено значение true, проигрыватель Flash Player не может читать файлы (включая первый файл, с которым запускается проигрыватель Flash Player) с жесткого диска пользователя. Если это свойство имеет значение true, содержимое AIR, находящееся за пределами изолированной программной среды приложения, не может считывать файлы с локального жесткого диска. Например, попытки прочитать файл на жестком диске пользователя с помощью методов загрузки завершаться ошибкой, если для этого свойства задано значение true.

Чтение общих во время выполнения библиотек также блокируется, если для этого свойства установлено значение true, но чтение локальных общих библиотек разрешено независимо от значения этого свойства.

Строка сервера LFD.

flash.display.Loader
manufacturer Указывает производителя работающей версии Flash Player или среды выполнения AIR в формате «Adobe OSName».String Указывает производителя работающей версии Flash Player или среды выполнения AIR в формате «Adobe OSName». Значением для OSName могут быть Windows, Macintosh, Linux или название другой операционной системы. Строка сервера M.

Не используйте Capabilities.manufacturer для определения возможности на основе операционной системы, если существует более конкретное свойство, соответствующее возможности. Создание функций на основе одной операционной системы не рекомендуется, так как это может привести к проблемам, если в приложении не рассмотрены все потенциальные целевые операционные системы. Вместо этого используйте свойство, соответствующее функции, для которой выполняется тестирование. Дополнительные сведения см. в описании класса Capabilities.

maxLevelIDC Извлечение самого высокого уровня IDC H.264, поддерживаемого оборудованием клиента.String Извлечение самого высокого уровня IDC H.264, поддерживаемого оборудованием клиента. На этом уровне носитель будет гарантированно запущен; однако носитель, запущенный на более высоком уровне, может выполняться с более низким качеством. Это свойство необходимо для серверов, на которых предпринимается попытка получения сведений о возможностях клиента. С помощью этого свойства сервер может определить уровень видео, переданного клиенту.

Серверной строкой является ML.

os Указывает текущую операционную систему.String Указывает текущую операционную систему. Свойство os может возвращать следующие строки: Операционная системаЗначениеWindows 7"Windows 7"Windows Vista"Windows Vista"Windows Server 2008 R2"Windows Server 2008 R2"Windows Server 2008"Windows Server 2008"Windows Home Server"Windows Home Server"Windows Server 2003 R2"Windows Server 2003 R2"Windows Server 2003"Windows Server 2003"Windows XP 64"Windows Server XP 64"Windows XP"Windows XP"Windows 98"Windows 98"Windows 95"Windows 95"Windows NT"Windows NT"Windows 2000"Windows 2000"Windows ME"Windows ME"Windows CE"Windows CE"Windows SmartPhone"Windows SmartPhone"Windows PocketPC"Windows PocketPC"Windows CEPC"Windows CEPC"Windows Mobile"Windows Mobile"Mac OS"Mac OS X.Y.Z" (где X.Y.Z обозначает номер версии, например "Mac OS 10.5.2")Linux"Linux" (Flash Player подключает версию Linux, например "Linux 2.6.15-1.2054_FC5smp"iPhone OS 4.1"iPhone3,1"

Строка сервера OS.

Не используйте Capabilities.os для определения возможности на основе операционной системы, если существует более конкретное свойство, соответствующее функции. Создание функций на основе одной операционной системы не рекомендуется, так как это может привести к проблемам, если в приложении не рассмотрены все потенциальные целевые операционные системы. Вместо этого используйте свойство, соответствующее функции, для которой выполняется тестирование. Дополнительные сведения см. в описании класса Capabilities.

pixelAspectRatio Задает пропорции экрана в пикселях.Number Задает пропорции экрана в пикселях. Строка сервера AR. playerType Указывает тип среды выполнения.String Указывает тип среды выполнения. Это свойство может иметь одно из следующих значений.
  • ActiveX для управляющего элемента ActiveX с проигрывателем Flash Player, используемого в Microsoft Internet Explorer
  • Desktop для среды выполнения Adobe AIR (за исключением SWF-содержимого, загруженного HTML-страницей, со свойством Capabilities.playerType в значении PlugIn)
  • External для внешнего проигрывателя Flash Player или для работы в режиме тестирования
  • PlugIn для внешнего модуля браузера Flash Player (и для SWF-содержимого, загруженного HTML-страницей в приложении AIR)
  • StandAlone для автономного проигрывателя Flash Player

Строка сервера PT.

screenColor Задает цвет экрана.String Задает цвет экрана. Это свойство может иметь значение color, gray (для изображения в оттенках серого) или bw (для черно-белого изображения). Строка сервера COL. screenDPI Задает разрешение dpi (точек на дюйм) экрана в пикселях.Number Задает разрешение dpi (точек на дюйм) экрана в пикселях. Строка сервера DP. screenResolutionX Задает максимальное разрешение экрана по горизонтали.Number Задает максимальное разрешение экрана по горизонтали. Строка сервера R (возвращает значения как для ширины, так и для высоты экрана). Это свойство не обновляется пользовательским значением разрешения экрана, а только показывает разрешение в момент запуска проигрывателя Flash Player или приложения Adobe AIR. Кроме того, это значение указывает характеристики только для основного экрана. screenResolutionY Задает максимальное разрешение экрана по вертикали.Number Задает максимальное разрешение экрана по вертикали. Строка сервера R (возвращает значения как для ширины, так и для высоты экрана). Это свойство не обновляется пользовательским значением разрешения экрана, а только показывает разрешение в момент запуска проигрывателя Flash Player или приложения Adobe AIR. Кроме того, это значение указывает характеристики только для основного экрана. Следующий пример представляет собой простой тест, отображающий текущее разрешение экрана и версию операционной системы. При тестировании этого примера щелкните текстовое поле, чтобы увидеть значения свойств: import flash.events.~; import flash.display.~; import flash.system.Capabilities; import flash.text.TextField; var screenInfoTxt:TextField = new TextField(); var screenInfoTxt.x = 30; var screenInfoTxt.y = 50; var screenInfoTxt.width = 300; var screenInfoTxt.height = 100; var screenInfoTxt.border = true; addChild(screenInfoTxt); addEventListener(MouseEvent.CLICK, getScreenNVersion); function getScreenNVersion(e:MouseEvent):void{ screenInfoTxt.text= "flash.system.Capabilities.screenResolutionX is : " + String(flash.system.Capabilities.screenResolutionX) + "\n" + "flash.system.Capabilities.screenResolutionY is : " + String(flash.system.Capabilities.screenResolutionY) + "\n" + "flash.system.Capabilities.version is : " + flash.system.Capabilities.version; } serverString Строка в кодировке URL, задающая значения для каждого свойства Capabilities.String Строка в кодировке URL, задающая значения для каждого свойства Capabilities.

В следующем примере показана закодированная в URL строка:

A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&
	 SB=f&DEB=t&V=WIN%208%2C5%2C0%2C208&M=Adobe%20Windows&
	 R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP&
	 L=en&PT=External&AVD=f&LFD=f&WD=f

supports32BitProcesses Показывает, поддерживает ли система выполнение 32-разрядных процессов.Boolean Показывает, поддерживает ли система выполнение 32-разрядных процессов. Строка сервера PR32. supports64BitProcesses Показывает, поддерживает ли система выполнение 64-разрядных процессов.Boolean Показывает, поддерживает ли система выполнение 64-разрядных процессов. Строка сервера PR64. touchscreenType Определяет тип поддерживаемого сенсорного экрана, если он имеется.String Определяет тип поддерживаемого сенсорного экрана, если он имеется. Значения определяются в классе flash.system.TouchscreenType. Следующий пример представляет собой простой тест, отображающий текущий тип сенсорного экрана. При тестировании этого примера щелкните текстовое поле, чтобы увидеть значения свойств: import flash.events.~~; import flash.display.~~; import flash.system.Capabilities; import flash.text.TextField; var capabilitiesTouchScreenTypeTxt:TextField = new TextField(); capabilitiesTouchScreenTypeTxt.width = 300; capabilitiesTouchScreenTypeTxt.border = true; addChild(capabilitiesTouchScreenTypeTxt); addEventListener(MouseEvent.CLICK, getScreenKeyboardType); function getScreenKeyboardType(e:MouseEvent):void{ capabilitiesTouchScreenTypeTxt.text= "flash.system.Capabilities.touchscreenType is : " + flash.system.Capabilities.touchscreenType; } Класс TouchscreenTypeflash.ui.Mouse.supportsCursorversion Показывает сведения о платформе и версии Flash Player или Adobe&#xAE; AIR&#xAE;.String Показывает сведения о платформе и версии Flash Player или Adobe® AIR®. Номер версии имеет следующий формат: platform majorVersion, minorVersion, buildNumber, internalBuildNumber. Возможные значения для platform: "WIN", "MAC", "LNX" и "AND". Вот несколько примеров информации о версии.
	 WIN 9,0,0,0  // Flash Player 9 for Windows
	 MAC 7,0,25,0   // Flash Player 7 for Macintosh
	 LNX 9,0,115,0  // Flash Player 9 for Linux
	 AND 10,2,150,0 // Flash Player 10 for Android
	 

Не используйте Capabilities.version для определения возможности на основе операционной системы, если существует более конкретное свойство, соответствующее возможности. Создание функций на основе одной операционной системы не рекомендуется, так как это может привести к проблемам, если в приложении не рассмотрены все потенциальные целевые операционные системы. Вместо этого используйте свойство, соответствующее функции, для которой выполняется тестирование. Дополнительные сведения см. в описании класса Capabilities.

Строка сервера V.

Следующий пример представляет собой простой тест, отображающий текущее разрешение экрана и версию операционной системы. При тестировании этого примера щелкните текстовое поле, чтобы увидеть значения свойств: import flash.events.~; import flash.display.~; import flash.system.Capabilities; import flash.text.TextField; var screenInfoTxt:TextField = new TextField(); var screenInfoTxt.x = 30; var screenInfoTxt.y = 50; var screenInfoTxt.width = 300; var screenInfoTxt.height = 100; var screenInfoTxt.border = true; addChild(screenInfoTxt); addEventListener(MouseEvent.CLICK, getScreenNVersion); function getScreenNVersion(e:MouseEvent):void{ screenInfoTxt.text= "flash.system.Capabilities.screenResolutionX is : " + String(flash.system.Capabilities.screenResolutionX) + "\n" + "flash.system.Capabilities.screenResolutionY is : " + String(flash.system.Capabilities.screenResolutionY) + "\n" + "flash.system.Capabilities.version is : " + flash.system.Capabilities.version; }
fscommand Обеспечивает взаимодействие SWF-файла с проигрывателем Flash Player или программой, содержащей Flash Player, например web-браузером.Если вызов функции не выполняется в ответ на действие пользователя, например событие мыши или нажатие клавиши. ErrorErrorcommandStringСтрока, переданная главному приложению в различных целях, или команда, переданная проигрывателю Flash Player. argsStringСтрока, переданная главному приложению в различных целях, или значение, переданное проигрывателю Flash Player. Обеспечивает взаимодействие 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Не заданЗакрывает проектор.fullscreentrue или falseУстановка значения true переводит проигрыватель Flash Player в полноэкранный режим работы. Установка значения false возвращает проигрыватель в обычный режим работы с отображением меню.allowscaletrue или falseУстановка значения false задает режим проигрывателя, в котором SWF-файл всегда воспроизводится в окне исходного размера и никогда не масштабируется. Установка значения true заставляет SWF-файл масштабироваться в проигрывателе до 100%.showmenutrue или falseУстановка значения true включает полный набор команд в контекстное меню. Установка значения false скрывает все команды контекстного меню, за исключением пунктов «О Flash Player» и «Параметры».execПуть к приложению Выполняет приложение из проектора.trapallkeystrue или 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).

В следующем примере показано, как функция 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); } } }
flash.desktop.NativeApplication
IME Класс IME позволяет непосредственно управлять редактором методов ввода (IME) операционной системы в среде выполнения Flash, работающей на клиентском компьютере.Позволяет непосредственно управлять редактором методов ввода (IME) операционной системы. flash.events:EventDispatcher Класс IME позволяет непосредственно управлять редактором методов ввода (IME) операционной системы в среде выполнения Flash, работающей на клиентском компьютере. Можно определить, был ли установлен редактор IME, был или нет этот IME включен в данный момент, а также какой редактор IME включен. Можно включить или выключить редактор IME в приложении, а также выполнить другие ограниченные функции, зависящие от операционной системы.

Поддержка в профилях AIR: эта функция поддерживается в компьютерных операционных системах, но не на всех мобильных устройствах. Она также не поддерживается в среде AIR для телевизионных устройств. Используйте свойство IME.isSupported, чтобы проверить наличие поддержки в cреде выполнения. Дополнительные сведения о поддержке API-интерфейса в разных профилях см. в разделе «Поддержка в профилях AIR».

Редакторы IME позволяют пользователям вводить тексты с символами, отличными от ASCII, используя многобайтовые языки, такие как китайский, японский и корейский. Дополнительные сведения о работе с редактором IME см. в документации по операционной системе, для которой разрабатывается приложение. Дополнительные ресурсы доступны на следующих web-сайтах:

  • http://www.microsoft.com/globaldev/default.mspx
  • http://developer.apple.com/documentation/
  • http://java.sun.com

Если редактор IME не активен на компьютере пользователя, то обращения к методам или свойствам IME, отличным от Capabilities.hasIME, будут завершаться ошибками. Как только редактор IME будет активирован вручную, последующие обращения ActionScript к методам и свойствам IME будут срабатывать ожидаемым образом. Например, если используется японский редактор IME, он должен быть активирован до того, как вызывается любой метод или свойство IME.

В следующей таблице показаны платформы, поддерживаемые данным классом:

ВозможностьWindowsMac OSXLinuxОпределяет, установлен ли редактор IME: Capabilities.hasIMEДаДаДаПереключает редактор IME в активное или неактивное состояние: IME.enabledДаДаДаОпределяет, активен ли редактор IME или нет: IME.enabledДаДаДаПолучает или устанавливает режим преобразования IME: IME.conversionModeДаДа ~~~~НетПосылает редактору IME строку для преобразования: IME.setCompositionString()Да ~~НетНетПолучает из редактора IME исходную строку до преобразования: System.ime.addEventListener()Да ~~НетНетОтправляет запрос на преобразование в редактор IME: IME.doConversion()Да ~~НетНет

~~ Не все редакторы IME в Windows поддерживают эти операции в полном объеме. Единственный редактор IME, который поддерживает их все, это японский редактор IME.

~~~~ На платформе Macintosh только японский редактор IME поддерживает эти методы, а редакторы IME независимых поставщиков не поддерживают их.

Версия этого класса в ActionScript 3.0 не поддерживает Macintosh Classic.

imeComposition Отправляется, когда пользователь завершил работу в редакторе методов ввода (IME), и доступна строка чтения.flash.events.IMEEvent.IME_COMPOSITIONflash.events.IMEEvent Отправляется, когда пользователь завершил работу в редакторе методов ввода (IME), и доступна строка чтения. Обычно редакторы IME применяются для ввода текста на языках, в которых используются иероглифы, а не буквы. Это такие языки как японский, корейский и китайский. compositionAbandoned Заставляет среду выполнения прерывать выполняемую компоновку. Заставляет среду выполнения прерывать выполняемую компоновку. Этот метод следует вызывать, когда пользователь делает щелчок за пределами области компоновки или когда интерактивный объект, находящийся в фокусе, удаляется или сбрасывается. Среда выполнения подтверждает компоновку, вызовом метода confirmComposition() в клиенте. Среда выполнения также сбрасывает IME, чтобы сообщить операционной системе о том, что компоновка прервана. compositionSelectionChanged Этот метод следует вызывать, когда выделенная область в пределах компоновки обновляется в результате взаимодействия пользователя или выполнения кода программы.startintУказывает смещение (в байтах) от начала выделенной области. endintУказывает смещение (в байтах) от конца выделенной области. Этот метод следует вызывать, когда выделенная область в пределах компоновки обновляется в результате взаимодействия пользователя или выполнения кода программы. doConversion Предписывает IME выбрать первого кандидата для текущей строки композиции.Вызов завершился с ошибкой. ErrorError Предписывает IME выбрать первого кандидата для текущей строки композиции. setCompositionString Задает строку композиции IME.Неудачный вызов. ErrorErrorcompositionStringСтрока для отправки редактору IME. Задает строку композиции IME. Если строка задана, пользователь может выбирать варианты в редакторе IME перед тем, как отправить результаты в активное текстовое поле.

Если нет активного текстового поля, этот метод завершается с ошибкой.

conversionMode Режим преобразования текущего IME.StringПопытка установки завершилась неудачно. ErrorError Режим преобразования текущего IME. Возможными значениями являются строковые константы режима IME, указывающие режим преобразования:
  • ALPHANUMERIC_FULL
  • ALPHANUMERIC_HALF
  • CHINESE
  • JAPANESE_HIRAGANA
  • JAPANESE_KATAKANA_FULL
  • JAPANESE_KATAKANA_HALF
  • KOREAN
  • UNKNOWN (значение доступно только для чтения; не может быть установлено вручную)
flash.system.IMEConversionMode.ALPHANUMERIC_FULLflash.system.IMEConversionMode.ALPHANUMERIC_HALFflash.system.IMEConversionMode.CHINESEflash.system.IMEConversionMode.JAPANESE_HIRAGANAflash.system.IMEConversionMode.JAPANESE_KATAKANA_FULLflash.system.IMEConversionMode.JAPANESE_KATAKANA_HALFflash.system.IMEConversionMode.KOREANflash.system.IMEConversionMode.UNKNOWN
enabled Указывает, включен ли системный редактор IME (значение true) или выключен (значение false).BooleanПопытка установки завершилась неудачно. ErrorError Указывает, включен ли системный редактор IME (значение true) или выключен (значение false). Если редактор IME включен, можно выполнять ввод в многобайтовой кодировке; а если выключен — только буквенно-символьный ввод. isSupported Свойству isSupported задается значение true, если текущая платформа поддерживает класс IME, в противном случае задается значение false.Boolean Свойству isSupported задается значение true, если текущая платформа поддерживает класс IME, в противном случае задается значение false.
System Класс System содержит свойства, связанные с локальными настройками и операциями.Object Класс System содержит свойства, связанные с локальными настройками и операциями. Сюда относятся настройки камер и микрофонов, операции с общими объектами и использование буфера обмена.

Дополнительные свойства и методы находятся в других классах пакета flash.system: класс Capabilities, класс IME и класс Security.

Этот класс содержит только статические методы и свойства. Невозможно создать новые экземпляры класса System.

В следующем примере показано, как информация об общем объеме памяти системы копируется в буфер обмена системы путем обращения к System.totalMemory при вызове метода System.setClipboard(). package { import flash.display.Sprite; import flash.system.System; public class SystemExample extends Sprite { public function SystemExample() { System.setClipboard("System.totalMemory: " + System.totalMemory); } } }
flash.system.Securityflash.events.IMEEventdisposeXML Объект XML сразу же становится доступным для сборки мусора.nodeXMLСсылка XML, которую необходимо сделать доступной для сборки мусора. Объект XML сразу же становится доступным для сборки мусора. С помощью этого метода удаляются родительские и дочерние соединения всех узлов указанного узла XML. exit Закрывает проигрыватель Flash Player.codeuintЗначение, передаваемое в операционную систему. Обычно, если процесс нормально завершается, это значение равно 0. Закрывает проигрыватель Flash Player.

Только для отладочной версии проигрывателя Flash Player.

Чтобы выйти из приложения, приложения AIR должны вызвать метод NativeApplication.exit().

flash.desktop.NativeApplication.exit()
gc Запускает процесс очистки. Запускает процесс очистки.

Только для отладочной версии Flash Player и приложений AIR. В приложении AIR метод System.gc() работает только в содержимом, выполняющемся в AIR Debug Launcher (ADL), или, в случае с установленным приложением, в содержимом в изолированной программной среде безопасности приложения.

pause Устанавливает паузу в работе Flash Player или AIR Debug Launcher (ADL). Устанавливает паузу в работе Flash Player или AIR Debug Launcher (ADL). После вызова этого метода все операции приложения прекращаются, за исключением доставки событий Socket.

Только для отладочной версии Flash Player или AIR Debug Launcher (ADL).

resume()
resume Возобновляет работу приложения после вызова метода System.pause(). Возобновляет работу приложения после вызова метода System.pause().

Только для отладочной версии Flash Player или AIR Debug Launcher (ADL).

pause()
setClipboard Заменяет содержимое буфера обмена заданной текстовой строкой.stringStringСостоящая из символов строка с обычным текстом для размещения в буфере обмена системы, замещая текущее содержимое (если есть). Заменяет содержимое буфера обмена заданной текстовой строкой. Заменяет содержимое буфера обмена заданной текстовой строкой. Этот метод работает в любом контексте безопасности, если вызывается в результате пользовательского события (например, обработчика события клавиатуры или устройства ввода).

Этот метод доступен для SWF-содержимого, выполняемого во Flash Player 9. Он позволяет добавлять в буфер обмена только содержимое типа String.

Содержимое Flash Player 10 и содержимое в изолированной программной среде безопасности приложения AIR может вызывать метод Clipboard.setData().

flash.desktop.Clipboard
freeMemory Объем памяти (в байтах), который выделен для Adobe&#xAE; Flash&#xAE; Player или Adobe&#xAE; AIR&#xAE; и не используется в данный момент.Number Объем памяти (в байтах), который выделен для Adobe® Flash® Player или Adobe® AIR® и не используется в данный момент. Эта неиспользованная часть выделенной памяти (System.totalMemory) меняется по мере «сбора мусора». Используйте это свойство для отслеживания «сбора мусора» privateMemorytotalMemorytotalMemoryNumberime Текущая установленная система IME.flash.system:IME Текущая установленная система IME. Чтобы подписаться на события imeComposition, вызовите addEventListener() для этого экземпляра. IMEConversionModeprivateMemory Весь объем памяти (в байтах), используемый приложением.Number Весь объем памяти (в байтах), используемый приложением. Это объем резидентной памяти всего процесса

Разработчикам AIR следует использовать это свойство для определения общего потребления памяти приложением.

Для Flash Player это значение включает память, используемую приложением-контейнером, например веб-браузером.

freeMemorytotalMemorytotalMemoryNumber
totalMemoryNumber Используемый в данным момент объем памяти (в байтах), который выделен непосредственно средой Flash Player или AIR.Number Используемый в данным момент объем памяти (в байтах), который выделен непосредственно средой Flash Player или AIR.

Это свойство представлено объектом Number, который позволяет использовать более высокие значения, чем свойство System.totalMemory, которое представлено целым числом.

Это свойство не указывает весь объем памяти, используемый приложением Adobe AIR или приложением (например, браузером), в котором выполняется содержимое Flash Player. Браузер или операционная система может использовать остальную часть памяти. Свойство System.privateMemory отражает весь объем памяти, используемый приложением.

freeMemoryprivateMemorytotalMemory
totalMemory Используемый в данным момент объем памяти (в байтах), который выделен непосредственно средой Flash Player или AIR.uint Используемый в данным момент объем памяти (в байтах), который выделен непосредственно средой Flash Player или AIR.

Это свойство не указывает весь объем памяти, используемый приложением Adobe AIR или приложением (например, браузером), в котором выполняется содержимое Flash Player. Браузер или операционная система может использовать остальную часть памяти. Свойство System.privateMemory отражает весь объем памяти, используемый приложением.

Если выделенный объем памяти превышает максимальное значение для объекта uint (uint.MAX_VALUE, или 4294967295), тогда это свойство получает значение 0. Свойство System.totalMemoryNumber допускает использование объема памяти, превышающего это значение.

freeMemoryprivateMemorytotalMemoryNumber
useCodePage Значение типа Boolean, указывающее кодовую страницу, которую следует использовать для интерпретации внешних текстовых файлов.Boolean Значение типа Boolean, указывающее кодовую страницу, которую следует использовать для интерпретации внешних текстовых файлов. Если это свойство имеет значение false, при интерпретации внешних текстовых файлов используется кодировка Юникод. (Эти файлы должны быть в кодировке Юникод при сохранении.) Если для этого свойства задано значение true, внешние текстовые файлы интерпретируются с помощью стандартной кодовой страницы операционной системы, в которой выполняется приложение. По умолчанию для свойства useCodePage задано значение false.

Текст, загружаемый как внешний файл (с помощью Loader.load(), класса URLLoader или класса URLStream), должен быть сохранен в кодировке Юникод, чтобы приложение правильно распознало его. Чтобы изменить кодировку внешних файлов на Юникод, сохраните их в приложении, поддерживающем эту кодировку, например с помощью программы блокнот в Windows.

При загрузке внешних текстовых файлов, кодировка которых не Юникод, установите для свойства useCodePage значение true. Добавьте следующий фрагмент в качестве первой строки кода в файле, который загружает данные (для Flash Professional эту строку нужно добавить в первый кадр):

System.useCodePage = true;

Если имеется эта кодировка, приложение интерпретирует внешний текст с помощью стандартной кодовой страницы операционной системы. Например, это обычно бывает кодировка CP1252 для английской версии операционной системы Windows и Shift-JIS для японской операционной системы.

Если для свойства useCodePage установить значение true, в проигрывателе Flash Player 6 и более поздних версиях обрабатывают текст также, как проигрыватель Flash Player 5. (Проигрыватель Flash Player 5 обрабатывает все тексты таким образом, как если бы они все были в стандартной кодировке операционной системы, в которой запущен проигрыватель.)

Если для свойства useCodePage установлено значение true, помните, что стандартная кодовая страница операционной системы, в которой выполняется приложение, должна включать символы, используемые во внешнем текстовом файле, чтобы можно было отобразить данный текст. Например, если загружается внешний текстовый файл, содержащий китайские символы, эти символы невозможно отобразить в системе, где используется кодовая страница CP1252, поскольку она не содержит символов для китайского языка.

Чтобы обеспечить пользователям на всех платформах возможность просматривать внешние текстовые файлы, используемые в вашем приложении, необходимо использовать в этих текстовых файлах кодировку Юникод и оставить для свойства useCodePage значение false. Таким образом приложение (Flash Player 6 и более поздних версий или AIR) интерпретирует текст как Юникод.

flash.display.Loader.load()
SecurityDomain Класс SecurityDomain представляет текущую изолированную программную среду, безопасности, также называемую доменом защиты.Object Класс SecurityDomain представляет текущую изолированную программную среду, безопасности, также называемую доменом защиты. Передавая экземпляр этого класса в Loader.load(), можно запросить размещение загруженных мультимедийных данных в определенной изолированной среде. currentDomain Определяет текущий домен защиты.flash.system:SecurityDomain Определяет текущий домен защиты. flash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.LoaderContextSystemUpdater Класс SystemUpdater позволяет обновлять модули Flash Player, такие как модуль DRM для Flash Access, а также сам проигрыватель Flash Player.flash.events:EventDispatcher Класс SystemUpdater позволяет обновлять модули Flash Player, такие как модуль DRM для Flash Access, а также сам проигрыватель Flash Player. Доступные модули перечисляются в классе SystemUpdaterType.

Flash Player определяет необходимость обновления модуля Flash Access путем отправки события NetStatusEvent. Это событие имеет свойство code со значением "DRM.UpdateNeeded". Для обновления модуля Flash Access не требуется согласия пользователя. Прослушивайте событие и запустите обновление, вызвав метод update("DRM").

Flash Player определяет необходимость обновления проигрывателя, отправляя событие StatusEvent, его свойство code может иметь одно из нескольких значений (см. описание события status). Для обновления проигрывателя требуется согласие пользователя. Прослушивайте событие и предложите пользователю возможность обновления. Пользователь должен дать согласие на фактическое обновление и запустить процесс, например, нажав кнопку в интерфейсе приложения. После этого можно инициировать обновление проигрывателя непосредственно в коде ActionScript, вызвав метод update("SYSTEM").

Примечание. API SystemUpdater поддерживается для всех стационарных компьютеров.

flash.system.SystemUpdaterTypecancel Отправляется, когда обновление самого проигрывателя отменено пользователем.flash.events.Event.CANCELflash.events.Event Отправляется, когда обновление самого проигрывателя отменено пользователем. Это событие отправляется, только если запрашивается обновление типа SystemUpdaterType.SYSTEM и отменяется пользователем. complete Отправляется после завершения обновления.flash.events.Event.COMPLETEflash.events.Event Отправляется после завершения обновления. securityError Отправляется в случае возникновения ошибки безопасности.flash.events.SecurityErrorEvent.SECURITY_ERRORflash.events.SecurityErrorEvent Отправляется в случае возникновения ошибки безопасности. Например, это событие может быть отправлено, если проигрыватель пытается выполнить обновление, когда это запрещено политикой безопасности. ioError Отправляется в случае ошибки ввода-вывода.flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent Отправляется в случае ошибки ввода-вывода. Например, это событие может отправляться, если прерывается подключение к Интернету. progress Отправляется для обозначения хода выполнения загрузки.flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent Отправляется для обозначения хода выполнения загрузки. Напоминает событие progress классов Loader и URLLoader. status Отправляется в случае сбоя обновления.flash.events.StatusEvent.STATUSflash.events.StatusEvent Отправляется в случае сбоя обновления. Сбой обновления может возникать по одной из следующих причин.

  • Вызывающее приложение работает в неподдерживаемой среде или архитектуре. В таком случае свойство code имеет значение DRM.UpdateFailedNotSupported, а свойство level — error.
  • Запрашиваемый пакет обновления не удается найти на сервере. В таком случае свойство code имеет значение DRM.UpdateFailedNotCurrentlyAvailable, а свойство level — error.
  • Модуль Flash Access не установлен. Эта ошибка аналогична коду DRM.UpdateNeeded, который отправляется в событии NetStatusEvent. Однако в этом случае сначала необходимо загрузить более свежую версию Flash Player. В таком случае свойство code имеет значение DRM.UpdateNeededButIncompatible, а свойство level — error. Чтобы выполнить обновление Flash Player, вызовите метод SystemUpdater.update(SystemUpdaterType.SYSTEM).
  • Не удалось загрузить новый модуль DRM. В таком случае свойство code имеет значение DRM.UpdateFailed, а свойство level — error.

open Отправляется после начала обновления.flash.events.Event.OPENflash.events.Event Отправляется после начала обновления. Обновление завершается, когда отправляется событие complete или когда отправляется событие IOErrorEvent, SecurityErrorEvent или StatusEvent. SystemUpdater Конструктор. Конструктор. cancel Отменяет активное обновление. Отменяет активное обновление. update Начинает обновление того или иного типа.typeString Начинает обновление того или иного типа. Типы обновления перечислены как константы в классе SystemUpdaterType. Одновременно во всех браузерах разрешается выполнять только одно обновление.

После начала обновления необходимо прослушивать события, определенные в этом классе. Следующие события указывают на завершение обновления и позволяют перейти к новому обновлению или к следующей попытке обновления, аналогично функции update():

  • complete
  • cancel
  • securityError
  • ioError
  • status

flash.system.SystemUpdaterType