Amazon

2011年10月29日土曜日

ドラッグ&ドロップの処理

今年、Win7x64にしたのだけど、いつもは入れる、VisualStudio2010を今は入れてません。
今日まで、別に困ることもなく…(笑)

でもきのう、VCで作った自作ツールを動かそうとしたら、どうやらリリースモードでのビルドしてなくて、dllを要求された。
とりあえず、dllを入れればこのツールは動くのだけど、またVisualStudioを入れるかどうか悩む。
このツール、まぁたいしたことやっていないので、VCはやめて、AIRアプリにすることにした。
たぶん、VisualStudioインストールする時間より早く、このツールができたよ(笑)
あぁ、AIRアプリ簡単。

ちょっと覚書
flaにコンポーネントUILoaderを入れておいて、、、
このへんをインポート
import flash.display.*;
import fl.containers.UILoader;
import flash.desktop.ClipboardFormats;
import flash.events.NativeDragEvent;
import flash.desktop.NativeDragManager;
import flash.filesystem.*;
import flash.desktop.Clipboard;
import flash.net.URLRequest;
import flash.events.Event;
import flash.net.*;
import flash.filesystem.FileStream;
import flash.errors.IOError;


あとは、
movieclip.addEventListener( NativeDragEvent.NATIVE_DRAG_ENTER, _enter);
movieclip.addEventListener( NativeDragEvent.NATIVE_DRAG_DROP, _drop );
で、イベントを登録しておいて、
private function _enter(event:NativeDragEvent):void
{
NativeDragManager.acceptDragDrop(movieclip);
}
private function _drop(event:NativeDragEvent):void
{
var files:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
 for(var i:int =0; i < files.length; i++ ) {
trace(files[i].url);
 } 
}

まぁ、これで、どのファイルがドロップされたかがわかるので、あとは通常通りの処理。

ぼくは、NativeDragManager.acceptDragDropを入れるの忘れて、なかなかdropされなかったです(笑)