ham*_*lin 4 apache-flex air flash actionscript-3
所以我创建了一个Air应用程序,可以保存为自定义文件类型.我在发布应用程序时设置了文件关联,当您双击该文件时,它会打开空中应用程序.有什么钩子可以检测到应用程序是通过文件打开的?显然,我需要检测到这一点,然后让应用程序打开文件本身.
invoke在WindowedApplication或其nativeApplication上侦听事件.它有一个arguments数组属性,用于保存在此调用期间传递的字符串参数.
调用应用程序时,
NativeApplicationAIR应用程序的对象将调度invoke事件.该
NativeApplication对象始终调度时,应用程序启动invoke事件,但该事件也可以在其他时间调度好.例如,正在运行的应用程序InvokeEvent在用户激活与应用程序关联的文件时调度附加内容.只能启动特定应用程序的单个实例.启动应用程序的后续尝试将导致
NativeApplication正在运行的实例的对象调度的新调用事件.应用程序负责处理此事件并采取适当的操作,例如打开新的应用程序窗口以在文件中显示数据.
InvokeEventNativeApplicationobject(NativeApplication.nativeApplication)调度对象.要接收调用事件,请调用addEventListener()该NativeApplication对象的方法.当事件侦听器注册调用事件时,它还将接收invoke注册前发生的所有事件.在调用addEventListener()返回之后调度这些早期事件,但不一定在注册后可能调度的新调用事件之前调度.因此,您不应该依赖派遣订单.
<mx:WindowedApplication creationComplete="init()">
<mx:Script>
<![CDATA[
public function init():void
{
NativeApplication.nativeApplication.addEventListener(InvokeEvent.Invoke, onInvoke);
}
public function onInvoke(e:InvokeEvent):void
{
var args:Array = e.arguments;
trace("There are " + args.length + " arguments");
for(var i:int = 0; i < args.length; i++)
{
trace("Argument #" + i + " " + args[i]);
}
}
]]>
</mx:Script>
</mx:WindowedApplication>
Run Code Online (Sandbox Code Playgroud)