またしてもAIRネタです。ハイペースで情報を詰め込むと忘れやすいので、覚えているうちにネタ毎にまとめてblogに投げておくと、後々自分にとっても役に立ちそうなので書いてしまいます。
さてさて、今回はMacのFinderやWindowsのExplorerのから直接ファイルをAIRアプリにドラッグ&ドロップして渡すためのAPIの使い方です。
OS側からのファイルのドラッグ&ドロップには、flash.events.NativeDragEventが使われます。まずは、これらのイベントにハンドラを登録します。
addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, dragEnterHandler); addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, dragDropHandler);
次に、ハンドラを書きます。
private function dragEnterHandler(event:NativeDragEvent):void
{
NativeDragManager.acceptDragDrop(this);
}
private function dragDropHandler(event:NativeDragEvent):void
{
var files:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
for each (var file:File in files){
...以下略
}
}
といったようにFileオブジェクトを取り出せるので、後は通常のFileオブジェクトの扱い方と同じようにプログラミングしていくだけです。