パッケージflash.desktop
クラスpublic class Clipboard
継承Clipboard Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.0

Clipboard クラスは、クリップボードを通じてデータとオブジェクトを転送するコンテナを提供します。AIR では、Clipboard クラスはドラッグ&ドロップ操作にも使用されます。オペレーティングシステムクリップボードには、静的 generalClipboard プロパティを通じてアクセスできます。

Clipboard オブジェクトには、同じ情報を複数の形式で格納できます。情報を複数の形式で提供することにより、別のアプリケーションでその情報を使用できる可能性が高くなります。setData() メソッドまたは setDataHandler() メソッドを使用して、Clipboard オブジェクトにデータを追加します。

標準形式は次のとおりです。

ClipboardFormats クラスに標準形式の名前のこれらの定数が定義されます。

Flash Player または AIR アプリケーションとオペレーティングシステムとの間で転送が行われる場合、ActionScript データ型とネイティブクリップボードとの間で標準形式が自動的に変換されます。

アプリケーションで定義された形式を使用して、 オブジェクトや ActionScript オブジェクトを Clipboard オブジェクトに追加できます。 オブジェクトを直列化できる場合、参照とオブジェクトのクローンの両方を使用できるようになります。 オブジェクト参照は、元のアプリケーション内でのみ有効です。

転送する情報を特定の形式に変換するための計算の負荷が大きい場合は、変換を実行する関数の名前を指定できます。この関数は、特定の形式が受信側のコンポーネントまたはアプリケーションによって読み取られた場合にのみ呼び出されます。setDataHandler() メソッドを使用して、遅延レンダリング関数を Clipboard オブジェクトに追加します。

AIR アプリケーションに関する注意:HTML のドラッグ&ドロップイベントおよびコピー&ペーストイベントに対して送出されるイベントオブジェクトによって参照されるクリップボードオブジェクトは、AIR Clipboard オブジェクトと同じタイプではありません。JavaScript クリップボードオブジェクトについては、AIR 開発者ガイドを参照してください。

例を表示

関連項目

flash.desktop.NativeDragManager
flash.desktop.ClipboardFormats
flash.desktop.ClipboardTransferMode


パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  formats : Array
[読み取り専用] この Clipboard オブジェクトで使用できるデータ形式の名前が含まれたストリングの配列です。
Clipboard
  generalClipboard : Clipboard
[静的] [読み取り専用] オペレーティングシステムクリップボードです。
Clipboard
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義元
  
空の Clipboard オブジェクトを作成します。
Clipboard
  
この Clipboard オブジェクトからすべてのデータ表現を削除します。
Clipboard
  
指定された形式のデータ表現を削除します。
Clipboard
  
getData(format:String, transferMode:String = "originalPreferred"):Object
指定された形式のデータが存在する場合、クリップボードデータを取得します。
Clipboard
  
指定された形式のデータがこの Clipboard オブジェクトに存在するかどうかをチェックします。
Clipboard
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
  
setData(format:String, data:Object, serializable:Boolean = true):Boolean
転送する情報の指定されたデータ形式の表現を追加します。
Clipboard
  
setDataHandler(format:String, handler:Function, serializable:Boolean = true):Boolean
要求時に、指定された形式のデータを生成するハンドラ関数への参照を追加します。
Clipboard
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
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():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;
コンストラクタの詳細
Clipboard()コンストラクタ
public function Clipboard()

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.0

空の Clipboard オブジェクトを作成します。


例外
IllegalOperationError — Flash Player ではオペレーティングシステムのクリップボードしか使用できないため、new Clipboard() は、Flash Player ではサポートされていません。オペレーティングシステムのクリップボードを使用するコピー&ペースト操作に対しては、新しいクリップボードオブジェクトを作成する代わりに Clipboard.generalClipboard オブジェクトを使用します。AIR アプリケーションでは、エラーはスローされません。

関連項目




次の例では、NativeDragManager クラスで使用する新しいクリップボードを作成します。

注意 : オペレーティングシステムのクリップボードを使用するコピー & ペースト操作に対しては、新しいクリップボードを作成する代わりに 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 パラメータによって参照とコピーの両方を使用できるのか、オブジェクトへの参照のみを使用できるのかが決まります。serializabletrue に設定すると、参照とデータオブジェクトのコピーの両方を使用できるようになります。serializablefalse に設定すると、オブジェクト参照のみを使用できるようになります。オブジェクト参照は、現在のアプリケーション内でのみ有効です。そのため、serializablefalse に設定されている場合、その形式のデータは、他の 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_FORMATClipboardFormats.FILE_LIST_FORMAT または ClipboardFormats.BITMAP_FORMAT はサポートされていません)。

例外
IllegalOperationError — 要求された Clipboard オブジェクトは、スコープ内になくなります(AIR のみ)。
 
SecurityError — このコンテキストでは、クリップボードからの読み取りまたはクリップボードへの書き込みは許可されません。Flash Player では、このメソッドの呼び出しは、キー入力やマウスのクリックなどのユーザーイベントの処理時にのみ成功します。AIR では、この制限はアプリケーションセキュリティサンドボックス外のコンテンツにのみ適用されます。
 
TypeError format または datanull です。

関連項目




次の例では、コンテンツをテキスト形式と 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()メソッド 
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 または handlernull です。
 
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();
 }
例の使用法
ClipboardExample.as

次の例では、ClipboardExample クラスを使用して、ある変数から別の変数にシステムクリップボードを介してストリングをコピーします。これを行うには、以下の手順を実行します。
  1. データ(この例ではストリング)を Clipboard.generalClipboard に書き込みます。
  2. 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;}
        }
        
    }
}