Пакет | flash.desktop |
Класс | public class Clipboard |
Наследование | Clipboard Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.0 |
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 данные из буфера обмена не сохраняются.
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
formats : Array [только для чтения]
В этом объекте Clipboard находится массив строк, в котором содержатся имена поддерживаемых форматов данных. | Clipboard | ||
generalClipboard : Clipboard [статические] [только для чтения]
Буфер обмена ОС. | Clipboard | ||
supportsFilePromise : Boolean [только для чтения]
Обозначает, поддерживается ли в клиентской системе формат буфера предварительного образа файла. | Clipboard |
Метод | Определено | ||
---|---|---|---|
Создает пустой объект Clipboard. | Clipboard | ||
Удаляет все представления данных из этого объекта Clipboard. | Clipboard | ||
Удаляет представления данных заданного формата. | Clipboard | ||
Определяет данные из буфера обмена, если они существуют в указанном формате. | Clipboard | ||
Проверяет наличие данных указанного формата в данном объекте Clipboard. | Clipboard | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Добавляет представление информации для передачи данных в указанном формате данных. | Clipboard | ||
Добавляет ссылку на функцию обработчика, которая подготавливает данные для переноса. | Clipboard | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object |
formats | свойство |
formats:Array
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.0 |
В этом объекте Clipboard находится массив строк, в котором содержатся имена поддерживаемых форматов данных.
Константы имен стандартных форматов содержатся в классе ClipboardFormats. Задаваемые приложением строки могут также использоваться в качестве имен форматов для передачи данных в виде объектов.
Реализация
public function get formats():Array
Связанные элементы API
Пример ( Использование этого примера )
formats
из буфера обмена ОС:
var availableFormats:Array = Clipboard.generalClipboard.formats;
generalClipboard | свойство |
generalClipboard:Clipboard
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.0 |
Буфер обмена ОС.
Любые данные, передаваемые в буфер обмена, доступны другим приложениям. По этой причине возможно удаленное выполнение вредоносного кода в web-браузере.
Примечание. В приложениях Flash Player 10 перед использованием операции вставки из буфера обмена требуется наличие пользовательского события (такого как нажатие комбинации клавиш для команды вставки или выбор команды вставки в контекстном меню щелчком мыши). Метод Clipboard.getData()
возвратит содержимое буфера обмена только в том случае, если InteractiveObject получил и обрабатывает событие paste. При любых обстоятельствах вызов метода Clipboard.getData()
ни к чему не приведет. В AIR то же ограничение применяется к содержимому за пределами изолированной программной среды приложения.
Объект generalClipboard
создается автоматически. Присвоить данному свойству другой экземпляр объекта Clipboard невозможно. Вместо этого для чтения и записи данных в уже существующий объект используйте методы getData()
и setData()
.
Перед тем как записывать в буфер обмена новые данные, следует удалить из него предыдущие данные всех форматов.
Объект generalClipboard
нельзя передавать в AIR NativeDragManager. Создайте новый объект Clipboard для собственных операций перетаскивания в приложении AIR.
Реализация
public static function get generalClipboard():Clipboard
Пример ( Использование этого примера )
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 | свойство |
Clipboard | () | Конструктор |
public function Clipboard()
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.0 |
Создает пустой объект Clipboard.
Создавайте объекты Clipboard для хранения данных о собственном жесте перетаскивания в Adobe AIR. Объекты Clipboard можно использовать только для жеста перетаскивания, они недоступны для повторного использования.
Не создавайте объект Clipboard для операций копирования и вставки. Вместо этого используйте один объект Clipboard.generalClipboard
.
Выдает
IllegalOperationError — Flash Player не поддерживает метод new Clipboard() , так как здесь может использоваться только буфер обмена ОС. Для осуществления операций копирования/вставки с использованием буфера обмена ОС, используйте уже существующий объект Clipboard.generalClipboard. Это не приводит к ошибке в приложении AIR.
|
Связанные элементы API
Пример ( Использование этого примера )
Примечание. Для осуществления операций копирования/вставки с использованием буфера обмена ОС вместо создания нового буфера обмена используйте уже существующий объект Clipboard.generalClipboard
.
import flash.desktop.Clipboard; var clipboard:Clipboard = new Clipboard();
clear | () | метод |
public function clear():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.0 |
Удаляет все представления данных из этого объекта Clipboard.
Выдает
SecurityError — В данном контексте вызов метода generalClipboard.clear() запрещен. В приложении Flash Player этот метод можно вызывать только во время обработки пользовательского события (в виде нажатия клавиши или щелчка мыши). В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности.
|
Пример ( Использование этого примера )
Clipboard.generalClipboard.clear();
clearData | () | метод |
public function clearData(format:String):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.0 |
Удаляет представления данных заданного формата.
Параметры
format:String — Формат данных для удаления.
|
Выдает
SecurityError — В данном контексте вызов метода generalClipboard.clearData() запрещен. В приложении Flash Player этот метод можно вызывать только во время обработки пользовательского события (в виде нажатия клавиши или щелчка мыши). В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности.
|
Пример ( Использование этого примера )
ClipboardFormats.TEXT_FORMAT
.
import flash.desktop.ClipboardFormats; Clipboard.generalClipboard.clearData(ClipboardFormats.TEXT_FORMAT);
getData | () | метод |
public function getData(format:String, transferMode:String = "originalPreferred"):Object
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.0 |
Определяет данные из буфера обмена, если они существуют в указанном формате.
В приложении Flash Player метод getData()
необходимо вызывать в обработчике события paste
. В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности.
Когда осуществляется доступ к данным стандартного формата, эти данные возвращаются в качестве нового объекта соответствующего типа данных Flash.
При доступе к данным в формате, указанном приложением, значение параметра transferMode
определяет, возвращать ли ссылку на исходный объект или анонимный объект, содержащий сериализованную копию исходного объекта. Если при использовании режима originalPreferred
или clonePreferred
предпочтительная версия недоступна, Flash Player или AIR возвращает альтернативную версию. Если при использовании режима originalOnly
или cloneOnly
запрашиваемая версия недоступна, Flash Player или AIR возвращает значение null
.
Параметры
format:String — Возвращаемый формат данных. В строке формата может содержаться одно их стандартных имен, определенных в классе ClipboardFormats, или имя, задаваемое приложением.
| |
transferMode:String (default = "originalPreferred ") — Указывает, возвращать ли ссылку или сериализованную копию при доступе к формату данных, заданному приложением. Данное значение должно быть из списка заданных имен в классе ClipboardTransferMode. Это значение игнорируется для стандартных форматов данных; всегда возвращается копия.
|
Object — Объект данного типа, соответствующий формату данных.
|
Выдает
Error — transferMode не является одним из имен, определенных в классе ClipboardTransferMode.
| |
IllegalOperationError — Запрошенный объект Clipboard больше не находится в области действия (только для AIR).
| |
SecurityError — В данном контексте операции чтения и записи в буфер обмена запрещены. В приложении Flash Player этот метод можно вызывать только во время обработки события paste . В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности.
|
Связанные элементы API
Пример ( Использование этого примера )
import flash.desktop.ClipboardFormats; var pasteData:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
hasFormat | () | метод |
public function hasFormat(format:String):Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Проверяет наличие данных указанного формата в данном объекте Clipboard.
С помощью констант класса ClipboardFormats можно ссылаться на имена стандартных форматов.
Параметры
format:String — Проверяемый тип формата.
|
Boolean — true , если данные в указанном формате существуют.
|
Выдает
IllegalOperationError — Запрошенный объект Clipboard больше не находится в области действия.
| |
SecurityError — В данном контексте операции чтения и записи в буфер обмена запрещены.
|
Связанные элементы API
Пример ( Использование этого примера )
if(Clipboard.generalClipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)){ //do something }
setData | () | метод |
public function setData(format:String, data:Object, serializable:Boolean = true):Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.0 |
Добавляет представление информации для передачи данных в указанном формате данных.
В «песочнице» программы Adobe AIR можно в любое время вызвать метод setData()
. В других контекстах метод setData()
можно вызывать только в ответ на событие пользователя, например нажатие клавиши или кнопки мыши.
Различные представления одной и той же информации могут храниться в буфере обмена в нескольких форматах. Это расширяет возможности других компонентов или программ для использования доступных данных. Например, можно добавить изображение в виде растровых данных для использования редакторами изображений, в виде URL, а также в виде закодированного файла PNG для передачи в собственную файловую систему.
Параметр data должен относиться к типу данных, соответствующему указанному формату.
Формат | Тип | Описание |
---|---|---|
ClipboardFormats.TEXT_FORMAT | String | строковые данные |
ClipboardFormats.HTML_FORMAT | String | строковые данные HTML |
ClipboardFormats.URL_FORMAT | String | строка URL-адреса (только для AIR) |
ClipboardFormats.RICH_TEXT_FORMAT | ByteArray | Данные в формате RTF |
ClipboardFormats.BITMAP_FORMAT | BitmapData | данные растрового изображения (только для 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
).
Параметры
format:String — Формат данных.
| |
data:Object — Добавляемая информация.
| |
serializable:Boolean (default = true ) — Укажите значение true для тех объектов, которые можно сериализовать (и десериализовать).
|
Boolean — Если данные были записаны успешно — true . В противном случае — false . Flash Player возвращает значение false , если элемент format не поддерживается классом ClipboardFormats. (Flash Player не поддерживает следующие элементы: ClipboardFormats.URL_FORMAT , ClipboardFormats.FILE_LIST_FORMAT , ClipboardFormats.FILE_PROMISE_LIST_FORMAT и ClipboardFormats.BITMAP_FORMAT .)
|
Выдает
IllegalOperationError — Запрашиваемый объект Clipboard оказывается за пределами области действия (это происходит при создании буфера обмена для операций перетаскивания).
| |
SecurityError — В данном контексте операции чтения и записи в буфер обмена запрещены. В приложении Flash Player этот метод можно вызывать только во время обработки пользовательского события (в виде нажатия клавиши или щелчка мыши). В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности.
| |
TypeError — Свойство format или свойство data имеет значение null .
|
Связанные элементы API
Пример ( Использование этого примера )
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 | () | метод |
public function setDataHandler(format:String, handler:Function, serializable:Boolean = true):Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.0 |
Добавляет ссылку на функцию обработчика, которая подготавливает данные для переноса.
Используйте функцию обработчика, чтобы отложить создание или визуализацию данных до момента доступа к ним.
Функция обработчика должна возвращать соответствующий заданному формату тип данных.
Формат | Возвращаемый тип |
---|---|
ClipboardFormats.TEXT_FORMAT | String |
ClipboardFormats.HTML_FORMAT | String |
ClipboardFormats.URL_FORMAT | String (только для AIR) |
ClipboardFormats.RICH_TEXT_FORMAT | ByteArray |
ClipboardFormats.BITMAP_FORMAT | BitmapData (только для 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
).
Параметры
format:String — Функция, при вызове которой возвращаются передаваемые данные.
| |
handler:Function — Формат данных.
| |
serializable:Boolean (default = true ) — Задайте значение true , если объект, возвращаемый handler , можно сериализовать (и десериализовать).
|
Boolean — Если обработчик был настроен успешно — true . В противном случае — false .
|
Выдает
TypeError — Свойство format или свойство handler имеет значение null .
| |
IllegalOperationError — Запрошенный объект Clipboard больше не находится в области действия (только для AIR).
| |
SecurityError — В данном контексте операции чтения и записи в буфер обмена запрещены. В приложении Flash Player этот метод можно вызывать только во время обработки пользовательского события (такого как нажатие клавиши или щелчок мыши). В приложении AIR это ограничение применяется только к содержимому, находящемуся за пределами изолированной программной среды безопасности.
|
Связанные элементы API
Пример ( Использование этого примера )
import flash.desktop.ClipboardFormats; Clipboard.generalClipboard.setDataHandler(ClipboardFormats.TEXT_FORMAT, randomNumberGenerator); public function randomNumberGenerator():String{ return Math.random().toString(); }
- Произведите запись данных (в данном случае строковых данных) в
Clipboard.generalClipboard
. - Произведите считывание содержимого буфера обмена из
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; } } } }
Tue Jun 12 2018, 11:34 AM Z