| パッケージ | flash.desktop |
| クラス | public class Clipboard |
| 継承 | Clipboard Object |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.0 |
generalClipboard プロパティを通じてアクセスできます。
Clipboard オブジェクトには、同じ情報を複数の形式で格納できます。情報を複数の形式で提供することにより、別のアプリケーションでその情報を使用できる可能性が高くなります。setData() メソッドまたは setDataHandler() メソッドを使用して、Clipboard オブジェクトにデータを追加します。
標準形式は次のとおりです。
ClipboardFormats クラスに標準形式の名前のこれらの定数が定義されます。
Flash Player または AIR アプリケーションとオペレーティングシステムとの間で転送が行われる場合、ActionScript データ型とネイティブクリップボードとの間で標準形式が自動的に変換されます。
アプリケーションで定義された形式を使用して、 オブジェクトや ActionScript オブジェクトを Clipboard オブジェクトに追加できます。 オブジェクトを直列化できる場合、参照とオブジェクトのクローンの両方を使用できるようになります。 オブジェクト参照は、元のアプリケーション内でのみ有効です。
転送する情報を特定の形式に変換するための計算の負荷が大きい場合は、変換を実行する関数の名前を指定できます。この関数は、特定の形式が受信側のコンポーネントまたはアプリケーションによって読み取られた場合にのみ呼び出されます。setDataHandler() メソッドを使用して、遅延レンダリング関数を Clipboard オブジェクトに追加します。
AIR アプリケーションに関する注意:HTML のドラッグ&ドロップイベントおよびコピー&ペーストイベントに対して送出されるイベントオブジェクトによって参照されるクリップボードオブジェクトは、AIR Clipboard オブジェクトと同じタイプではありません。JavaScript クリップボードオブジェクトについては、AIR 開発者ガイドを参照してください。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
![]() | constructor : Object 指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。 | Object | |
| formats : Array [読み取り専用] この Clipboard オブジェクトで使用できるデータ形式の名前が含まれたストリングの配列です。 | Clipboard | ||
| generalClipboard : Clipboard [静的] [読み取り専用] オペレーティングシステムクリップボードです。 | Clipboard | ||
![]() | prototype : Object [静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
| メソッド | 定義元 | ||
|---|---|---|---|
空の Clipboard オブジェクトを作成します。 | Clipboard | ||
この Clipboard オブジェクトからすべてのデータ表現を削除します。 | Clipboard | ||
指定された形式のデータ表現を削除します。 | Clipboard | ||
指定された形式のデータが存在する場合、クリップボードデータを取得します。 | Clipboard | ||
指定された形式のデータがこの Clipboard オブジェクトに存在するかどうかをチェックします。 | Clipboard | ||
![]() | オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() | Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() | 指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
転送する情報の指定されたデータ形式の表現を追加します。 | Clipboard | ||
要求時に、指定された形式のデータを生成するハンドラ関数への参照を追加します。 | Clipboard | ||
![]() | ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
![]() | 指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() | 指定されたオブジェクトのプリミティブな値を返します。 | Object | |
| formats | プロパティ |
formats:Array [読み取り専用] | 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.0 |
この Clipboard オブジェクトで使用できるデータ形式の名前が含まれたストリングの配列です。
ClipboardFormats クラスに標準形式の名前のストリング定数が定義されます。他のアプリケーション定義のストリングを形式名として使用して、データをオブジェクトとして転送することもできます。
public function get formats():Array関連項目
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() メソッドを使用して既存のオブジェクトに対してデータの読み書きを行います。
クリップボードは、新しいデータを書き込む前に必ずクリアして、すべての形式の古いデータを確実に消去する必要があります。
public static function get generalClipboard():Clipboardimport 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;
| Clipboard | () | コンストラクタ |
public function Clipboard()| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.0 |
空の Clipboard オブジェクトを作成します。
IllegalOperationError —
Flash Player ではオペレーティングシステムのクリップボードしか使用できないため、new Clipboard() は、Flash Player ではサポートされていません。オペレーティングシステムのクリップボードを使用するコピー&ペースト操作に対しては、新しいクリップボードオブジェクトを作成する代わりに Clipboard.generalClipboard オブジェクトを使用します。AIR アプリケーションでは、エラーはスローされません。
|
関連項目
注意 : オペレーティングシステムのクリップボードを使用するコピー & ペースト操作に対しては、新しいクリップボードを作成する代わりに 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 オブジェクトからすべてのデータ表現を削除します。
Clipboard.generalClipboard.clear();
| clearData | () | メソッド |
public function clearData(format:String):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.0 |
指定された形式のデータ表現を削除します。
パラメータ
format:String — 削除するデータ形式です。 |
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 イベントのハンドラ内で getData() を呼び出します。AIR では、この制限はアプリケーションセキュリティサンドボックス外のコンテンツにのみ適用されます。
標準のデータ形式にアクセスすると、対応する Flash Player または AIR タイプの新しいオブジェクトとしてデータが返されます。
アプリケーションで定義された形式にアクセスする場合、transferMode パラメータの値によって、元のオブジェクトへの参照を返すか、元のオブジェクトの直列化されたコピーが格納された匿名オブジェクトを返すかが決まります。originalPreferred モードまたは clonePreferred モードを指定すると、適切なバージョンを使用できない場合に代わりのバージョンが返されます。originalOnly モードまたは cloneOnly モードを指定すると、要求されたバージョンを使用できない場合に null が返されます。
パラメータ
format:String — 返すデータ形式です。フォーマットストリングには、ClipboardFormats クラスに定義された標準の名前のいずれか、またはアプリケーションで定義された名前を含めることができます。 | |
transferMode:String (default = "originalPreferred") — アプリケーションで定義されたデータ形式にアクセスするときに、参照または直列化されたコピーを返すかどうかを指定します。この値は、ClipboardTransferMode クラスに定義されている名前のいずれかにする必要があります。この値は標準データ形式では無視されます。コピーは常に返されます。 |
Object — データ形式に対応するタイプのオブジェクトです。 |
Error —
transferMode は、ClipboardTransferMode クラスで定義された名前のいずれかではありません。
| |
IllegalOperationError — 要求された Clipboard オブジェクトは、スコープ内になくなります(AIR のみ)。 | |
SecurityError — このコンテキストでは、クリップボードからの読み取りまたはクリップボードへの書き込みは許可されません。Flash Player では、このメソッドの呼び出しは、キー入力やマウスのクリックなどのユーザーイベントの処理時にのみ成功します。AIR では、この制限はアプリケーションセキュリティサンドボックス外のコンテンツにのみ適用されます。 |
関連項目
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 オブジェクトは、スコープ内になくなります(AIR のみ)。 | |
SecurityError — このコンテキストでは、クリップボードからの読み取りまたはクリップボードへの書き込みは許可されません。 |
関連項目
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 |
転送する情報の指定されたデータ形式の表現を追加します。Flash Player では、setData() を使用する前に、キー入力やマウスのクリックなどのユーザーイベントを必要とします。 AIR では、この制限はアプリケーションセキュリティサンドボックス外のコンテンツにのみ適用されます。
同じ情報の別の表現を、異なる形式でクリップボードに追加できます。これにより、他の多くのコンポーネントまたはアプリケーションでもデータを利用できるようになります。例えば、AIR アプリケーションでは、イメージ編集アプリケーション用のビットマップデータ、他の AIR アプリケーション用の Bitmap オブジェクトおよびネイティブファイルシステムへの転送用のエンコードされた 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:" にすることはできません。AIR アプリケーションでは、カスタムの形式を使用するときに名前が競合することを避けるために、アプリケーション ID やパッケージ名を接頭辞として使用して、「com.example.applicationName.dataPacket」のような形式にすることができます。
Flash Player または AIR アプリケーション内、あるいは Flash Player または AIR アプリケーション間で転送する場合、serializable パラメータによって参照とコピーの両方を使用できるのか、オブジェクトへの参照のみを使用できるのかが決まります。serializable を true に設定すると、参照とデータオブジェクトのコピーの両方を使用できるようになります。serializable を false に設定すると、オブジェクト参照のみを使用できるようになります。オブジェクト参照は、現在のアプリケーション内でのみ有効です。そのため、serializable が false に設定されている場合、その形式のデータは、他の Flash Player または AIR アプリケーションで使用できないことも意味します。コンポーネントは、目的の形式のデータにアクセスするときに適切なクリップボード転送モードを設定することにより、参照を取得するかオブジェクトのコピーを取得するかを選択できます。
注意:標準形式は、サポートされているアプリケーションの外部にデータをペーストまたはドラッグする場合、常にネイティブ形式に変換されます(AIR のみ)。そのため、serializable パラメータの値は、Flash Player 以外または AIR 以外のアプリケーションによる標準形式のデータの使用に影響を与えません。
ある形式でのデータのレンダリングを遅らせるには、代わりに setDataHandler() メソッドを使用します。setData() メソッドと setDataHandler() メソッドの両方を使用して同じ形式名でデータ表現を追加すると、ハンドラ関数は呼び出されません。
パラメータ
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.BITMAP_FORMAT はサポートされていません)。
|
IllegalOperationError — 要求された Clipboard オブジェクトは、スコープ内になくなります(AIR のみ)。 | |
SecurityError — このコンテキストでは、クリップボードからの読み取りまたはクリップボードへの書き込みは許可されません。Flash Player では、このメソッドの呼び出しは、キー入力やマウスのクリックなどのユーザーイベントの処理時にのみ成功します。AIR では、この制限はアプリケーションセキュリティサンドボックス外のコンテンツにのみ適用されます。 | |
TypeError —
format または data は null です。
|
関連項目
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 |
要求時に、指定された形式のデータを生成するハンドラ関数への参照を追加します。このメソッドを使用して、データに実際にアクセスするまで、データの作成またはレンダリングを遅らせます。Flash Player では、setDataHandler() を使用する前に、キー入力やマウスのクリックなどのユーザーイベントを必要とします。 AIR では、この制限はアプリケーションセキュリティサンドボックス外のコンテンツにのみ適用されます。
ハンドラ関数は、指定された形式に適合するデータ型を返す必要があります。
| 形式 | 返す型 |
|---|---|
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 のみ)。
|
| カスタムフォーマット名 | void 以外 |
指定された形式のデータを読み取る場合にのみ、ハンドラ関数が呼び出されます。基になるデータは、アプリケーションでそのデータを保護する手順を実行しない場合、ハンドラを追加した時点からデータを読み取る時点までの間変更できます。ハンドラ関数によって表されるクリップボード上のデータが複数回読み取られた場合の動作は保証されません。Flash Player または AIR は、最初の関数呼び出しで生成されたデータを返す場合もあれば、もう一度関数を呼び出す場合もあります。いずれの動作にも依存しないでください。
この Clipboard オブジェクトにデータを直接追加するには、代わりに setData() メソッドを使用します。同じ形式名を使用して setData() メソッドと setDataHandler() メソッドの両方を呼び出すと、ハンドラ関数は呼び出されません。
パラメータ
format:String — 転送されるデータを返す関数です。 | |
handler:Function — データ形式です。 | |
serializable:Boolean (default = true) —
true を指定するのは、handler で返されるオブジェクトを直列化(および非直列化)できる場合です。
|
Boolean —
ハンドラが正常に設定された場合は true、それ以外の場合は false になります。
|
TypeError —
format または handler は null です。
| |
IllegalOperationError — 要求された Clipboard オブジェクトは、スコープ内になくなります(AIR のみ)。 | |
SecurityError — このコンテキストでは、クリップボードからの読み取りまたはクリップボードへの書き込みは許可されません。Flash Player では、このメソッドの呼び出しは、キー入力やマウスのクリックなどのユーザーイベントの処理時にのみ成功します。AIR では、この制限はアプリケーションセキュリティサンドボックス外のコンテンツにのみ適用されます。 |
関連項目
import flash.desktop.ClipboardFormats;
Clipboard.generalClipboard.setDataHandler(ClipboardFormats.TEXT_FORMAT, randomNumberGenerator);
public function randomNumberGenerator():String{
return Math.random().toString();
}Clipboard.generalClipboard に書き込みます。
Clipboard.generalClipboard からクリップボード定数を読み取ります。
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;}
}
}
}