我想在applicationComplete
applicationComplete="init()
之前获取命令行参数。在init()
中,我想使用这些命令行参数,但onInvoke
之后会出现init()
。目前,我的onInvoke
按照以下顺序排列applicationComplete
和main.mxml
。
<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"
xmlns:noxaos="com.someplace.*"
xmlns:skins="skins.*"
invoke="onInvoke(event)"
applicationComplete="init()"
width="400"
height="600">
答案 0 :(得分:1)
您无法通过更改属性顺序来更改执行顺序。
实际上 如果您需要在较早阶段响应 但是,没有保证以前调度 您可以通过直接在invoke
事件通常在 applicationComplete
事件之前触发,但WindowedApplication
类将其排队,直到窗口被添加到阶段。< / p>
invoke
事件,那么您必须直接订阅调度对象,即NativeApplication
类。NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, invokeHandler);
invoke
事件,因此为了避免可能的竞争条件,您应该只在invoke
之后进一步处理被派遣了。invoke
处理程序中订阅applicationComplete
事件来管理此操作,并将所有内容从那里移到invoke
处理程序中。这应该可以正常工作,因为invoke
事件正在排队,并且会在订阅后直接触发。