feb19.jp blog - life is creative!

AIR でファイルがドラッグアンドドロップされたことを NativeDragEvent で検知する

ブックマークに追加する tags:    

AIR でファイルがドラッグアンドドロップされたことを NativeDragEvent で検知する

最近また AIR が楽しい気がして触っているのですが、 Google で AIR 関連記事を探すと、 AIR beta 版の頃(または Apollo だった頃)の記事が上位にきて、すでに廃止された作法、API を使っていたりするのでちょっと困っています。

自分の中で整理するために、しばらくこのブログで基礎的な AIR の記事をアップしていきます。というか割と AIR 忘れたのでメモです。

まずは基本のドラッグアンドドロップ。
ちなみに Flash CS4 (CS3) で作っているという想定です。

デスクトップとかからファイルをステージ上に配置した MovieClip インスタンス「droparea」にドラッグアンドドロップする方法です。

// MovieClip インスタンスに MouseEvent のように NativeDragEvent を設定
droparea.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, nativeDragEnterHandler);
droparea.addEventListener(NativeDragEvent.NATIVE_DRAG_EXIT, nativeDragExitHandler);
droparea.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, nativeDragDropHandler);
 
// ドラッグしたまま droparea の上に来たとき
function nativeDragEnterHandler(event:NativeDragEvent):void
{
	droparea.alpha = 0.6;
	
	// ドラッグしているアイテムはファイルかどうか
	var clipboard:Clipboard = event.clipboard;
	if (clipboard.hasFormat(ClipboardFormats.FILE_LIST_FORMAT))
	{
		// droparea の上でのドロップを許可する
		NativeDragManager.acceptDragDrop(droparea);
	}
}
 
// ドラッグしたまま droparea から外れたとき
function nativeDragExitHandler(event:NativeDragEvent):void
{
	droparea.alpha = 1.0;
}
 
// ファイルをドロップしたとき
function nativeDragDropHandler(event:NativeDragEvent):void
{
	droparea.alpha = 1.0;
	
	// ドロップしたアイテムを取り出す
	var clipboard:Clipboard = event.clipboard;
	var files:Array = clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
	
	// ドロップしたアイテムのうち、一つめのファイル
	var file:File = files[0];
	trace(file.name);
}

ちなみに複数の File インスタンスを得るには最後の取り出しのところを、

for each (var file:File in files)
{
	trace(file.name);
}

for each は楽ちんですね。

2010年03月24日01:19

Webデザインブログ

「AIR でファイルがドラッグアンドドロップされたことを NativeDragEvent で検知する」の関連エントリー

 iTunes Store(Japan)

コメントを投稿

トラックバック

このエントリーのトラックバックURL:
http://feb19.jp/mt/mt-tb.cgi/190

Navigation

古:iPhone アプリ "iBeat - BPM Counter" を発売しました & iPhone インタラクションデザインについて
新:Adobe CS5 ティザーサイトオープン
トップページ

Recently Entries
Flash 上でパブリッシュしたとき、型宣言されていない変数・関数があったら警告を出す
Flex SDK (mxmlc)や Flex Builder とかで...
Flash Builder 4 Standard 導入
色々メモリリークチェックとか出来る Premium は必要になってか...
Mac でファイルの関連付けを変える(Mac で AIR アプリがアップデート出来ないを解決する方法)
ファイルを右クリックして「情報を見る」を選び、表示されたウィンドウの...
Mac OS X 10.6 Snow Leopard から入ってるフォント「Menlo」がコーディング作業にいい感じ
Xcode でコード書いているとき、Eclipse でコード書くより...
AIR で JSON 形式ファイルの入出力
AIR 祭り開催中。今回はファイル入出力。AS3 で扱っている Ob...
Adobe CS5 ティザーサイトオープン
カウントダウンが始まっています。いよいよ CS5 ですね。globa...
AIR でファイルがドラッグアンドドロップされたことを NativeDragEvent で検知する
最近また AIR が楽しい気がして触っているのですが、 Google...
iPhone アプリ "iBeat - BPM Counter" を発売しました & iPhone インタラクションデザインについて
BPM 計測アプリです。既に似たようなアプリはいくつか発売されている...
AS3 の演算子 ||= について
AS3 だけでつかえるものではないのですが、AS3 での動作を確認し...
iPhone SDK 「カテゴリ」について+NSString の空白文字を除去する
Objective-C では、高位のフレームワークで、低位のフレーム...