AIRでのドラッグ&ドロップ
今日はドラドロ!
画像をPanel上にドロップして表示するだけのアプリです。
ドラッグ&ドロップをするための手順!
まずはイベントリスナーの登録
//Panelにドラッグオブジェクトが侵入したときのイベントリスナーを登録します myPanel.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, doDragEnter); //Panelでドロップされたときのイベントリスナーを登録します myPanel.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, doDrop);
次はPanelにドラッグオブジェクトが侵入したときの処理
//NATIVE_DRAG_ENTERイベント時の処理 private function doDragEnter(dragEvent:NativeDragEvent):void{ NativeDragManager.acceptDragDrop(myPanel); //Panelがドロップ動作を受け入れられるようにする。 }
最後にドロップされたときの処理
//NATIVE_DRAG_DROP時の処理 private function doDrop(droppedEventObj:NativeDragEvent):void{ //今回作ったアプリではデータ形式が"air:file list" //形式が知りたい場合は //trace(droppedEventObj.clipboard.formats); //でドロップされたもののデータ形式がわかります。 var droppedFiles:Array = droppedEventObj.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array; for each(var file:File in droppedFiles){ //fileの処理 } }
こんな感じになります。
ここでドロップされてくるファイルの形式ですが、エクスプローラなどから外部ファイルがドラッグされてくる場合はデータ形式が"air:file list"となるみたい。他にも色々な形式が存在します。