AIR アプリケーションのアイコン上(アプリ本体やショートカット)に、
ファイルをドラッグ&ドロップしてアプリを起動し、そのファイル情報(パス)を取得する。
main.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
applicationComplete="init(event)"
>
<fx:Script>
<![CDATA[
import flash.desktop.NativeApplication;
import flash.events.InvokeEvent;
import mx.events.FlexEvent;
private function init(e:FlexEvent):void
{
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);
}
private function onInvoke(e:InvokeEvent):void
{
for each(var filePath:String in e.arguments)
{
log.text += "\n" + filePath;
}
}
]]>
</fx:Script>
<s:Label id="log" width="100%" height="100%" text="[drop files]" />
</s:WindowedApplication>
ドロップを許容するファイルを限定する時は、application.xml でファイルタイプを指定する。
Windows だと全部受けつけてしまうけど、
Mac だと指定したファイルをドロップした時だけアプリが起動する。
application.xml
<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/3.1">
<id>sample</id>
<versionNumber>1.0</versionNumber>
<filename>sample</filename>
<name>sample</name>
<description></description>
<copyright></copyright>
<initialWindow>
<title>sample</title>
<content>sample.swf</content>
<systemChrome>standard</systemChrome>
<transparent>false</transparent>
<visible>true</visible>
<minimizable>true</minimizable>
<maximizable>true</maximizable>
<resizable>true</resizable>
</initialWindow>
<fileTypes>
<fileType>
<name>jpg</name>
<extension>jpg</extension>
<contentType>image/jpg</contentType>
</fileType>
</fileTypes>
</application>