flash.desktopNativeProcess Класс NativeProcess обеспечивает интеграцию командной строки и основных возможностей запуска.flash.events:EventDispatcher Класс NativeProcess обеспечивает интеграцию командной строки и основных возможностей запуска. Класс NativeProcess позволяет программе AIR выполнять собственные процессы в операционной системе хоста. Программа AIR может отслеживать стандартные потоки ввода (stdin) и вывода (stdout), а также стандартный поток ошибок (stderr) процесса.

Класс NativeProcess и его возможности доступны только для приложений AIR, установленных с помощью собственной программы установки (то есть для приложений с профилем расширенного рабочего стола). В ходе отладки можно передать аргумент -profile extendedDesktop в ADL, чтобы обеспечить возможность выполнения процессов NativeProcess. В среде выполнения можно проверить свойство NativeProcess.isSupported, чтобы определить, поддерживается ли связь с собственными процессами.

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

Приложения AIR, устанавливаемые с помощью собственной программы установки (то есть приложения с профилем расширенного рабочего стола), также используют для запуска File.openWithDefaultApplication. Однако класс NativeProcess обеспечивает прямой доступ к стандартным потокам ввода, вывода и ошибок.

Примечание. В среде AIR для ТВ-программ, в которых используется профиль extendedTV, можно использовать собственные расширения ActionScript для выполнения собственных процессов.

В следующем примере проверяется, поддерживает ли компьютер связь с собственными процессами. Если это так, программа создает прослушиватели событий для собственного процесса и запускает файл test.py в своем главном каталоге. : package { import flash.display.Sprite; import flash.desktop.NativeProcess; import flash.desktop.NativeProcessStartupInfo; import flash.events.Event; import flash.events.ProgressEvent; import flash.events.IOErrorEvent; import flash.events.NativeProcessExitEvent; import flash.filesystem.File; public class NativeProcessExample extends Sprite { public var process:NativeProcess; public function NativeProcessExample() { if(NativeProcess.isSupported) { setupAndLaunch(); } else { trace("NativeProcess not supported."); } } public function setupAndLaunch():void { var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); var file:File = File.applicationDirectory.resolvePath("test.py"); nativeProcessStartupInfo.executable = file; var processArgs:Vector.<String> = new Vector.<String>(); processArgs[0] = "foo"; nativeProcessStartupInfo.arguments = processArgs; process = new NativeProcess(); process.start(nativeProcessStartupInfo); process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData); process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onErrorData); process.addEventListener(NativeProcessExitEvent.EXIT, onExit); process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError); process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError); } public function onOutputData(event:ProgressEvent):void { trace("Got: ", process.standardOutput.readUTFBytes(process.standardOutput.bytesAvailable)); } public function onErrorData(event:ProgressEvent):void { trace("ERROR -", process.standardError.readUTFBytes(process.standardError.bytesAvailable)); } public function onExit(event:NativeProcessExitEvent):void { trace("Process exited with ", event.exitCode); } public function onIOError(event:IOErrorEvent):void { trace(event.toString()); } } } Добавьте следующий сценарий Python в файл с именем test.py, который находится в каталоге программы (и убедитесь, что установлен компонент Python):
 #!/usr/bin/python
 # ------------------------------------------------------------------------------
 # Sample Python script
 # ------------------------------------------------------------------------------
 
 import sys
 
 for word in sys.argv: #echo the command line arguments
     print word
 
 print "HI FROM PYTHON"
 print "Enter user name" 
 line = sys.stdin.readline()
 
 sys.stdout.write("hello," + line)
flash.external.ExtensionContextexit Сообщает о завершении работы собственного процесса.flash.events.NativeProcessExitEventflash.events.NativeProcessExitEvent Сообщает о завершении работы собственного процесса. Свойство exitCode содержит значение, которое процесс возвращает операционной системе хоста при завершении работы. Если программа AIR завершает процесс с помощью метода exit() объекта NativeProcess, свойство exitCode получает значение NaN. standardInputIoError Сообщает о том, что запись в стандартный поток ввода (stdin) не удалась.flash.events.IOErrorEventflash.events.IOErrorEvent Сообщает о том, что запись в стандартный поток ввода (stdin) не удалась. Объект NativeProcess отправляет это событие, когда метод closeInput() выполняется с ошибкой или когда среда выполнения не может записать данные в стандартный поток ввода собственного процесса. standardOutputIoError Сообщает о том, что чтение из потока stdout завершилось ошибкой.flash.events.IOErrorEventflash.events.IOErrorEvent Сообщает о том, что чтение из потока stdout завершилось ошибкой. Объект NativeProcess может отправлять это событие, когда среда выполнения не может прочитать данные из стандартного канала вывода собственного процесса. standardErrorIoError Сообщает о том, что не удалось прочитать данные из стандартного потока ошибок (stderror).flash.events.IOErrorEventflash.events.IOErrorEvent Сообщает о том, что не удалось прочитать данные из стандартного потока ошибок (stderror). Объект NativeProcess может отправлять это событие, когда среда выполнения не может прочитать данные из стандартного канала ошибок собственного процесса. standardInputClose Сообщает о том, что объект NativeProcess закрыл свой поток ввода с помощью метода closeInput().flash.events.Eventflash.events.Event Сообщает о том, что объект NativeProcess закрыл свой поток ввода с помощью метода closeInput(). Объект NativeProcess не отправляет это событие, когда собственный процесс закрывает поток ввода самостоятельно. standardInputProgress Сообщает о том, что объект NativeProcess записал данные в поток ввода для дочернего процесса.flash.events.ProgressEventflash.events.ProgressEvent Сообщает о том, что объект NativeProcess записал данные в поток ввода для дочернего процесса. Объект NativeProcess отправляет это событие, когда в поток записываются данные. Это событие не указывает на то, удалось ли дочернему процессу прочитать эти данные. standardErrorClose Сообщает о том, что объект NativeProcess закрыл свой поток ошибок.flash.events.Eventflash.events.Event Сообщает о том, что объект NativeProcess закрыл свой поток ошибок. standardErrorData Сообщает о том, что собственный процесс содержит данные, доступные для чтения, в стандартном потоке ошибок (stderror).flash.events.ProgressEventflash.events.ProgressEvent Сообщает о том, что собственный процесс содержит данные, доступные для чтения, в стандартном потоке ошибок (stderror). Объект NativeProcess отправляет это событие, когда переполняется стандартный поток ошибок дочернего процесса или когда заполняется внутренний буфер, используемый для связи между процессами. Не создавайте код, зависимый от размера такого внутреннего буфера, так как он неодинаковый в разных версиях и операционных системах. standardOutputClose Сообщает о том, что объект NativeProcess закрыл свой поток вывода.flash.events.Eventflash.events.Event Сообщает о том, что объект NativeProcess закрыл свой поток вывода. standardOutputData Сообщает о том, что у собственного процесса есть доступные для чтения данные в потоке вывода.flash.events.ProgressEventflash.events.ProgressEvent Сообщает о том, что у собственного процесса есть доступные для чтения данные в потоке вывода. Объект NativeProcess отправляет это событие, когда переполняется стандартный поток вывода дочернего процесса или когда заполняется внутренний буфер, используемый для связи между процессами. Не создавайте код, зависимый от размера такого внутреннего буфера, так как он неодинаковый в разных версиях и операционных системах. NativeProcess Создает неинициализированный объект NativeProcess. Создает неинициализированный объект NativeProcess. Чтобы запустить процесс, необходимо вызвать метод start(). start()closeInput Закрывает поток ввода этого процесса. Закрывает поток ввода этого процесса. Некоторые программы командной строки ожидают закрытия потока ввода для запуска других операций. Закрытый поток нельзя открыть снова, пока процесс не завершит работу и будет запущен снова. ioErrorStandardInputflash.events:IOErrorEventСуществует проблема, связанная с закрытием потока ввода данного процесса. Существует проблема, связанная с закрытием потока ввода данного процесса. standardInputCloseflash.events:EventПоток ввода закрыт. Поток ввода закрыт.exit Попытка завершить собственный процесс.forceBooleanfalseДолжна ли программа при необходимости пытаться принудительно завершить собственный процесс.

Если параметр force имеет значение false, этот метод пытается завершить собственный процесс без принуждения. Этот метод ненастойчиво «просит» собственной процесс завершить работу. Собственный процесс может проигнорировать такой запрос, в результате чего этот метод не гарантирует его завершение. Объект NativeProcess отправляет событие NativeProcessExitEvent только в случае завершения собственного процесса.

Если параметр force имеет значение true, этот метод пытается принудительно завершить собственный процесс. Вызывать этот метод с параметром force, для которого задано значение true, следует только в крайних случаях. Если для параметра force задано значение true, этот метод может оказать отрицательное воздействие на состояние системных ресурсов, связанных с собственным процессом. Например, открытые файлы могут остаться несогласованными. Среда выполнения будет предпринимать все попытки для принудительного завершения собственного процесса. Однако это не гарантирует завершения собственного процесса. Объект NativeProcess отправляет событие NativeProcessExitEvent только в случае завершения собственного процесса.

Если объект NativeProcess успешно завершит работу, он отправляет событие NativeProcessExitEvent.

Попытка завершить собственный процесс.
start Запускает собственный процесс, указанный в предоставленных данных о запуске.если в данный момент выполняется NativeProcess. IllegalOperationErrorflash.errors:IllegalOperationErrorесли свойство nativePath экземпляра NativeProcessStartupInfo не существует. ArgumentErrorArgumentErrorесли не удалось запустить NativeProcess. ErrorErrorinfoflash.desktop:NativeProcessStartupInfoNativeProcessStartupInfo определяет информацию о запуске собственного процесса. Запускает собственный процесс, указанный в предоставленных данных о запуске. После запуска процесса открываются все потоки ввода и вывода. Этот метод возвращает результат сразу после того, как операционной системе отправляется запрос на запуск указанного процесса. Объект NativeProcess выдает исключение IllegalOperationError, если в данное время выполняется процесс. Процесс выполняется, если свойство running объекта NativeProcess имеет значение true. Если операционная система не может запустить процесс, отправляется исключение Error.

Экземпляр NativeProcess соответствует одному процессу в операционной системе. Если требуется одновременно выполнить несколько экземпляров одного процесса операционной системы, можно создать по одному экземпляру NativeProcess для каждого дочернего процесса.

Этот метод можно вызывать каждый раз, когда свойство running объекта NativeProcess возвращает значение false. Это означает, что объект NativeObject можно использовать повторно. Другими словами, можно создать экземпляр NativeProcess, вызвать метод start(), дождаться события exit, а затем вызвать метод start() еще раз. Можно использовать другой объект NativeProcessStartupInfo в качестве значения параметра info в следующем вызове метода start().

Класс NativeProcess и его возможности доступны только для программ AIR, установленных с помощью собственной программы установки. В ходе отладки можно передать аргумент -profile extendedDesktop в ADL, чтобы обеспечить возможность выполнения процессов NativeProcess. Проверьте свойство NativeProcess.isSupported, чтобы определить, поддерживается ли связь с собственными процессами.

Важные моменты с точки зрения безопасности

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

Однако проверка ввода может представлять определенную трудность. Чтобы избежать таких трудностей, лучше написать собственное приложение (например, EXE-файл в ОС Windows), со специальными API-интерфейсами. Эти API должны обрабатывать только те команды, которые необходимы именно для приложения AIR. Например, собственное приложение может принимать только ограниченный набор инструкций через стандартный поток ввода.

Среда выполнения AIR в ОС Windows не разрешает непосредственное выполнение файлов .bat. Файлы .bat системы Windows выполняются программой интерпретатора команд (cmd.exe). При вызове файла .bat это приложение интерпретирует аргументы, передаваемые команде, как дополнительные приложения, которые требуется запустить. Вредоносная вставка лишних символов в строку аргумента может привести к выполнению приложением cmd.exe вредоносного или небезопасного приложения. Например, без надлежащей проверки данных приложение AIR может вызвать myBat.bat myArguments c:/evil.exe. В результате этого приложение cmd.exe вместе с файлом .bat запустит приложение evil.exe.

Если вызвать метод start() вместе с файлом .bat, объект NativeProcess выдаст исключение. Свойство message объекта Error содержит строку «Error #3219: The NativeProcess could not be started» (Ошибка №3219. Не удалось запустить собственный процесс).

NativeProcessStartupInfo
isSupported Указывает, поддерживает ли текущий профиль выполнение собственных процессов.Boolean Указывает, поддерживает ли текущий профиль выполнение собственных процессов. Это свойство возвращает значение true только при выполнении в профиле extendedDesktop. Кроме того, значением NativeProcess.isSupported всегда является false для программ, установленных в качестве файла AIR. Для использования класса NativeProcess необходимо упаковать программу AIR с использование флага ADT -target native. running Указывает, выполняется ли этот собственный процесс в настоящее время.Boolean Указывает, выполняется ли этот собственный процесс в настоящее время. Процесс выполняется, если был вызван метод start() и объект NativeProcess еще не отправил события exit. Экземпляр NativeProcess соответствует одному процессу в операционной системе. Это свойство сохраняет значение true, пока выполняется основной процесс операционной системы (с момента запуска собственного процесса и до возвращения процессом кода выхода операционной системе). standardError Обеспечивает доступ к стандартному выводу ошибок из этого собственного процесса.flash.utils:IDataInputесли данные отсутствуют и предпринята операция чтения. EOFErrorflash.errors:EOFError Обеспечивает доступ к стандартному выводу ошибок из этого собственного процесса. По мере того как через этот поток поступают данные, объект NativeProcess отправляет объект события ProgressEvent. При попытке прочитать данные этого потока, когда они еще не доступны, объект NativeProcess выдает исключение EOFError.

Применяется тип IDataInput, так как с точки зрения текущего процесса выполняется ввод данных, несмотря на то что для этого используется поток вывода дочернего процесса.

flash.events.ProgressEventflash.utils.IDataInput
standardInput Обеспечивает доступ к стандартному вводу этого собственного процесса.flash.utils:IDataOutputпри записи этого значения, когда running возвращает значение false, или при попытке записать данные в закрытый поток ввода. IllegalOperationErrorflash.errors:IllegalOperationError Обеспечивает доступ к стандартному вводу этого собственного процесса. Этот канал используется для отправки данных этому процессу. Каждый раз при записи данных в свойство input они при первой возможности записываются в поток ввода собственного процесса.

Применяется тип IDataOutput, потому что с точки зрения текущего процесса выполняется вывод данных, несмотря на то что для этого используется поток ввода дочернего процесса.

closeInput()IDataOutput
standardOutput Обеспечивает доступ к стандартному потоку вывода этого собственного процесса.flash.utils:IDataInputесли данные отсутствуют и предпринята операция чтения. EOFErrorflash.errors:EOFError Обеспечивает доступ к стандартному потоку вывода этого собственного процесса. Этот поток служит для чтения данных из стандартного потока вывода собственного процесса. Когда в этом потоке есть данные, объект NativeProcess отправляет объект события ProgressEvent. При попытке прочитать данные этого потока, когда они еще не доступны, объект NativeProcess выдает исключение EOFError.

Применяется тип IDataInput, потому что с точки зрения текущего процесса выполняется ввод данных, несмотря на то что для этого используется поток вывода дочернего процесса.

flash.utils.IDataInputflash.events.ProgressEvent
InteractiveIcon Класс InteractiveIcon представляет собой базовый класс значков приложений ОС.flash.desktop:Icon Класс InteractiveIcon представляет собой базовый класс значков приложений ОС.

Чтобы получить экземпляр значка приложения, воспользуйтесь свойством icon объекта NativeApplication. Типом значка является один из подклассов базового класса InteractiveIcon. В Mac OS X® — это DockIcon, в Windows® и Linux — SystemTrayIcon.

Создание экземпляров класса InteractiveIcon невозможно. Вызовы конструктора new InteractiveIcon() выдают исключение ArgumentError.

flash.desktop.NativeApplication.iconflash.desktop.NativeApplication.supportsDockIconflash.desktop.NativeApplication.supportsSystemTrayIconbitmaps Изображение значка в массиве объектов BitmapData различных размеров.Array Изображение значка в массиве объектов BitmapData различных размеров.

При отображении значка в контексте конкретной ОС из массива выбирается изображение, размер которого в максимальной степени подходит под текущий размер экрана (при необходимости масштабируется). Обычные размеры включают: 16x16, 32x32, 48x48 и 128x128. (В ближайшем будущем в некоторых ОС могут использоваться значки размером 512x512 пикселей.)

В некоторых контекстах, если свойству bitmaps ничего присвоено не было, может использоваться значок ОС по умолчанию. В остальных контекстах значок не отображается.

Чтобы изменить вид значка, присвойте свойству bitmaps массив объектов BitmapData.

icon.bitmaps = new Array(icon16x16.bitmapData, icon128x128.bitmapData);

Прямая модификация массива bitmaps ни к чему не приведет.

Чтобы убрать изображение значка, присвойте свойству bitmaps пустой массив.

Примечание. Загружайте файлы изображений для значков в формате PNG, так как этот формат обеспечивает наилучшее альфа-смешивание. Формат GIF поддерживает только включение или отключение прозрачности, но не смешивание. Формат JPG не поддерживает прозрачность совсем.

height Текущее значение высоты значка в пикселях.int Текущее значение высоты значка в пикселях.

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

width Текущее значение ширины значка в пикселях.int Текущее значение ширины значка в пикселях.

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

InvokeEventReason В классе InvokeEventReason перечислены значения, возвращенные свойством reason объекта InvokeEvent.Определяет константы, представляющие способы вызова приложения через операционную систему. Object В классе InvokeEventReason перечислены значения, возвращенные свойством reason объекта InvokeEvent. flash.events.InvokeEvent.reasonLOGIN Указывает, что событие InvokeEvent произошло вследствие входа пользователя в систему.loginString Указывает, что событие InvokeEvent произошло вследствие входа пользователя в систему. STANDARD Указывает, что событие InvokeEvent произошло по причине, отличной от входа в систему.standardString Указывает, что событие InvokeEvent произошло по причине, отличной от входа в систему. NativeDragActions Класс NativeDragActions задает строковые константы для имен операций перетаскивания.Object Класс NativeDragActions задает строковые константы для имен операций перетаскивания.

Константы NativeDragActions используются в качестве значений свойства dropAction классов NativeDragManager и NativeDragEvent.

flash.desktop.NativeDragManagerflash.events.NativeDragEventCOPY Задает строку для операции копирования.copyString Задает строку для операции копирования. LINK Задает строку для операции создания связок.linkString Задает строку для операции создания связок. MOVE Задает строку для операции перемещения.moveString Задает строку для операции перемещения. NONE Задает строку, которая будет использоваться, если операция не указана.noneString Задает строку, которая будет использоваться, если операция не указана.

В событии nativeDragComplete действие none указывает на то, что пользователь не завершил операцию перетаскивания.

ClipboardFormats Класс ClipboardFormats определяет константы имен стандартных форматов данных при использовании класса Clipboard.Object Класс ClipboardFormats определяет константы имен стандартных форматов данных при использовании класса Clipboard. Flash Player 10 поддерживает только следующие форматы данных: TEXT_FORMAT, RICH_TEXT_FORMAT и HTML_FORMAT. flash.desktop.ClipboardBITMAP_FORMAT Данные изображения (только для AIR).air:bitmapString Данные изображения (только для AIR). FILE_LIST_FORMAT Массив файлов (только для AIR).air:file listString Массив файлов (только для AIR). FILE_PROMISE_LIST_FORMAT Список предварительных образов файлов (только для AIR).air:file promise listString Список предварительных образов файлов (только для AIR). HTML_FORMAT Данные HTML.air:htmlString Данные HTML. RICH_TEXT_FORMAT Данные в формате RTF.air:rtfString Данные в формате RTF. TEXT_FORMAT Строковые данные.air:textString Строковые данные. URL_FORMAT Строка URL-адреса (только для AIR).air:urlString Строка URL-адреса (только для AIR). NativeApplication Класс NativeApplication представляет приложение AIR.flash.events:EventDispatcher Класс NativeApplication представляет приложение AIR.

Класс NativeApplication предоставляет информацию о приложении, дает доступ к самым распространенным функциям приложения и отправляет события уровня приложения.

Единственный экземпляр объекта NativeApplication автоматически создается при запуске. Получить экземпляр объекта NativeApplication приложения можно через статическое свойство NativeApplication.nativeApplication.

keyUp Отправляется, когда пользователь отпускает клавишу.flash.events.KeyboardEvent.KEY_UPflash.events.KeyboardEvent Отправляется, когда пользователь отпускает клавишу. Экземпляр NativeApplication обеспечивает это событие к командным клавишам клавиатуры поддержки. Это событие клавиатуры отправлено сначала NativeApplication. Отменение этого события не имеет никаких эффектов на другие объекты (например, командные клавиши меню NativeWindow). Это событие имеет место после a keyDown событие. flash.display.InteractiveObject.keyUpkeyDown Отправляется, когда пользователь нажимает клавишу.flash.events.KeyboardEvent.KEY_DOWNflash.events.KeyboardEvent Отправляется, когда пользователь нажимает клавишу. Экземпляр NativeApplication обеспечивает это событие к командным клавишам клавиатуры поддержки. Это событие клавиатуры отправлено сначала NativeApplication. Отменение этого события также отменяет командные клавиши меню NativeWindow. Это событие происходит перед событием keyUp. flash.display.InteractiveObject.keyDownuserPresent Отправляется при обнаружении нажатий клавиш или кнопок мыши в среде ОС в режиме ожидания.flash.events.Event.USER_PRESENTflash.events.Event Отправляется при обнаружении нажатий клавиш или кнопок мыши в среде ОС в режиме ожидания.

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

Период времени, после которого наступает режим ожидания, регулируется свойством idleThreshold. Время, прошедшее с момента перехода в режим ожидания, определяется в свойстве timeSinceLastUserInput.

idleThresholdtimeSinceLastUserInput
userIdle Отправляется, когда пользователь неактивен.flash.events.Event.USER_IDLEflash.events.Event Отправляется, когда пользователь неактивен.

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

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

idleThresholdtimeSinceLastUserInput
networkChange Отправляется при обнаружении нового сетевого подключения или при разрыве существующего соединения.flash.events.Event.NETWORK_CHANGEflash.events.Event Отправляется при обнаружении нового сетевого подключения или при разрыве существующего соединения.

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

Примечания.

  • Между изменением состояния сети и доставкой данного события может существовать небольшая задержка.
  • На платформе Android объект NativeApplication может отправлять несколько событий networkChange для каждого изменения подключения к сети.
exiting Отправляется при запуске последовательности операций выхода из приложения.flash.events.Event.EXITINGflash.events.Event Отправляется при запуске последовательности операций выхода из приложения.

Событие exiting отправляется, когда ОС инициирует процедуру завершения программы. Например, по нажатию комбинации клавиш Cmd-Q в ОС Mac OS X или когда свойство autoExit объекта NativeApplication принимает значение true и закрывается окно последней активной программы. При отмене данного события выход из приложения не осуществляется.

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

Примечание. Вызов метода exit() NativeApplication не приводит к прекращению отправки события exiting. Для уведомления компонентов о предстоящем выходе следует отправить событие exiting до вызова метода exit().

deactivate Отправляется, когда фокус перемещается с рабочего стола на приложение.flash.events.Event.DEACTIVATEflash.events.Event Отправляется, когда фокус перемещается с рабочего стола на приложение. activate Отправляется, когда данное приложение становится приложением активного рабочего стола.flash.events.Event.ACTIVATEflash.events.Event Отправляется, когда данное приложение становится приложением активного рабочего стола. browserInvoke Отправляется при вызове приложения SWF-файлом, выполняющимся в обозревателе пользователя.flash.events.BrowserInvokeEvent.Browser_INVOKEflash.events.BrowserInvokeEvent Отправляется при вызове приложения SWF-файлом, выполняющимся в обозревателе пользователя.

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

<allowBrowserInvocation>true</allowBrowserInvocation>
invoke Отправляется при вызове приложения.flash.events.InvokeEvent.INVOKEflash.events.InvokeEvent Отправляется при вызове приложения.

При повторном вызове приложения его копия не запускается. Вместо этого первой копии приложения поступает дополнительное событие о вызове. Дальнейшая реакция на повторные события invoke зависит от самого приложения.

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

activate Активирует данное приложение.windowflash.display:NativeWindownullАктивируемый с приложением объект NativeWindow окна. Активирует данное приложение.

Этот метод не поддерживается на платформах, на которых отсутствует поддержка класса NativeWindow.

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

Если такая возможность поддерживается ОС, то указанное окно становится активным и появляется на рабочем столе поверх остальных окон или приложений. (Если параметр window принимает значение null, то активируется видимое окно данной программы.)

При работе с приложениями без видимых окон метод activate() не подходит.

Операция активации является синхронной.

activateflash.events:EventОтправляется при изменении состояния активности. Отправляется при изменении состояния активности.
addEventListener Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии.typeStringТип события. listenerFunctionФункция прослушивателя, обрабатывающая событие. Эта функция должна принимать объект Event в качестве единственного параметра и не должна что-либо возвращать , как показано в примере: function(evt:Event):void

Эта функция может иметь любое имя.

useCaptureBooleanfalse Определяет, работает ли прослушиватель в фазе захвата или в целевой фазе и в фазе восходящей цепочки. Если значение useCapture равно true, прослушиватель обрабатывает событие только во время фазы захвата, но не во время целевой фазы или фазы восходящей цепочки. Если значение useCapture равно false, то прослушиватель обрабатывает событие только в целевой фазе или фазе восходящей цепочки. Чтобы прослушивать событие во всех трех фазах, необходимо вызвать addEventListener() дважды: один раз с useCapture в значении true, а другой — с useCapture в значении false. priorityint0Уровень приоритета прослушивателя событий. Приоритет определяется 32-разрядным целым числом со знаком. Чем больше число, тем выше приоритет. Все прослушиватели событий с приоритетом n обрабатываются перед прослушивателями с приоритетом n-1. Прослушиватели с одинаковым приоритетом обрабатываются в порядке их добавления. Значение приоритета по умолчанию равно 0. useWeakReferenceBooleanfalseОпределяет, является ли ссылка на listener «сильной» или «слабой». «Сильная» ссылка (по умолчанию) предотвращает удаление listener сборщиком мусора. «Слабая» ссылка не выполняет эту функцию.

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

Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. Можно регистрировать прослушиватели событий в любом узле из списка отображения для каждого типа события, фазы и приоритета.

После успешной регистрации прослушивателя событий невозможно изменить его приоритет путем дополнительных вызовов addEventListener(). Чтобы изменить приоритет прослушивателя, необходимо сначала вызвать метод removeListener(). Затем можно снова зарегистрировать прослушиватель с новым приоритетом.

Следует учесть, что после регистрации прослушивателя последующие вызовы метода addEventListener() с другим значением свойства type или useCapture приводят к регистрации другого прослушивателя. Например, прослушиватель, изначально зарегистрированный со значением useCapture, равным true, прослушивает только во время фазы захвата. Если вызвать метод addEventListener() еще раз с тем же объектом прослушивателя, но со свойством useCapture в значении false, то будет два прослушивателя: один — прослушивающий в фазе захвата, а другой — в целевой фазе и фазе восходящей цепочки.

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

Если прослушиватель событий больше не нужен, его можно удалить, вызвав метод removeEventListener(), иначе могут возникнуть проблемы с памятью. Прослушиватели событий не удаляются из памяти автоматически, так как сборщик мусора не удаляет прослушиватель, пока существует объект, отправляющий соответствующее событие (если параметру useWeakReference не задано значение true).

Копирование экземпляра EventDispatcher не приводит к копированию прослушивателей событий, присоединенных к нему. (Если для вновь создаваемого узла требуется прослушиватель событий, его необходимо присоединить после создания узла.) При этом при перемещении экземпляра EventDispatcher присоединенные к нему прослушиватели событий перемещаются вместе с ним.

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

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

clear Вызывает внутреннюю команду delete экранного объекта с фокусом.true. Boolean Вызывает внутреннюю команду delete экранного объекта с фокусом.

Если объект с фокусом не поддерживает эту команду, вызов функции игнорируется. В настоящее время эту команду поддерживают только те экранные объекты, которые происходят от классов TextField или HTMLLoader.

Примечание. Команда clear() удаляет выбранный текст. При отсутствии выбранного текста весь текст не удаляется.

copy Вызывает внутреннюю команду copy экранного объекта с фокусом.Boolean Вызывает внутреннюю команду copy экранного объекта с фокусом.

Если компонент не поддерживает эту команду, вызов функции игнорируется. В настоящее время эту команду поддерживают только те экранные объекты, которые происходят от классов TextField или HTMLLoader.

cut Вызывает внутреннюю команду cut экранного объекта с фокусом.true. Boolean Вызывает внутреннюю команду cut экранного объекта с фокусом.

Если компонент не поддерживает эту команду, вызов функции игнорируется. В настоящее время эти команды поддерживают только те экранные объекты, которые происходят от классов TextField или HTMLLoader.

dispatchEvent Посылает событие в поток событий.Значение true в случае успешной передачи события. Значение false указывает на ошибку или на то, что для события был вызван метод preventDefault(). Booleaneventflash.events:EventОбъект события, передаваемый в поток событий. Если осуществляется повторная отправка события, автоматически создается его клон. После отправки события нельзя изменить его свойство target, поэтому необходимо создать новую копию события, чтобы обеспечить правильное выполнение повторной отправки. Посылает событие в поток событий. Целью события является объект EventDispatcher, для которого вызывается метод dispatchEvent(). exit Завершает приложение.errorCodeint0Код выхода, сообщаемый ОС при выходе приложения. Завершает приложение.

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

Имейте в виду, что событие exiting не отправляется. Если архитектура программы подразумевает использование события exiting, произведите вызов метода NativeApplication.nativeApplication.dispatchEvent(), передав ему в качестве аргумента объект Event типа exiting. Для любых открытых окон объекты NativeWindow отправляют события closing и close. Вызов метода preventDefault() для объекта события closing предотвращает завершение работы приложения.

Примечание. Этот метод не поддерживается в операционной системе ОС iOS.

getDefaultApplication Определяет приложение по умолчанию для открытия файлов с указанным расширением.Если параметр extension не содержит ни одного расширения файла, объявленного в дескрипторе приложения. ErrorErrorПуть к приложению по умолчанию. StringextensionStringСтрока с интересующим расширением типа файла (без «.»). Определяет приложение по умолчанию для открытия файлов с указанным расширением.

Примечание. Данный метод применим только к типам файлов, объявленным в инструкции fileTypes дескриптора приложения.

Этот метод не применим в среде AIR для телевизионных устройств. Если он вызывается с типом файла, объявленным в дескрипторе программы, возвращается значение null.

applicationDescriptor
isSetAsDefaultApplication Указывает, является ли данное приложение текущим приложением по умолчанию для обработки файлов с указанным расширением.Если параметр extension не содержит ни одного расширения файла, объявленного в дескрипторе приложения. ErrorErrortrue, если по умолчанию используется данное приложение. BooleanextensionStringСтрока с интересующим расширением типа файла (без «.»). Указывает, является ли данное приложение текущим приложением по умолчанию для обработки файлов с указанным расширением.

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

applicationDescriptorsupportsDefaultApplication
paste Вызывает внутреннюю команду paste экранного объекта с фокусом.true. Boolean Вызывает внутреннюю команду paste экранного объекта с фокусом.

Если компонент не поддерживает эту команду, вызов функции игнорируется. В настоящее время эту команду поддерживают только те экранные объекты, которые происходят от классов TextField или HTMLLoader.

removeAsDefaultApplication Отменяет использование данного приложения в качестве приложения по умолчанию для обработки файлов с указанным расширением.Если параметр extension не содержит ни одного расширения файла, объявленного в дескрипторе приложения. ErrorErrorextensionStringСтрока с интересующим расширением типа файла (без «.»). Отменяет использование данного приложения в качестве приложения по умолчанию для обработки файлов с указанным расширением.

Примечание. Данный метод применим только к типам файлов, объявленным в инструкции fileTypes дескриптора приложения.

applicationDescriptorsupportsDefaultApplication
removeEventListener Удаляет прослушиватель из объекта EventDispatcher.typeStringТип события. listenerFunctionУдаляемый объект прослушивателя. useCaptureBooleanfalse Указывает, был ли прослушиватель зарегистрирован для фазы захвата или целевой фазы и фазы восходящей цепочки. Если прослушиватель зарегистрирован и для фазы захвата, и для фаз цели и восходящей цепочки, метод removeEventListener() необходимо вызвать дважды: один раз с useCapture() в значении true, а другой раз с useCapture() в значении false. Удаляет прослушиватель из объекта EventDispatcher. При отсутствии прослушивателя, зарегистрированного с объектом EventDispatcher, вызов этого метода не оказывает эффекта. selectAll Вызывает внутреннюю команду selectAll экранного объекта с фокусом.true. Boolean Вызывает внутреннюю команду selectAll экранного объекта с фокусом.

Если компонент не поддерживает эту команду, вызов функции игнорируется. В настоящее время эту команду поддерживают только те экранные объекты, которые происходят от классов TextField или HTMLLoader.

setAsDefaultApplication Задает данное приложение в качестве приложения по умолчанию для обработки файлов с указанным расширением.Если параметр extension не содержит ни одного расширения файла, объявленного в дескрипторе приложения. ErrorErrorextensionStringСтрока с интересующим расширением типа файла (без «.»). Задает данное приложение в качестве приложения по умолчанию для обработки файлов с указанным расширением.

Примечание. Данный метод применим только к типам файлов, объявленным в инструкции fileTypes дескриптора приложения.

applicationDescriptorsupportsDefaultApplication
activeWindow Окно активного приложения.flash.display:NativeWindow Окно активного приложения.

Если активное окно рабочего стола не относится к этому приложению или активные окна отсутствуют, свойство activeWindow имеет значение null.

Это свойство не поддерживается на платформах, на которых отсутствует поддержка класса NativeWindow.

applicationDescriptor Содержимое файла дескриптора приложения данного приложения AIR.XML Содержимое файла дескриптора приложения данного приложения AIR. Следующий пример считывает элементы copyright и version из файла дескриптора приложения. Обратите внимание на то, что необходимо использовать пространство имен по умолчанию, определенное в XML-файле дескриптора приложения. var appDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor; var ns:Namespace = appDescriptor.namespace(); var appCopyright:String = appDescriptor.ns::copyright; var appVersion:String = appDescriptor.ns::version; trace("appId:", appCopyright); trace("version:", appVersion); applicationID Идентификатор приложения данного приложения.String Идентификатор приложения данного приложения.

Значение идентификатора приложения задается в файле дескриптора приложения.

autoExit Указывает, должно ли приложение автоматически завершаться при закрытии всех его окон.Boolean Указывает, должно ли приложение автоматически завершаться при закрытии всех его окон.

Если autoExit принимает значение true (по умолчанию), то при закрытии всех окон приложения само приложение автоматически завершает работу. Оба события exiting и exit отправляются. Если autoExit принимает значение false, то для завершения работы приложения требуется осуществить вызов функции NativeApplication.nativeApplication.exit().

Это свойство не поддерживается на платформах, на которых отсутствует поддержка класса NativeWindow.

icon Значок приложения.flash.desktop:InteractiveIcon Значок приложения.

Для определения класса значка используйте NativeApplication.supportsDockIcon и NativeApplication.supportsSystemTrayIcon. Выбранный тип принадлежит одному из подклассов InteractiveIcon. В ОС Mac® OS X NativeApplication.icon является объектом типа DockIcon. В ОС Windows® объект NativeApplication.icon принадлежит к типу SystemTrayIcon. Когда значок программы не поддерживается, свойства NativeApplication.supportsDockIcon и NativeApplication.supportsSystemTrayIcon имеют значение false, а свойство icon имеет значение null.

Объект icon создается автоматически, однако его инициализации с данными изображения не происходит. В некоторых ОС, например в Mac OS X, используется изображение по умолчанию. В остальных случаях, например в Windows, значок отображается только после присвоения ему данных изображения. Для присвоения изображения значка следует настроить свойство icon.bitmaps на работу с массивом, в котором содержится, по крайней мере, один объект BitmapData. Если в массиве содержится более одного объекта BitmapData, то ОС выбирает изображение, размер которого в наибольшей степени соответствует размерам значка на экране, и масштабирует его по мере необходимости.

supportsDockIconflash.desktop.DockIconsupportsSystemTrayIconflash.desktop.SystemTrayIcon
idleThreshold Период времени в секундах с момента последнего пользовательского ввода до отправки события userIdle.intПри попытке установки свойства в недействительное значение. Приемлемый диапазон значений от 5 (5 секунд) до 86 400 (1 день) включительно. ArgumentErrorArgumentError Период времени в секундах с момента последнего пользовательского ввода до отправки события userIdle.

По умолчанию используется значение 300 секунд (5 минут). Приемлемый диапазон значений от 5 (5 секунд) до 86 400 (1 день) включительно.

userIdleuserPresent
menu Меню приложения.flash.display:NativeMenu Меню приложения.

Поддержка меню приложений осуществляется, если NativeApplication.nativeApplication.supportsMenu принимает значение true. Меню приложений поддерживают не все ОС. Например, меню приложений поддерживаются в Mac OS X, но не поддерживаются в Windows или Linux. Присвоить данному свойству объект NativeMenu, если NativeApplication.nativeApplication.supportsMenu принимает значение false, возможно, однако это не приведет к выполнению какого-либо действия. Свойство NativeApplication.nativeApplication.supportsMenu позволяет определить, поддерживает ли операционная система прикладные меню. Использование других средств (например, Capabilities.os) для определения поддержки может привести к ошибкам программирования (если некоторые целевые операционные системы не рассматриваются).

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

Примечание. Свойство menu в Mac OS X ссылается на меню приложения, используемое в ОС по умолчанию. Существующую структуру меню можно модифицировать путем добавления или удаления элементов либо путем добавления прослушивателей событий. Также можно полностью заменить используемые по умолчанию меню, присвоив свойству menu новый объект NativeMenu.

flash.display.NativeMenuflash.display.NativeWindow.supportsMenu
nativeApplication Единственный экземпляр объекта NativeApplication.flash.desktop:NativeApplicationПри доступе из внешней среды за пределами изолированной программной среды безопасности приложения. ErrorError Единственный экземпляр объекта NativeApplication. openedWindows В массиве содержатся все собственные открытые окна данного приложения.Array В массиве содержатся все собственные открытые окна данного приложения.

Это свойство не поддерживается на платформах, на которых отсутствует поддержка класса NativeWindow.

publisherID Идентификатор издателя данного приложения.String Идентификатор издателя данного приложения.

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

runtimePatchLevel Уровень исправления среды, в которой запускается данное приложение.uint Уровень исправления среды, в которой запускается данное приложение. runtimeVersion Номер версии среды, в которой запускается данное приложение.String Номер версии среды, в которой запускается данное приложение. startAtLogin Указывает, будет ли данное приложение автоматически запускаться при входе текущего пользователя в систему.BooleanВ Windows при наличии другого приложения с тем же именем, но с другим путем к исполняемому файлу, настроенного на запуск при входе пользователя в систему. IllegalOperationErrorflash.errors:IllegalOperationErrorЕсли данное приложение не установлено, как это может произойти при запуске с помощью AIR Debug Launcher (ADL). IllegalOperationErrorflash.errors:IllegalOperationError Указывает, будет ли данное приложение автоматически запускаться при входе текущего пользователя в систему.

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

За состояние определенного ОС механизма автоматического запуска приложения при входе пользователя в систему отвечает свойство startAtLogin. Используя пользовательский интерфейс ОС, пользователь может самостоятельно изменить данное состояние. Это свойство отражает текущее состояние, а именно, было ли оно изменено ОС или приложением AIR.

supportsStartAtLogin
supportsDefaultApplication Указывает, поддерживает ли текущая платформа setAsDefaultApplication(), removeAsDefaultApplication() и isSetAsDefaultApplication().Boolean Указывает, поддерживает ли текущая платформа setAsDefaultApplication(), removeAsDefaultApplication() и isSetAsDefaultApplication().

Если это свойство имеет значение true, вышеупомянутые методы будут работать согласно описанию. Если оно имеет значение false, то setAsDefaultApplication() и removeDefaultApplication() не дают результатов, а isSetAsDefaultApplication() возвращает значение false.

setAsDefaultApplication()removeAsDefaultApplication()isSetAsDefaultApplication()
supportsDockIcon Указывает, поддерживает ли AIR в данной ОС значки программ на панели задач.Boolean Указывает, поддерживает ли AIR в данной ОС значки программ на панели задач.

При значении true свойство NativeApplication.icon принадлежит к типу DockIcon.

Пользовательский интерфейс ОС Mac OS X включает панель Dock, содержащую значки программ, которые выполняются в данный момент или часто используются.

Свойство NativeApplication.supportsDockIcon позволяет определить, поддерживает ли операционная система значки панелей приложений. Использование других средств (например, Capabilities.os) для определения поддержки может привести к ошибкам программирования (если некоторые целевые операционные системы не рассматриваются).

Значокflash.desktop.DockIcon
supportsMenu Указывает, поддерживает ли текущая ОС глобальные строки меню приложений.Boolean Указывает, поддерживает ли текущая ОС глобальные строки меню приложений.

При значении true свойство NativeApplication.menu может быть использовано для получения доступа или определения собственного меню приложения.

Свойство NativeApplication.supportsMenu позволяет определить, поддерживает ли операционная система строки меню приложений. Использование других средств (например, Capabilities.os) для определения поддержки может привести к ошибкам программирования (если некоторые целевые операционные системы не рассматриваются).

menuflash.display.NativeWindow.supportsMenu
supportsStartAtLogin Указывает, поддерживает ли текущая платформа startAtLogin.Boolean Указывает, поддерживает ли текущая платформа startAtLogin.

Если имеет значение true, startAtLogin работает согласно описанию. Если имеет значение false, startAtLogin не дает результатов.

startAtLogin
supportsSystemTrayIcon Указывает, поддерживает ли AIR в данной ОС значки на панели задач.Boolean Указывает, поддерживает ли AIR в данной ОС значки на панели задач.

При значении true свойство NativeApplication.icon принадлежит к типу SystemTrayIcon.

Пользовательский интерфейс ОС Windows включает область значков на панели задач, которая называется областью уведомлений, где могут отображаться значки приложений. Значки по умолчанию не отображаются. Для отображения значка необходимо задать массив bitmaps объекта Icon.

Свойство NativeApplication.supportsSystemTrayIcon позволяет определить, поддерживает ли операционная система значки на панели задач. Использование других средств (например, Capabilities.os) для определения поддержки может привести к ошибкам программирования (если некоторые целевые операционные системы не рассматриваются).

Значокflash.desktop.SystemTrayIcon
systemIdleMode Позволяет приложениям предотвращать переход пользовательского интерфейса в ждущий режим.String Позволяет приложениям предотвращать переход пользовательского интерфейса в ждущий режим.

Значение из класса SystemIdleMode, позволяющее изменять поведение системы хоста, связанное с переходом в ждущим режим или выходом из него. Это свойство имеет силу для приложения с фокусом ввода. Его можно получить только через содержимое, выполняемое в изолированной программной среде приложения.

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

flash.desktop.SystemIdleMode
timeSinceLastUserInput Время в секундах с момента последнего пользовательского ввода.int Время в секундах с момента последнего пользовательского ввода. userIdleuserPresent
Updater Класс Updater используется для обновления версии текущего запущенного приложения.Object Класс Updater используется для обновления версии текущего запущенного приложения. Чтобы воспользоваться данным классом, следует создать объект Updater, а затем вызвать его метод update().

Класс Updater поддерживается только в профиле персональных компьютеров. Его не поддерживают программы расширенного рабочего стола (которые устанавливаются с помощью собственной программы установки), а также программы с профилем AIR для мобильных устройств или профилем AIR для телевизионных устройств. Проверьте свойство Updater.isSupported.

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

air.update.ApplicationUpdaterair.update.ApplicationUpdaterUIUpdater Функция конструктора для класса Updater. Функция конструктора для класса Updater. Обратите внимание, что метод update() не является статическим методом класса. Для вызова метода update() необходимо сначала создать объект Updater. update Производит обновление версии текущего запущенного приложения на версию приложения, указанную в файле AIR.Данный метод был вызван при работе в ADL. IllegalOperationErrorflash.errors:IllegalOperationErrorairFileflash.filesystem:FileОбъект File, указывающий на файл AIR, в котором хранится версия приложения для обновления. versionStringТребуемая версия нового файла AIR. Для успешного проведения обновления необходимо, чтобы строка атрибута version основного элемента application файла дескриптора приложения для файла AIR совпадала с данным значением. Производит обновление версии текущего запущенного приложения на версию приложения, указанную в файле AIR. Необходимо, чтобы приложение в файле AIR имело тот же идентификатор (appID), что и текущее запущенное приложение.

Вызов этого метода приводит к завершению работы приложения (как это происходит при вызове метода NativeApplication.exit()). Такое поведение объясняется тем, что Adobe AIR не может провести полное обновление приложения без завершения его работы. После успешного проведения обновления версии приложения на более новую, оно запускается вновь. Если установка новой версии не может быть завершена (например, если ее идентификатор приложения не совпадает с идентификатором существующего приложения), то программа установки AIR выводит сообщение об ошибке, и старая версия приложения запускается снова.

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

При проверке приложения с использованием AIR Debug Launcher (ADL) вызов метода update() приводит к исключению IllegalOperationError.

При обновлении версии приложения в Mac OS пользователь должен обладать всеми необходимыми правами на запись в каталог приложения. В Windows или Linux пользователь должен обладать правами администратора.

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

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

Обратите внимание на то, что метод update() не является статическим методом класса. Необходимо создать объект Updater и вызвать метод update() этого объекта. import flash.fileSystem.File; import flash.desktop.Updater; var updater:Updater = new Updater(); var airFile:File = File.applicationStorageDirectory.resolvePath("Example Application.air"); var version:String = "2.01"; updater.update(airFile, version);
air.update.ApplicationUpdaterair.update.ApplicationUpdaterUI
isSupported Свойству isSupported задается значение true, если текущая платформа поддерживает класс Updater, в противном случае задается значение false.Boolean Свойству isSupported задается значение true, если текущая платформа поддерживает класс Updater, в противном случае задается значение false.
SystemTrayIcon Класс SystemTrayIcon представляет значок в стиле области уведомлений Windows (панель задач&#xAE;).Значок на панели задач. flash.desktop:InteractiveIcon Класс SystemTrayIcon представляет значок в стиле области уведомлений Windows (панель задач®).

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

Значки на панели задач поддерживаются не всеми компьютерными операционными системами. Выполните проверку NativeApplication.supportsSystemTrayIcon, чтобы узнать, поддерживает ли текущая ОС значки на панели задач.

Невозможно создать экземпляр класса SystemTrayIcon. Получите объект, представляющий значок на панели задач, из свойства icon «глобального» объекта NativeApplication.

Если поддержка значков на панели задач есть, то значок является типом SystemTrayIcon. В противном случае тип icon является другим подклассом класса InteractiveIcon (обычно DockIcon).

Важно! Попытка применить метод класса SystemTrayIcon к объекту NativeApplication.icon в ОС, где AIR не поддерживает работу со значками на панелях задач, приводит к ошибке.

flash.desktop.NativeApplication.iconflash.desktop.NativeApplication.supportsSystemTrayIconflash.desktop.DockIconrightClick Отправляется данным объектом SystemTrayIcon по щелчку правой кнопкой мыши.flash.events.ScreenMouseEvent.RIGHT_CLICKflash.events.ScreenMouseEvent Отправляется данным объектом SystemTrayIcon по щелчку правой кнопкой мыши. rightMouseUp Отправляется данным объектом SystemTrayIcon при отпускании правой кнопки мыши.flash.events.ScreenMouseEvent.RIGHT_MOUSE_UPflash.events.ScreenMouseEvent Отправляется данным объектом SystemTrayIcon при отпускании правой кнопки мыши. rightMouseDown Отправляется данным объектом SystemTrayIcon при нажатии правой кнопки мыши.flash.events.ScreenMouseEvent.RIGHT_MOUSE_DOWNflash.events.ScreenMouseEvent Отправляется данным объектом SystemTrayIcon при нажатии правой кнопки мыши. click Отправляется данным объектом SystemTrayIcon по щелчку левой кнопкой мыши.flash.events.ScreenMouseEvent.CLICKflash.events.ScreenMouseEvent Отправляется данным объектом SystemTrayIcon по щелчку левой кнопкой мыши. mouseUp Отправляется данным объектом SystemTrayIcon при отпускании левой кнопки мыши.flash.events.ScreenMouseEvent.MOUSE_UPflash.events.ScreenMouseEvent Отправляется данным объектом SystemTrayIcon при отпускании левой кнопки мыши. mouseDown Отправляется данным объектом SystemTrayIcon при нажатии левой кнопки мыши.flash.events.ScreenMouseEvent.MOUSE_DOWNflash.events.ScreenMouseEvent Отправляется данным объектом SystemTrayIcon при нажатии левой кнопки мыши. MAX_TIP_LENGTH Допустимая длина всплывающей подсказки значка на панели задач.63Number Допустимая длина всплывающей подсказки значка на панели задач. bitmaps Изображение значка в массиве объектов BitmapData различных размеров.Array Изображение значка в массиве объектов BitmapData различных размеров.

При отображении значка в контексте конкретной ОС из массива выбирается изображение, размер которого в максимальной степени подходит под текущий размер экрана (при необходимости масштабируется). Обычные размеры включают: 16x16, 32x32, 48x48 и 128x128. (В ближайшем будущем в некоторых ОС могут использоваться значки размером 512x512 пикселей.)

В некоторых контекстах, если свойству bitmaps ничего присвоено не было, может использоваться значок ОС по умолчанию. В остальных контекстах значок не отображается.

Чтобы изменить вид значка, присвойте свойству bitmaps массив объектов BitmapData.

icon.bitmaps = new Array(icon16x16.bitmapData, icon128x128.bitmapData);

Прямая модификация массива bitmaps ни к чему не приведет.

Чтобы убрать изображение значка, присвойте свойству bitmaps пустой массив.

Примечание. Загружайте файлы изображений для значков в формате PNG, так как этот формат обеспечивает наилучшее альфа-смешивание. Формат GIF поддерживает только включение или отключение прозрачности, но не смешивание. Формат JPG не поддерживает прозрачность совсем.

height Текущее значение высоты значка в пикселях.int Текущее значение высоты значка в пикселях.

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

menu Меню значка на панели задач.flash.display:NativeMenu Меню значка на панели задач. tooltip Всплывающая подсказка, которая появляется при выполнении определенного действия над значком на панели задач.String Всплывающая подсказка, которая появляется при выполнении определенного действия над значком на панели задач. Если длина строки превышает значение, указанное в SystemTrayIcon.MAX_TIP_LENGTH, подсказка усекается. width Текущее значение ширины значка в пикселях.int Текущее значение ширины значка в пикселях.

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

Clipboard Класс Clipboard предоставляет контейнер для передачи данных и объектов через буфер обмена.Object Класс Clipboard предоставляет контейнер для передачи данных и объектов через буфер обмена. Получить доступ к буферу обмена ОС можно через статическое свойство generalClipboard.

В объекте Clipboard одна и та же хранимая информация может быть в различных форматах. Такая организация хранения данных предусмотрена для обеспечения максимальной совместимости с различными приложениями. Для добавления данных в объект Clipboard, используйте метод setData() или setDataHandler().

Стандартными форматами являются следующие:

  • BITMAP_FORMAT: объект BitmapData (только для AIR)
  • FILE_LIST_FORMAT: массив объектов File (только для AIR)
  • HTML_FORMAT: строковые данные в формате HTML
  • TEXT_FORMAT: строковые данные
  • RICH_TEXT_FORMAT: объект ByteArray, содержащий данные в формате RTF
  • URL_FORMAT: строка URL (только для AIR)

Эти константы имен стандартных форматов определены в классе ClipboardFormats.

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

Для добавления объектов ActionScript в объект Clipboard можно использовать форматы, определенные приложением. Если объект сериализуемый, доступными могут быть и ссылка на объект, и клон объекта. Ссылки на объекты действуют только в пределах исходного приложения.

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

Примечание для программ AIR. Тип объекта Clipboard, на которые ссылаются объекты событий, отправляемые для событий перетаскивания и копирования-вставки HTML, отличается от типа объектов Clipboard AIR. Объекты буфера обмена JavaScript рассматриваются в руководстве для разработчика приложений AIR.

Примечание для Flash Player. В проигрывателе Flash Player 10 перед использованием операции вставки из буфера обмена должно быть отправлено событие пользователя (такого как нажатие комбинации клавиш для команды вставки или выбор команды вставки в контекстном меню щелчком мыши). Метод Clipboard.getData() возвратит содержимое буфера обмена только в том случае, если InteractiveObject получил и обрабатывает событие paste. При любых обстоятельствах вызов метода Clipboard.getData() ни к чему не приведет. В AIR то же ограничение применяется к содержимому за пределами изолированной программной среды приложения.

В Linux при закрытии приложения AIR данные из буфера обмена не сохраняются.

В следующем примере для Adobe AIR показано копирование строки из одной переменной в другую через буфер обмена операционной системы с использованием класса ClipboardExample. Это можно сделать, выполнив следующие действия.
  1. Произведите запись данных (в данном случае строковых данных) в Clipboard.generalClipboard.
  2. Произведите считывание содержимого буфера обмена из Clipboard.generalClipboard.

Примечание. Ввиду ограничений безопасности на доступ к данным из буфера обмена этот пример не работает в Flash Player. В Flash Player можно только вызвать метод getData() объекта Clipboard в обработчике события paste.

package { import flash.display.Sprite; import flash.desktop.Clipboard; import flash.desktop.ClipboardFormats; import flash.desktop.ClipboardTransferMode; public class ClipboardExample extends Sprite { public function ClipboardExample() { var sally:String = "Sally"; var person:String; copy(sally); person = paste(); trace(person); //traces: "Sally" } private function copy(text:String):void { Clipboard.generalClipboard.clear(); Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, text); } private function paste():String { if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)) { return String(Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT)); } else { return null; } } } }
flash.desktop.NativeDragManagerflash.desktop.ClipboardFormatsflash.desktop.ClipboardTransferModeClipboard Создает пустой объект Clipboard.Flash Player не поддерживает метод new Clipboard(), так как здесь может использоваться только буфер обмена ОС. Для осуществления операций копирования/вставки с использованием буфера обмена ОС, используйте уже существующий объект Clipboard.generalClipboard. Это не приводит к ошибке в приложении AIR. IllegalOperationErrorflash.errors:IllegalOperationError Создает пустой объект Clipboard.

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

Не создавайте объект Clipboard для операций копирования и вставки. Вместо этого используйте один объект Clipboard.generalClipboard.

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

Примечание. Для осуществления операций копирования/вставки с использованием буфера обмена ОС вместо создания нового буфера обмена используйте уже существующий объект Clipboard.generalClipboard.

import flash.desktop.Clipboard; var clipboard:Clipboard = new Clipboard();
generalClipboard
clearData Удаляет представления данных заданного формата.В данном контексте вызов метода generalClipboard.clearData() запрещен. В приложении Flash Player этот метод можно вызывать только во время обработки пользовательского события (в виде нажатия клавиши или щелчка мыши). В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности. SecurityErrorSecurityErrorformatStringФормат данных для удаления. Удаляет представления данных заданного формата. В следующем примере из буфера обмена производится удаление всех данных в формате ClipboardFormats.TEXT_FORMAT. import flash.desktop.ClipboardFormats; Clipboard.generalClipboard.clearData(ClipboardFormats.TEXT_FORMAT); clear Удаляет все представления данных из этого объекта Clipboard.В данном контексте вызов метода generalClipboard.clear() запрещен. В приложении Flash Player этот метод можно вызывать только во время обработки пользовательского события (в виде нажатия клавиши или щелчка мыши). В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности. SecurityErrorSecurityError Удаляет все представления данных из этого объекта Clipboard. В следующем примере производится очистка буфера обмена ОС: Clipboard.generalClipboard.clear(); getData Определяет данные из буфера обмена, если они существуют в указанном формате.transferMode не является одним из имен, определенных в классе ClipboardTransferMode. ErrorErrorЗапрошенный объект Clipboard больше не находится в области действия (только для AIR). IllegalOperationErrorflash.errors:IllegalOperationErrorВ данном контексте операции чтения и записи в буфер обмена запрещены. В приложении Flash Player этот метод можно вызывать только во время обработки события paste. В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности. SecurityErrorSecurityErrorОбъект данного типа, соответствующий формату данных. ObjectformatStringВозвращаемый формат данных. В строке формата может содержаться одно их стандартных имен, определенных в классе ClipboardFormats, или имя, задаваемое приложением. transferModeStringoriginalPreferredУказывает, возвращать ли ссылку или сериализованную копию при доступе к формату данных, заданному приложением. Данное значение должно быть из списка заданных имен в классе ClipboardTransferMode. Это значение игнорируется для стандартных форматов данных; всегда возвращается копия. Определяет данные из буфера обмена, если они существуют в указанном формате.

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

Когда осуществляется доступ к данным стандартного формата, эти данные возвращаются в качестве нового объекта соответствующего типа данных Flash.

При доступе к данным в формате, указанном приложением, значение параметра transferMode определяет, возвращать ли ссылку на исходный объект или анонимный объект, содержащий сериализованную копию исходного объекта. Если при использовании режима originalPreferred или clonePreferred предпочтительная версия недоступна, Flash Player или AIR возвращает альтернативную версию. Если при использовании режима originalOnly или cloneOnly запрашиваемая версия недоступна, Flash Player или AIR возвращает значение null.

В следующем примере происходит считывание текста из буфера обмена ОС, если он существует: import flash.desktop.ClipboardFormats; var pasteData:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
setData()flash.desktop.ClipboardFormatsflash.desktop.ClipboardTransferMode
hasFormat Проверяет наличие данных указанного формата в данном объекте Clipboard.Запрошенный объект Clipboard больше не находится в области действия. IllegalOperationErrorflash.errors:IllegalOperationErrorВ данном контексте операции чтения и записи в буфер обмена запрещены. SecurityErrorSecurityErrortrue, если данные в указанном формате существуют. BooleanformatStringПроверяемый тип формата. Проверяет наличие данных указанного формата в данном объекте Clipboard.

С помощью констант класса ClipboardFormats можно ссылаться на имена стандартных форматов.

В следующем примере производится проверка наличия в буфере обмена ОС данных в текстовом формате: if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)){ //do something }
flash.desktop.ClipboardFormats
setDataHandler Добавляет ссылку на функцию обработчика, которая подготавливает данные для переноса.Свойство format или свойство handler имеет значение null. TypeErrorTypeErrorЗапрошенный объект Clipboard больше не находится в области действия (только для AIR). IllegalOperationErrorflash.errors:IllegalOperationErrorВ данном контексте операции чтения и записи в буфер обмена запрещены. В приложении Flash Player этот метод можно вызывать только во время обработки пользовательского события (такого как нажатие клавиши или щелчок мыши). В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности. SecurityErrorSecurityErrorЕсли обработчик был настроен успешно — true. В противном случае — false. BooleanformatStringФункция, при вызове которой возвращаются передаваемые данные. handlerFunctionФормат данных. serializableBooleantrueЗадайте значение true, если объект, возвращаемый handler, можно сериализовать (и десериализовать). Добавляет ссылку на функцию обработчика, которая подготавливает данные для переноса.

Используйте функцию обработчика, чтобы отложить создание или визуализацию данных до момента доступа к ним.

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

ФорматВозвращаемый типClipboardFormats.TEXT_FORMATStringClipboardFormats.HTML_FORMATStringClipboardFormats.URL_FORMATString (только для AIR)ClipboardFormats.RICH_TEXT_FORMATByteArrayClipboardFormats.BITMAP_FORMATBitmapData (только для AIR)ClipboardFormats.FILE_LIST_FORMATМассив объектов File (только для AIR)ClipboardFormats.FILE_PROMISE_LIST_FORMATМассив объектов File (только для AIR)Имя пользовательского форматаНепустой

Функция обработчика вызывается только в том случае, если данные заданного формата распознаются. Обратите внимание, что в некоторых случаях операционная система вызывает функцию до завершения перетаскивания. Например, когда используется функция обработчика с целью предоставления данных для файла, перетаскиваемого из программы AIR в файловую систему, операционная система вызывает функцию обработчика данных, как только жест перетаскивания выйдет за пределы программы AIR. Как правило, это приводит к нежелательной паузе в процессе загрузки или создания файла. Для этого можно использовать экземпляр URLFilePromise.

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

В «песочнице» программы Adobe AIR можно в любое время вызвать метод setDataHandler(). В других контекстах метод setDataHandler() можно вызывать только в ответ на событие пользователя, например нажатие клавиши или кнопки мыши.

Для добавления данных непосредственно в этот объект Clipboard используйте метод setData(). Если вызываются оба метода — setData() и setDataHandler() — с одинаковым именем формата, то функция обработчика не будет вызвана.

Примечание. При установке параметра format равным ClipboardFormats.URL_FORMAT в системе Mac OS URL-адрес передается только в том случае, если функция обработчика возвращает действительный URL-адрес. В противном случае объект Clipboard очищается, а вызов getData() возвращает значение null).

В данном примере происходит добавление произвольного числа в буфер обмена ОС с использованием функции отложенных данных: import flash.desktop.ClipboardFormats; Clipboard.generalClipboard.setDataHandler(ClipboardFormats.TEXT_FORMAT, randomNumberGenerator); public function randomNumberGenerator():String{ return Math.random().toString(); }
setData()flash.desktop.ClipboardFormatsflash.desktop.URLFilePromise
setData Добавляет представление информации для передачи данных в указанном формате данных.Запрашиваемый объект Clipboard оказывается за пределами области действия (это происходит при создании буфера обмена для операций перетаскивания). IllegalOperationErrorflash.errors:IllegalOperationErrorВ данном контексте операции чтения и записи в буфер обмена запрещены. В приложении Flash Player этот метод можно вызывать только во время обработки пользовательского события (в виде нажатия клавиши или щелчка мыши). В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности. SecurityErrorSecurityErrorСвойство format или свойство data имеет значение null. TypeErrorTypeErrorЕсли данные были записаны успешно — true. В противном случае — false. Flash Player возвращает значение false, если элемент format не поддерживается классом ClipboardFormats. (Flash Player не поддерживает следующие элементы: ClipboardFormats.URL_FORMAT, ClipboardFormats.FILE_LIST_FORMAT, ClipboardFormats.FILE_PROMISE_LIST_FORMAT и ClipboardFormats.BITMAP_FORMAT.) BooleanformatStringФормат данных. dataObjectДобавляемая информация. serializableBooleantrueУкажите значение true для тех объектов, которые можно сериализовать (и десериализовать). Добавляет представление информации для передачи данных в указанном формате данных.

В «песочнице» программы Adobe AIR можно в любое время вызвать метод setData(). В других контекстах метод setData() можно вызывать только в ответ на событие пользователя, например нажатие клавиши или кнопки мыши.

Различные представления одной и той же информации могут храниться в буфере обмена в нескольких форматах. Это расширяет возможности других компонентов или программ для использования доступных данных. Например, можно добавить изображение в виде растровых данных для использования редакторами изображений, в виде URL, а также в виде закодированного файла PNG для передачи в собственную файловую систему.

Параметр data должен относиться к типу данных, соответствующему указанному формату.

ФорматТипОписаниеClipboardFormats.TEXT_FORMATStringстроковые данныеClipboardFormats.HTML_FORMATStringстроковые данные HTMLClipboardFormats.URL_FORMATStringстрока URL-адреса (только для AIR)ClipboardFormats.RICH_TEXT_FORMATByteArrayДанные в формате RTFClipboardFormats.BITMAP_FORMATBitmapDataданные растрового изображения (только для AIR)ClipboardFormats.FILE_LIST_FORMATмассив Fileмассив файлов (только для AIR)Имя пользовательского форматалюбыессылка на объект и сериализованный клон

Имя пользовательского формата не может начинаться со слов air: или flash:. Во избежание совпадения имен при использовании пользовательских форматов в качестве префикса к формату можно добавить идентификатор программы или имя пакета, например com.example.applicationName.dataPacket.

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

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

Для отложенной визуализации данных формата используйте метод setDataHandler(). Если оба метода — setData() и setDataHandler() — используются для добавления представления данных с одинаковым именем формата, то функция обработчика не будет вызвана.

Примечание. При установке параметра format равным ClipboardFormats.URL_FORMAT в системе Mac OS URL-адрес передается только в том случае, если этот URL-адрес действителен. В противном случае объект Clipboard очищается, а вызов getData() возвращает значение null).

В следующем примере происходит добавление в буфер обмена одного и того же содержимого в текстовом формате и формате HTML: import flash.desktop.ClipboardFormats; var htmlString:String = "<html><body>Body content</body></html>"; Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, urlString); Clipboard.generalClipboard.setData(ClipboardFormats.HTML_FORMAT, urlString);
setDataHandler()getData()flash.desktop.ClipboardFormatsflash.desktop.ClipboardTransferMode
formats В этом объекте Clipboard находится массив строк, в котором содержатся имена поддерживаемых форматов данных.Array В этом объекте Clipboard находится массив строк, в котором содержатся имена поддерживаемых форматов данных.

Константы имен стандартных форматов содержатся в классе ClipboardFormats. Задаваемые приложением строки могут также использоваться в качестве имен форматов для передачи данных в виде объектов.

В следующем примере происходит считывание массива formats из буфера обмена ОС: var availableFormats:Array = Clipboard.generalClipboard.formats;
flash.desktop.ClipboardFormats
generalClipboard Буфер обмена ОС.flash.desktop:Clipboard Буфер обмена ОС.

Любые данные, передаваемые в буфер обмена, доступны другим приложениям. По этой причине возможно удаленное выполнение вредоносного кода в web-браузере.

Примечание. В приложениях Flash Player 10 перед использованием операции вставки из буфера обмена требуется наличие пользовательского события (такого как нажатие комбинации клавиш для команды вставки или выбор команды вставки в контекстном меню щелчком мыши). Метод Clipboard.getData() возвратит содержимое буфера обмена только в том случае, если InteractiveObject получил и обрабатывает событие paste. При любых обстоятельствах вызов метода Clipboard.getData() ни к чему не приведет. В AIR то же ограничение применяется к содержимому за пределами изолированной программной среды приложения.

Объект generalClipboard создается автоматически. Присвоить данному свойству другой экземпляр объекта Clipboard невозможно. Вместо этого для чтения и записи данных в уже существующий объект используйте методы getData() и setData().

Перед тем как записывать в буфер обмена новые данные, следует удалить из него предыдущие данные всех форматов.

Объект generalClipboard нельзя передавать в AIR NativeDragManager. Создайте новый объект Clipboard для собственных операций перетаскивания в приложении AIR.

Порядок записи в буфер обмена операционной системы: import flash.desktop.ClipboardFormats; var copy:String = "A string to copy to the system clipboard."; Clipboard.generalClipboard.clear(); Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, copy); Порядок чтения из буфера обмена операционной системы: import flash.desktop.ClipboardFormats; var pasteData:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
supportsFilePromise Обозначает, поддерживается ли в клиентской системе формат буфера предварительного образа файла.Boolean Обозначает, поддерживается ли в клиентской системе формат буфера предварительного образа файла.
NotificationType Класс NotificationType определяет константы, используемые в параметре priority метода DockIcon bounce(), а также параметр type метода NativeWindow notifyUser().Object Класс NotificationType определяет константы, используемые в параметре priority метода DockIcon bounce(), а также параметр type метода NativeWindow notifyUser(). flash.desktop.DockIcon.bounce()flash.display.NativeWindow.notifyUser()CRITICAL Указывает на то, что уведомление носит важный характер, и пользователь должен уделить этому внимание.criticalString Указывает на то, что уведомление носит важный характер, и пользователь должен уделить этому внимание. INFORMATIONAL Указывает на то, что уведомление носит информационный характер, и пользователь может не обращать на него внимания.informationalString Указывает на то, что уведомление носит информационный характер, и пользователь может не обращать на него внимания. IFilePromise Интерфейс IFilePromise определяет интерфейс, используемый средой выполнения AIR для чтения данных предварительного образа файла. Интерфейс IFilePromise определяет интерфейс, используемый средой выполнения AIR для чтения данных предварительного образа файла.

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

После перетаскивания предварительного образа файла в подходящее местоположение AIR вызывает метод open() объекта IFilePromise. В результате выполнения этого метода поставщик данных должен быть возвращен в качестве объекта, который реализует интерфейс IDataInput. Объект поставщика может быть представлен одним из встроенных классов, таких как ByteArray, FileStream, Socket и URLStream, или это может быть пользовательский класс.

Если доступ к данным поставщика осуществляется в синхронном режиме, например при использовании ByteArray, AIR считывает объем данных, указанный в свойстве bytesAvailable экземпляра IDataInput, и записывает его в целевом файле.

Если же доступ к данным поставщика осуществляется в асинхронном режиме, например при использовании объекта Socket, AIR регулирует процесс считывания данных и их записи в файле, исходя из событий, отправляемых поставщиком. Данные считываются при получении каждого события progress, пока не будет получено событие complete или close. Среда выполнения прослушивает следующие события (но поставщик данных не должен отправлять каждое событие):

  • Event.OPEN
  • ProgressEvent.PROGRESS
  • ProgressEvent.SOCKET_DATA
  • Event.COMPLETE
  • Event.CLOSE
  • IOErrorEvent.IOERROR
  • SecurityErrorEvent.SECURITY_ERROR
  • HTTPStatusEvent.HTTP_STATUS
  • HTTPStatusEvent.HTTP_RESPONSE_STATUS

Когда доступны данные, пользовательские классы поставщиков данных должны отправлять событие progress или socketData. По аналогии, после завершения чтения всех запрошенных данных должно отправляться событие complete или close. События ошибок сообщают среде выполнения о том, что выполнить передачу данных не удалось и ее следует прервать. При необходимости должны отправляться и другие события с целью упрощения обработки ошибок и отладки логики программы.

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

Примечание. Класс URLFilePromise, доступный в библиотеке air.desktop, реализует интерфейс IFilePromise и использует экземпляр URLStream в качестве поставщика данных. Библиотека air.desktop включена в виде отдельных SWF- и SWC-файлов в AIR SDK.

flash.desktop.Clipboardflash.desktop.ClipboardFormatsflash.desktop.NativeDragManagerclose Вызывается средой выполнения AIR по окончании чтения всех данных. Вызывается средой выполнения AIR по окончании чтения всех данных.

После вызова метода close() для ссылки на объект, возращенной методом open(), не будут вызываться никакие другие методы. Объект поставщика данных можно уничтожить.

open Возвращает объект поставщика данных.IDataInput — объект, реализующий интерфейс IDataInput. Если данные предоставляются в асинхронном режиме, возвращаемый объект также должен осуществлять интерфейс IEventDispatcher. flash.utils:IDataInput Возвращает объект поставщика данных.

Объект поставщика данных должен реализовывать интерфейс IDataInput, который определяет методы для чтения данных. Если свойство isAsync экземпляра IFilePromise возвращает значение true, поставщик данных должен также поддерживать интерфейс IEventDispatcher. Следующие встроенные классы могут использоваться в качестве поставщика данных.

  • ByteArray (синхронный)
  • FileStream (синхронный или асинхронный)
  • Socket (асинхронный)
  • URLStream (асинхронный)

Также можно создать объект пользовательского класса, который реализует необходимые интерфейсы (или расширяет другой реализующий их класс).

reportError Вызывается средой выполнения AIR, чтобы сообщить интерфейсу IFilePromise об ошибках чтения данных из объекта поставщика данных.eflash.events:ErrorEventСобытие ошибки, содержащее подробные сведения об ошибке. Вызывается средой выполнения AIR, чтобы сообщить интерфейсу IFilePromise об ошибках чтения данных из объекта поставщика данных. isAsync Указывает, поддерживается ли асинхронная передача данных.Boolean Указывает, поддерживается ли асинхронная передача данных.

Если имеет значение true, то объект поставщика данных, возвращенный методом open(), должен осуществлять интерфейс IEventDispatcher (или расширять другой реализующий его класс). Передача данных регулируется событиями progress или socketData. AIR ожидает эти события о ходе выполнения, пока не отправляется событие complete или close.

Если isAsync возвращает значение false, среда выполнения AIR считает, что все данные сразу становятся доступными. В этом случае среда выполнения считывает свойство bytesAvailable объекта поставщика данных, чтобы определить объем доступных данных, и синхронно считывает эти данные.

relativePath Относительный путь и имя файла, который будет создан из данного предварительного образа.Stringесли в относительном пути используются комбинации .. для обозначения одного или нескольких вышестоящих каталогов, в которые вложено место назначения перетаскивания. ArgumentErrorArgumentError Относительный путь и имя файла, который будет создан из данного предварительного образа.

Это свойство должно содержать действительный путь. В противном случае при завершении перетаскивания выдается ошибка аргумента.

Путь может включать подкаталоги, разрешение которых выполняется относительно местоположения перетаскивания. При необходимости создаются подкаталоги. При включении подкаталогов следует использовать константу File.separator, чтобы вставить символ-разделитель, который используется для указания пути в текущей операционной системе. Указание .. в качестве комбинации клавиш для перехода к родительскому каталогу не поддерживается. При попытке выполнения выдается ошибка аргумента. Недопустимые символы файловой системы удаляются из пути, при этом ошибка не выдается.

Примечание. Чтобы позволить коду клиента задать путь, можно реализовать функцию установщика с подписью: function set relativePath( value:String ):void.

NativeProcessStartupInfo Этот класс предоставляет основную информацию, используемую для запуска процесса в операционной системе хоста.Object Этот класс предоставляет основную информацию, используемую для запуска процесса в операционной системе хоста. Он создается и передается методу start() объекта NativeProcess.

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

NativeProcess.html#start()NativeProcessStartupInfo Создает пустой объект NativeProcessStartupInfo. Создает пустой объект NativeProcessStartupInfo. arguments Аргументы командной строки, которые будут переданы процессу в момент запуска. Аргументы командной строки, которые будут переданы процессу в момент запуска.

Каждая строка в векторе arguments передается в качестве отдельного аргумента исполняемому файлу независимо от того, какие символы она содержит. Другими словами, существует точное соответствие «один к одному». Повторной интерпретации не происходит. AIR автоматически маскирует все символы строки, для которых это необходимо (например, символы пробела).

executable Объект File, который ссылается на исполняемый файл в операционной системе хоста.flash.filesystem:Fileесли указано значение null, если он ссылается на каталог или на несуществующий файл. ArgumentErrorArgumentError Объект File, который ссылается на исполняемый файл в операционной системе хоста. Должен быть указан полный путь к исполняемому файлу, включая расширение.

Примечание. Чтобы запустить исполняемый файл внутри пакета программ в ОС Mac OS, необходимо, чтобы объект File содержал полный путь к исполняемому файлу (внутри пакета), а не просто путь к файлу программы.

workingDirectory Объект File, который ссылается на исходный рабочий каталог для нового собственного процесса.flash.filesystem:Fileесли значение не существует или не является каталогом. ArgumentErrorArgumentError Объект File, который ссылается на исходный рабочий каталог для нового собственного процесса. Если назначено значение, где свойство isDirectory имеет значение false, выдается исключение ArgumentError.
SystemIdleMode Класс SystemIdleMode предоставляет константы для обозначения поведения системы в режиме ожидания.Object Класс SystemIdleMode предоставляет константы для обозначения поведения системы в режиме ожидания. Эти константы используются свойством systemIdleMode класса NativeApplication. flash.desktop.NativeApplication.systemIdleModeKEEP_AWAKE Препятствует переходу системы в режим ожидания.keepAwakeString Препятствует переходу системы в режим ожидания.

На платформе Android в программе должны быть указаны разрешения Android для DISABLE_KEYGUARD и WAKE_LOCK в дескрипторе программы, в противном случае операционная система не будет учитывать этот параметр.

NORMAL Система работает в соответствии с обычным поведением ждущего режима.normalString Система работает в соответствии с обычным поведением ждущего режима.
ClipboardTransferMode Класс ClipboardTransferMode задает константы для режимов, которые используются в качестве значений параметра transferMode метода Clipboard.getData().Определяет константы для режимов передачи буфера обмена. Object Класс ClipboardTransferMode задает константы для режимов, которые используются в качестве значений параметра transferMode метода Clipboard.getData().

В режиме перехода предусмотрен выбор между возвратом ссылки или его копии при обращении объекту буфера обмена.

flash.desktop.Clipboard.getData()CLONE_ONLY Объект буфера обмена всегда возвращает копию.cloneOnlyString Объект буфера обмена всегда возвращает копию. CLONE_PREFERRED Объект буфера обмена возвращает копию, если она доступна, и ссылку, если нет.clonePreferredString Объект буфера обмена возвращает копию, если она доступна, и ссылку, если нет. ORIGINAL_ONLY Объект буфера обмена всегда возвращает ссылку.originalOnlyString Объект буфера обмена всегда возвращает ссылку. ORIGINAL_PREFERRED Объект буфера обмена возвращает ссылку, если она доступна, и копию, если нет.originalPreferredString Объект буфера обмена возвращает ссылку, если она доступна, и копию, если нет.
NativeDragManager Класс NativeDragManager отвечает за управление операциями перетаскивания.Object Класс NativeDragManager отвечает за управление операциями перетаскивания. С помощью технологии перетаскивания пользователь может перемещать данные между приложением AIR и ОС, между двумя приложениями или компонентами одного приложения.

Можно перемещать следующие типы данных:

  • Растровые изображения
  • Файлы
  • Текст
  • Строки URL
  • Последовательные объекты
  • Ссылки на объекты (действует только в пределах исходного приложения)

Примечание. Все члены NativeDragManager являются статическими. Нужды в создании этого класса нет.

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

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

Операции перетаскивания

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

Возможные операции:

  • Копирование — осуществляет копирование данных, оставляя оригинал без изменений. (При перетаскивании объектов внутри приложения необходимо следить за тем, чтобы копировался сам объект, а не ссылка на него.)
  • Перемещение — переносит данные из исходного контекста в контекст, определяемый операцией перетаскивания, например, при перемещении объекта из одного списка в другой.
  • Ссылка — создает ярлык или ссылку на исходные данные, оставляя их в исходном контексте.

Возможные операции по перетаскиванию задаются параметром allowedActions при вызове NativeDragManager.doDrag() в момент начала операции перетаскивания. Если параметр allowedActions не задан, все операции считаются допустимыми. Потенциальные цели опускания, могут использовать свойство allowedActions объекта NativeDragEvent для запрещения определенных операций перетаскивания (несмотря на то, что в ходе выполнения программы эти ограничения отсутствуют).

Если цель опускания реализует только одно действие, то объект может настроить в обработчиках свойство dropAction класса NativeDragManager на обработку событий nativeDragEnter и nativeDragOver. Настройка данного свойства до перетаскивания позволит обновлять курсор мыши для отображения поддерживаемого действия, а также исключит возможность совершения пользователем несовместимого действия с помощью клавиш-модификаторов. При совершении несовместимой операции перетаскивание не осуществляется, даже если цель вызывает метод acceptDrop().

Если потенциальная цель принимает опускание, она должна указать совершаемое действие путем задания свойства NativeDragManager.dropAction в ответ на событие nativeDragDrop. Эта операция возвращается инициирующему экранному объекту в виде события nativeDragComplete. Если цель опускания операцию не задает, то возвращается операция по умолчанию из списка доступных операций в следующем порядке: копирование, перемещение, ссылка. Инициирующий объект отвечает за обновление внутреннего состояния в ответ на выбранную операцию.

Константы строк для названий операций задаются в классе NativeDragActions.

Порядок событий

Процесс перетаскивание начинается с вызова метода NativeDragManager.doDrag() в рамках обработчика событий mouseDown или mouseMove и проходит через следующую последовательность событий в ответ на действия пользователя:

  • Событие nativeDragStart — при вызове NativeDragManager.doDrag() интерактивный объект, переданный в качестве параметра, становится инициирующим объектом и отправляет событие nativeDragStart.
  • Событие nativeDragUpdate — в процессе перетаскивания инициирующий объект постоянно отправляет события nativeDragUpdate.
  • События nativeDragEnter, nativeDragOver — при наведении перетаскиваемого объекта на интерактивный объект, последний отправляет событие nativeDragEnter. При задержке действия над интерактивным объектом он постоянно отправляет события nativeDragOver. В ответ на любое из этих двух событий объект, выступающий в роли потенциальной цели опускания, должен осуществить проверку свойств объекта события, чтобы принять или отклонить опускание. Если формат данных и совершаемая операция находятся в списке допустимых, то обработчик этих событий вызывает NativeDragManager.acceptDrop() и передает действие экранному объекту, который становится местом опускания (обычно это объект, который отправлял событие nativeDragEnter или nativeDragOver). Затем пользователь может опустить перетаскиваемый объект на цель.
  • Событие nativeDragExit — при выходе жеста перетаскивания на границы интерактивного объекта объект отправляет событие nativeDragExit. Если данный объект был выбран в качестве целевого путем вызова метода NativeDragManager.acceptDrop(), этот выбор считается больше недействительным. При повторном входе жеста перетаскивания в пределы действия интерактивного объекта необходимо также вызвать acceptDrop() повторно.
  • Событие nativeDragDrop — целевой экранный объект отправляет событие nativeDragDrop, когда пользователь отпускает кнопку мыши над объектом. Обработчик данного события получает доступ к свойству transferable объекта события и устанавливает свойство NativeDragManager.dropAction для оповещения инициирующего объекта об операции, которую необходимо выполнить.
  • nativeDragComplete — когда пользователь в конце жеста перетаскивания отпускает кнопку мыши, инициирующий объект отправляет событие nativeDragComplete (независимо от результата самого опускания). Обработчик этого события проверяет свойство dropAction объекта события и определяет вносимые изменения в его внутреннее состояние данных, если таковые требуется (например, удаление из списка перетащенного элемента). Если dropAction является NativeDragActions.NONE, тогда перетаскивание элемента на пригодный целевой объект не произошло.

Жесты при работе с приложениями

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

Когда жест перетаскивания покидает окно приложения AIR, то целевой объект для отправки событий nativeDragEnter, nativeDragOver или nativeDragDrop отсутствует. Инициирующий объект по-прежнему отправляет событие nativeDragComplete, которое сообщает об операции перетаскивания, установленной операционной системой (или none, если опускание было отклонено).

Когда жест перетаскивания перемещается между двумя приложениями AIR, то инициирующие и целевые экранные объекты этих приложений отправляют события как обычно.

Информация о передаче

Все передаваемые во время жеста перетаскивания данные содержатся в объекте Clipboard. Этот объект данных добавляется к операции перетаскивания с помощью метода NativeDragManager.doDrag(), с которого начинается жест перетаскивания. Потенциальные цели опускания могут получить доступ к объекту Clipboard через свойство clipboard самого объекта, инициирующего событие перетаскивания. После начала операции перетаскивания к объекту Clipboard можно получить доступ через обработчик события NativeDragEvent. Остальные попытки получить доступ к объекту приводят к ошибке выполнения.

Соображения безопасности

Способ доступа к перетаскиваемым данным задается изолированными средами инициирующих и потенциальных целевых объектов. Если оба объекта находятся в одной и той же изолированной среде, тогда доступ к данным можно получить через любой объект NativeDragEvent. Однако, если эти объекты расположены в разных изолированных средах, то доступ к данным можно получить только в целевой изолированной среде в пределах обработчика события nativeDragDrop. Прочие обработчики событий собственного перетаскивания также могут получать доступ к объекту Clipboard, на который ссылается свойство clipboard события, чтобы определить доступные форматы данных. При этом вызов метода clipboard.getData() приведет к ошибке системы безопасности.

flash.events.NativeDragEventflash.desktop.NativeDragActionsflash.desktop.NativeDragOptionsflash.desktop.ClipboardacceptDragDrop Информирует объект NativeDragManager о том, что указанный целевой интерактивный объект может принять опускание, которое соответствует текущему событию перетаскивания.targetflash.display:InteractiveObject Информирует объект NativeDragManager о том, что указанный целевой интерактивный объект может принять опускание, которое соответствует текущему событию перетаскивания.

Данный метод может быть использован только при наличии на указанном целевом объекте обработчика nativeDragDrop для обработки, по крайней мере, одного формата данных в перетаскиваемом элементе и хотя бы одной допустимой операции.

Вызов данной функции возможет только в пределах следующих обработчиков событий: nativeDragEnter или nativeDragOver.

doDrag Начинает выполнять операцию перетаскивания.dragInitiatorflash.display:InteractiveObjectОбычно это объект, с которого начинается жест перетаскивания. Получает события nativeDragStart и nativeDragComplete. clipboardflash.desktop:ClipboardКонтейнер объектов для перетаскиваемых данных. dragImageflash.display:BitmapDatanullВо время жеста перетаскивания под курсором дополнительно отображается изображение приближения. При значении null изображение не отображается. offsetflash.geom:PointnullЗначение смещения верхнего левого угла изображения перетаскивания относительно активной точки курсора мыши. При отрицательных значениях изображение перемещается вверх и влево относительно активной точки курсора мыши. При значении null верхний левый угол изображения перетаскивания расположен в центре активной точки курсора мыши. allowedActionsflash.desktop:NativeDragOptionsnullОграничивает набор операций перетаскивания, применимых для данного действия. При значении null ограничения отсутствуют. Начинает выполнять операцию перетаскивания.

Для начала операции перетаскивания необходимо:

  1. Создать новый объект Clipboard.
  2. Добавить данные для передачи, используя один или несколько форматов.
  3. Дополнительно можно создать объект BitmapData, который будет выступать в роли изображения перетаскивания во время перетаскивания.
  4. Дополнительно можно также создать объект NativeDragOptions для ограничения набора поддерживаемых операций при выполнении данного действия. (Если параметр allowedActions не задан, используется значение null, при котором ограничения отсутствуют.)
  5. Вызов NativeDragManager.doDrag().

При вызове этого метода инициирующий объект отправляет событие nativeDragStart в процессе перетаскивания события nativeDragStart, а когда пользователь отпускает кнопку мыши, завершая жест перетаскивания, событие nativeDragComplete. Обработчик события nativeDragComplete может осуществить проверку свойства dropAction данного события, чтобы определить, была ли начатая операция перетаскивания завершена успешно. Если dropAction является NativeDragActions.NONE, тогда перетаскивание элемента на пригодный целевой объект не произошло.

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

flash.desktop.NativeDragActions
dragInitiator Интерактивный объект, который инициировал операцию перетаскивания, передается вызванному методу NativeDragManager.doDrag().flash.display:InteractiveObject Интерактивный объект, который инициировал операцию перетаскивания, передается вызванному методу NativeDragManager.doDrag(). dropAction Операция перетаскивания, определяемая целью опускания.String Операция перетаскивания, определяемая целью опускания.

Свойство dropAction настраивается в обработчике события nativeDragDrop. Если свойство dropAction не настроено до момента наступления события nativeDragComplete, тогда NativeDragManager выбирает для данного свойства первое значение из списка допустимых операций: копирование, перемещение, ссылка (именно в этой последовательности).

flash.desktop.NativeDragActions
isDragging Сообщает, находится ли операция перетаскивания в процессе выполнения.Boolean Сообщает, находится ли операция перетаскивания в процессе выполнения. isSupported Свойству isSupported задается значение true, если текущая платформа поддерживает класс NativeDragManager, в противном случае задается значение false.BooleanСообщает, поддерживаются ли собственные операции перетаскивания. Свойству isSupported задается значение true, если текущая платформа поддерживает класс NativeDragManager, в противном случае задается значение false.
NativeDragOptions Класс NativeDragOptions определяет константы для имен действий перетаскивания, разрешенных в операции перетаскивания.Object Класс NativeDragOptions определяет константы для имен действий перетаскивания, разрешенных в операции перетаскивания.

Операции перетаскивания являются частью механизма реагирования, который позволяет осуществлять обмен данными между целевыми объектами с помощью технологии перетаскивания. На уровне операционной системы данные операции являются всего лишь указаниями. Дальнейшая последовательность действий зависит от инициирующего и целевого объектов, участвующих в передачи данных.

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

Новый объект NativeDragOptions инициализируется с полным набором поддерживаемых операций (true — все операции разрешены).

flash.desktop.NativeDragManagerflash.events.NativeDragEventtoString Создает строку, содержащую текущие настройки данного объекта NativeDragOptions.String. Текущие настройки данного объекта в виде строк. String Создает строку, содержащую текущие настройки данного объекта NativeDragOptions. allowCopy Цель опускания поддерживает копирование перетаскиваемых данных.trueBoolean Цель опускания поддерживает копирование перетаскиваемых данных. allowLink Цель опускания может создать ссылку на перетаскиваемые данные.trueBoolean Цель опускания может создать ссылку на перетаскиваемые данные. allowMove Цель опускания поддерживает перемещение перетаскиваемых данных.trueBoolean Цель опускания поддерживает перемещение перетаскиваемых данных.
DockIcon Класс DockIcon отвечает за отображение значка на панели Dock в стиле Mac OS X#xAE;.Значок на панели Dock в стиле Mac OS X. flash.desktop:InteractiveIcon Класс DockIcon отвечает за отображение значка на панели Dock в стиле Mac OS X®.

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

Класс DockIcon можно использовать для изменения внешнего вида стандартных значков, например, для анимации значка или добавления информационных изображений. Вы также можете добавлять элементы в меню значка панели. Все добавленные элементы отображаются над стандартными элементами меню.

Невозможно создать экземпляр класса DockIcon. Объект, отвечающий за значок панели операционной системы, находится в NativeApplication.icon.

Поддержка значков панелей присутствуют не во всех операционных системах. Выполните проверку NativeApplication.supportsDockIcon, чтобы узнать, поддерживает ли текущая ОС значки панелей. Есть такая поддержка существует, то свойство NativeApplication.icon является типом класса DockIcon. В противном случае тип NativeApplication.icon является другим подклассом класса InteractiveIcon (обычно SystemTrayIcon).

Важно! Попытка применить метод класса DockIcon к объекту NativeApplication.icon в ОС, где AIR не обеспечивает поддержку работы со значками панелей, приводит к ошибке.

Следующий пример загружает последовательность изображений и при запуске таймера с меню значка панели применяет анимацию к изображению этого значка. (Чтобы этот пример работал, необходимо предоставить набор изображений и изменить URL-адреса в массиве imageURLs.) package { import flash.desktop.DockIcon; import flash.desktop.NativeApplication; import flash.display.Loader; import flash.display.NativeMenu; import flash.display.NativeMenuItem; import flash.display.Sprite; import flash.events.Event; import flash.events.TimerEvent; import flash.net.URLRequest; import flash.utils.Timer; public class AnimatedDockIcon extends Sprite { private var imageURLs:Array = ['gfx/frame01.png', 'gfx/frame02.png', 'gfx/frame03.png', 'gfx/frame04.png']; private var images:Array = new Array(); private var animTimer:Timer = new Timer(100); public function AnimatedDockIcon() { NativeApplication.nativeApplication.autoExit = false; addEventListener(Event.COMPLETE, loadImages); loadImages(); animTimer.addEventListener(TimerEvent.TIMER,advanceFrame); addMenu(); stage.nativeWindow.close(); } private function addMenu():void{ var menu:NativeMenu = new NativeMenu(); var start:NativeMenuItem = menu.addItem(new NativeMenuItem("Start animation")); var stop:NativeMenuItem = menu.addItem(new NativeMenuItem("Stop animation")); start.addEventListener(Event.SELECT, startTimer); stop.addEventListener(Event.SELECT, stopTimer); var dockIcon:DockIcon = NativeApplication.nativeApplication.icon as DockIcon; dockIcon.menu = menu; } private function startTimer(event:Event):void{ animTimer.start(); } private function stopTimer(event:Event):void{ animTimer.stop(); } private var currentFrame:int = 0; private function advanceFrame(event:Event):void{ if(currentFrame < images.length){ currentFrame++; } else { currentFrame = 0; } NativeApplication.nativeApplication.icon.bitmaps = [images[currentFrame]]; } private function loadImages(event:Event = null):void{ if(event != null){ images.push(event.target.content.bitmapData); } if(imageURLs.length > 0){ var urlString:String = imageURLs.pop(); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadImages, false, 0, true); loader.load(new URLRequest(urlString)); } else { var complete:Event = new Event(Event.COMPLETE,false,false); dispatchEvent(complete); } } } }
flash.desktop.NativeApplication.iconflash.desktop.NativeApplication.supportsDockIconflash.desktop.SystemTrayIconbounce Уведомляет пользователя о событии, требующем его внимания.NotificationType.Informational priorityStringinformationalСрочность колебания панели. Уведомляет пользователя о событии, требующем его внимания.

Вызов этого метода приводит к колебанию значка панели только тогда, когда приложение работает в фоновом режиме. Если значением priority является NotificationType.Informational, то значок колеблется только один раз. Если значением priority является NotificationType.Critical, то значок колеблется до тех пор, пока приложение не станет активным.

Следующий пример вызывает колебание значка панели до тех пор, пока пользователь не активирует приложение: import flash.display.DockIcon; import flash.display.NotificationType; import flash.desktop.NativeApplication; if(NativeApplication.supportsDockIcon){ var dockIcon:DockIcon = NativeApplication.nativeApplication.icon As DockIcon; dockIcon.bounce(NotificationType.CRITICAL); }
flash.desktop.NotificationTypeflash.display.NativeWindow.notifyUser()
bitmaps Изображение значка в массиве объектов BitmapData различных размеров.ArrayИзображение значка в массиве объектов BitmapData различных размеров. Изображение значка в массиве объектов BitmapData различных размеров.

При отображении значка в контексте конкретной ОС из массива выбирается изображение, размер которого в максимальной степени подходит под текущий размер экрана (при необходимости масштабируется). Обычные размеры включают: 16x16, 32x32, 48x48 и 128x128. (В ближайшем будущем в некоторых ОС могут использоваться значки размером 512x512 пикселей.)

В некоторых контекстах, если свойству bitmaps ничего присвоено не было, может использоваться значок ОС по умолчанию. В остальных контекстах значок не отображается.

Чтобы изменить вид значка, присвойте свойству bitmaps массив объектов BitmapData.

icon.bitmaps = new Array(icon16x16.bitmapData, icon128x128.bitmapData);

Прямая модификация массива bitmaps ни к чему не приведет.

Чтобы убрать изображение значка, присвойте свойству bitmaps пустой массив.

Примечание. Загружайте файлы изображений для значков в формате PNG, так как этот формат обеспечивает наилучшее альфа-смешивание. Формат GIF поддерживает только включение или отключение прозрачности, но не смешивание. Формат JPG не поддерживает прозрачность совсем.

height Текущее значение высоты значка в пикселях.int Текущее значение высоты значка в пикселях.

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

menu Системное меню данного значка панели.flash.display:NativeMenu Системное меню данного значка панели.

Все элементы меню отображаются над стандартными элементами. Стандартные элементы невозможно изменить или удалить.

Следующий пример добавляет элемент в меню значка панели: import flash.desktop.NativeApplication; import flash.events.Event; private function createDockIconMenu():void{ if(NativeApplication.supportsDockIcon){ var dockIcon:DockIcon = NativeApplication.nativeApplication.icon as DockIcon; var dockMenu:NativeMenu = new NativeMenu(); var command:NativeMenuItem = dockMenu.addItem(new NativeMenuItem("Command")); command.addEventListener(Event.SELECT, onCommand); dockIcon.menu = dockMenu; } } private function onCommand(event:Event):void{ //do command... }
width Текущее значение ширины значка в пикселях.int Текущее значение ширины значка в пикселях.

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

Icon В классе Icon содержится значок операционной системы.flash.events:EventDispatcher В классе Icon содержится значок операционной системы.

У объекта Icon есть единственное свойство bitmaps, которое представляет собой массив объектов BitmapData. Одновременно может отображаться только один значок. ОС выбирает изображение, которое в наибольшей степени соответствует текущему размеру экрана, масштабируя его при необходимости.

flash.filesystem.File.iconflash.display.BitmapDatabitmaps Изображение значка в массиве объектов BitmapData различных размеров.Array Изображение значка в массиве объектов BitmapData различных размеров.

При отображении значка в контексте конкретной ОС из массива выбирается изображение, размер которого в максимальной степени подходит под текущий размер экрана (при необходимости масштабируется). Обычные размеры включают: 16x16, 32x32, 48x48 и 128x128. (В ближайшем будущем в некоторых ОС могут использоваться значки размером 512x512 пикселей.)

В некоторых контекстах, если свойству bitmaps ничего присвоено не было, может использоваться значок ОС по умолчанию. В остальных контекстах значок не отображается.

Чтобы изменить вид значка, присвойте свойству bitmaps массив объектов BitmapData.

icon.bitmaps = new Array(icon16x16.bitmapData, icon128x128.bitmapData);

Прямая модификация массива bitmaps ни к чему не приведет.

Чтобы убрать изображение значка, присвойте свойству bitmaps пустой массив.

Примечание. Загружайте файлы изображений для значков в формате PNG, так как этот формат обеспечивает наилучшее альфа-смешивание. Формат GIF поддерживает только включение или отключение прозрачности, но не смешивание. Формат JPG не поддерживает прозрачность совсем.

flash.filesystem.File.iconflash.display.BitmapData