AIR アプリアイコンへのドロップでファイル情報取得

2012年10月22日 23:53 action script,air — littlepad

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>

コメントはまだありません

No comments yet.

TrackBack URL

Leave a comment

about

ハンドルネーム:littlepad
都内で WEB 制作(デザイン, html/css, Flash, MT, WordPress etc)をしているBOØWY研究家

category:

search:


archives:

GO TO PAGETOP