基本はClipboardクラス
デスクトップアプリケーションの多くは,
コピー&ペーストにしてもドラッグ&ドロップにしても,
形式 | ActionScriptのデータ型 |
---|---|
ビットマップ | BitmapData |
ファイルリスト | FileオブジェクトのArray |
テキスト | String |
URL | String |
シリアライズされたオブジェクト | * |
オブジェクトの参照 | * |
ビットマップ/
Clipboardオブジェクトには,
コピー&ペースト
では,
var clipboard:Clipboard = Clipboard.generalClipboard;
このClipboardオブジェクトにデータを設定すれば,
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private function copyToClipboard():void {
var clipboard:Clipboard = Clipboard.generalClipboard;
clipboard.clear();
var ok:Boolean = clipboard.setData(ClipboardFormats.TEXT_FORMAT, "AIRでコピー&ペースト");
}
]]>
</mx:Script>
<mx:Button x="10" y="10" label="Copy" click="copyToClipboard()"/>
</mx:WindowedApplication>
このように,
ClipboardFormats. | ビットマップ |
ClipboardFormats. | ファイルリスト |
ClipboardFormats. | テキスト |
ClipboardFormats. | URL |
setData()を実行すると,
今度はクリップボードからのペーストです。Clipboardオブジェクトからデータを取得するにはgetData()メソッドを使います。また,
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private function pasteFromClipboard():void {
var clipboard:Clipboard = Clipboard.generalClipboard;
if (clipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)) {
output.text = clipboard.getData(ClipboardFormats.TEXT_FORMAT) as String;
}
}
]]>
</mx:Script>
<mx:Button x="10" y="10" label="Paste" click="pasteFromClipboard()"/>
<mx:TextArea x="10" y="40" id="output"/>
</mx:WindowedApplication>
カスタムフォーマット
標準フォーマット以外の形式でやりとりしたい場合は,
//コピーする側
var clipboard:Clipboard = Clipboard.generalClipboard;
clipboard.clear();
clipboard.setData("jp.gihyo.example", new Date(), true);
//ペーストする側
var clipboard:Clipboard = Clipboard.generalClipboard;
if (clipboard.hasFormat("jp.gihyo.example")) {
var date:Date = clipboard.getData("jp.gihyo.example", ClipboardTransferMode.CLONE_ONLY) as Date;
trace(date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate());
}
ここでは,
ペーストする側では,
ClipboardTransferMode. | シリアライズされたデータのみを取得 |
ClipboardTransferMode. | シリアライズされたデータを優先して取得, |
ClipboardTransferMode. | 参照のみを取得 |
ClipboardTransferMode. | 参照を優先して取得, |
なお,