当然ブラウザからAIRへのドラッグ&ドロップにも対応しているため、リンクをドラッグしてブックマークしていくような機能を持ったアプリケーションが可能になります。
AIRのドラッグ&ドロップについてはネットでもいくつかの記事ですでに紹介されてます。
Adobe AIRで作るデスクトップアプリケーション
今からはじめるAIRプログラミング
詳細に解説されているのですが、AIRがバージョンアップしているうちにドラッグ&ドロップに関係するTransferableDataクラスがClipboardクラスに置換えられているため、解説のソースを写経してもエラーになってしまいます。
そこでURLをブラウザからドラグしてブックマークしていくアプリケーションを想定して
、置き換わったClipboardクラスでインターフェースをテストしてみました。
以下Flex3でのAIRのソースです。
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.events.DragEvent;
import mx.managers.DragManager;
private var transferable:Clipboard;
private function init():void {
ti.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, dragDropHandler);
}
private function dragDropHandler(e:NativeDragEvent):void{
transferable = e.clipboard;
if (transferable.hasFormat(ClipboardFormats.TEXT_FORMAT) ||
transferable.hasFormat(ClipboardFormats.URL_FORMAT)){
DragManager.acceptDragDrop(ti);
}
}
]]>
</mx:Script>
<mx:TextInput id="ti" borderStyle="solid" backgroundColor="#FFFFFF" width="300" height="50" x="10" y="10"/>
</mx:WindowedApplication>
このアプリケーションのテキストインプット部分に、ブラウザからテキストリンク、あるいはRSSボタンみたいなリンクボタンをドラッグ&ドロップするとURLが入力されます。サンプルのソースではURL_FORMATとTEXT_FORMATでacceptDragDropするようになっていますが、このような使用のケースではTEXT_FORMATだけで良いみたいです。
ブラウザからテキストエディタにリンクをドラグ&ドロップすると(例えば自分の使っているmiの場合ですが)<A>タグ付きでペーストされたりするため、AIRでもURLを抽出する手続きが必要なものと構えていたんですが、あっさりURLだけになってしまったんでやや肩透かしな感じがしてます。とにかくAIRへのURLのドラッグ&ドロップはすごく簡単にできるようになってました。


