パッケージ | flash.desktop |
クラス | public class Clipboard |
継承 | Clipboard Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.0 |
generalClipboard
プロパティを通じてアクセスできます。
Clipboard オブジェクトには、同じ情報を複数の形式で格納できます。情報を複数の形式で提供することにより、別のアプリケーションでその情報を使用できる可能性が高くなります。setData()
メソッドまたは setDataHandler()
メソッドを使用して、Clipboard オブジェクトにデータを追加します。
標準形式は次のとおりです。
- BITMAP_FORMAT:BitmapData オブジェクト(AIR のみ)
- FILE_LIST_FORMAT:File オブジェクトの配列(AIR のみ)
- HTML_FORMAT:HTML 形式のストリングデータ
- TEXT_FORMAT:ストリングデータ
- RICH_TEXT_FORMAT:リッチテキストフォーマットデータを含む ByteArray
- URL_FORMAT:URL ストリング(AIR のみ)
ClipboardFormats クラスに標準形式の名前のこれらの定数が定義されます。
オペレーティングシステムとの間で転送が行われると、 ActionScript データ型とネイティブオペレーティングシステムのクリップボード形式との間で標準形式が自動的に変換されます。
アプリケーションで定義された形式を使用して、ActionScript オブジェクトを Clipboard オブジェクトに追加できます。オブジェクトを直列化できる場合、参照とオブジェクトのクローンの両方を使用できるようになります。オブジェクト参照は、元のアプリケーション内でのみ有効です。
転送する情報を特定の形式に変換するための計算の負荷が大きい場合は、変換を実行する関数の名前を指定できます。この関数は、特定の形式が受信側のコンポーネントまたはアプリケーションによって読み取られた場合にのみ呼び出されます。setDataHandler()
メソッドを使用して、遅延レンダリング関数を Clipboard オブジェクトに追加します。場合によっては、ドロップ操作が行われる前に、オペレーティングシステムが関数を呼び出すことがあります。例えば、ハンドラー関数を使用して、AIR アプリケーションからファイルシステムにドラッグされたファイルのデータを提供する場合、オペレーティングシステムでは、ドラッグジェスチャが AIR アプリケーションを離れるとすぐに、データハンドラー関数を呼び出します。その結果、通常はファイルデータのダウンロード中または作成中に、予期せず停止する場合があります。
AIR アプリケーションに関する注意:HTML のドラッグ&ドロップイベントおよびコピー&ペーストイベントに対して送出されるイベントオブジェクトによって参照されるクリップボードオブジェクトは、AIR Clipboard オブジェクトと同じタイプではありません。JavaScript クリップボードオブジェクトについては、AIR 開発者ガイドを参照してください。
Flash Player アプリケーションに関する注意:Flash Player 10 では、クリップボードからのペースト操作には最初に「ペースト」コマンドに対応するショートカットキーを押すかコンテキストメニューの「ペースト」コマンドをマウスでクリックするなどのユーザーイベントが必要です。Clipboard.getData()
は、InteractiveObject が paste イベントを受け取り、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 イベントを受け取り、paste イベントを実行している場合にのみクリップボードのコンテンツを返します。他の環境での Clipboard.getData()
の呼び出しは失敗します。アプリケーションサンドボックスの外部にあるコンテンツには AIR で同じ制限が適用されます。
generalClipboard
オブジェクトは自動的に作成されます。このプロパティには Clipboard の別のインスタンスを割り当てることはできません。その代わりに、getData()
メソッドと setData()
メソッドを使用して既存のオブジェクトに対してデータの読み書きを行います。
クリップボードは、新しいデータを書き込む前に必ずクリアして、すべての形式の古いデータを確実に消去する必要があります。
generalClipboard
オブジェクトを AIR NativeDragManager に渡すことはできません。AIR アプリケーションでのネイティブなドラッグ&ドロップ操作に対しては、新しい Clipboard オブジェクトを作成してください。
実装
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 オブジェクトは 1 つのドラッグ&ドロップジェスチャにのみ使用できます。再利用することはできません。
コピー&ペースト操作用に Clipboard オブジェクトを作成しないでください。代わりに単一の Clipboard.generalClipboard
オブジェクトを使用してください。
例外
IllegalOperationError — Flash Player では、オペレーティングシステムのクリップボードのみを使用できるため、new Clipboard() は、Flash Player ではサポートされていません。オペレーティングシステムのクリップボードを使用するコピー&ペースト操作に対しては、新しいクリップボードオブジェクトを作成する代わりに 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
モードを指定すると、適切なバージョンを使用できない場合に代わりのバージョンが返されます。originalOnly
モードまたは cloneOnly
モードを指定すると、要求されたバージョンを使用できない場合に 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 | リッチテキストフォーマットデータです。 |
ClipboardFormats.BITMAP_FORMAT | BitmapData | ビットマップデータ(AIR のみ) |
ClipboardFormats.FILE_LIST_FORMAT | File の配列 | ファイルの配列(AIR のみ) |
カスタムフォーマット名 | すべて | オブジェクト参照および直列化されたクローンです。 |
カスタムの形式名の先頭を "air:" または "flash:" にすることはできません。カスタムの形式を使用するときに名前が競合するのを避けるために、アプリケーション ID やパッケージ名を接頭辞として使用して、「com.example.applicationName.dataPacket」のような形式にすることができます。
アプリケーション内または AIR アプリケーション間で転送する場合、serializable
パラメーターによって参照とコピーの両方を使用できるのか、オブジェクトへの参照のみを使用できるのかが決まります。serializable
を true
に設定すると、参照とデータオブジェクトのコピーの両方を使用できるようになります。serializable
を false
に設定すると、オブジェクト参照のみを使用できるようになります。オブジェクト参照は、現在のアプリケーション内でのみ有効です。そのため、serializable
が false
に設定されている場合、その形式のデータは、他の Flash Player または AIR アプリケーションで使用できないことも意味します。コンポーネントは、目的の形式のデータにアクセスするときに適切なクリップボード転送モードを設定することにより、参照を取得するかオブジェクトのコピーを取得するかを選択できます。
注意:標準形式は、サポートされているアプリケーションの外部にデータをペーストまたはドラッグする場合、常にネイティブ形式に変換されます。そのため、serializable
パラメーターの値は、Flash ベース以外のアプリケーションによる標準形式のデータの使用に影響を与えません。
ある形式でのデータのレンダリングを遅らせるには、代わりに setDataHandler()
メソッドを使用します。setData()
メソッドと setDataHandler()
メソッドの両方を使用して同じ形式名でデータ表現を追加すると、ハンドラー関数は呼び出されません。
注意:Mac OS で format
パラメーターに ClipboardFormats.URL_FORMAT
を設定した場合、URL が転送されるのは、その URL が有効である場合に限られます。それ以外の場合、Clipboard オブジェクトは空になります(getData()
を呼び出すと、null
が返されます)。
パラメーター
format:String — データ形式です。
| |
data:Object — 追加する情報です。
| |
serializable:Boolean (default = true ) — 直列化(および非直列化)が可能なオブジェクトの場合は true を指定します。
|
Boolean — データが正常に設定された場合は true 、それ以外の場合は false になります。Flash Player では、format が ClipboardFormats のサポートされないメンバーである場合、false が返されます(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 のみ) |
カスタムフォーマット名 | void 以外 |
指定された形式のデータを読み取る場合にのみ、ハンドラー関数が呼び出されます。場合によっては、ドロップ操作が行われる前に、オペレーティングシステムが関数を呼び出すことがあります。例えば、ハンドラー関数を使用して、AIR アプリケーションからファイルシステムにドラッグされたファイルのデータを提供する場合、オペレーティングシステムでは、ドラッグジェスチャが AIR アプリケーションを離れるとすぐに、データハンドラー関数を呼び出します。その結果、通常はファイルデータのダウンロード中または作成中に、予期せず停止する場合があります。この目的では、URLFilePromise を代わりに使用できます。
基になるデータは、アプリケーションでそのデータを保護する手順を実行しない場合、ハンドラーを追加した時点からデータを読み取る時点までの間変更できます。ハンドラー関数によって表されるクリップボード上のデータが複数回読み取られた場合の動作は保証されません。クリップボードからは、最初の関数呼び出しによって作成されたデータが返される場合もあれば、関数が再度呼び出される場合もあります。いずれの動作にも依存しないでください。
Adobe AIR のアプリケーションサンドボックスでは、いつでも setDataHandler()
を呼び出すことができます。他のコンテキストでは、キー入力やマウスクリックなどのユーザー操作に応答する場合にのみ、setDataHandler()
を呼び出すことができます。
この Clipboard オブジェクトにデータを直接追加するには、代わりに setData()
メソッドを使用します。同じ形式名を使用して setData()
メソッドと setDataHandler()
メソッドの両方を呼び出すと、ハンドラー関数は呼び出されません。
注意:Mac OS で format
パラメーターに ClipboardFormats.URL_FORMAT
を設定した場合、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 の場合、paste
イベントハンドラーでは Clipboard オブジェクトの getData()
メソッドのみ呼び出すことができます。
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, 10:34 AM Z