topLevelApplicationではなくStageでリッスンしてみてください。
(FlexGlobals.topLevelApplication as Application).stage.addEventListener(MouseEvent.MOUSE_MOVE, resetLastActivity);
(FlexGlobals.topLevelApplication as Application).stage.addEventListener(KeyboardEvent.KEY_DOWN, resetLastActivity);
更新:
に入れたままにしてください、私はあなたがこのような何かをする必要がありますので、topLevelApplicationが正式にオブジェクトを返すと思いますtopLevelApplication
にstage propertyを使用して、ステージにアクセスそのコンポーネントのcreationCompleteイベントが発生するまでステージがtopLevelApplicationに設定されていないことに注意してください。イベントリスナーを非UIクラスのステージに追加する場合は、 topLevelApplicationでcreationCompleteが起動するまでこれが行われていないことを確認する必要があります。
これを行うには、コンストラクタのtopLevelApplicationのcreationCompleteメソッドにイベントリスナーを追加します。
(FlexGlobals.topLevelApplication.addEventListener(FlexEvent.CREATION_COMPLETE, onCreationCompete);
これがMXML UIComponentの場合は、そのコードをコンストラクタの代わりにpreinitializeイベントハンドラに追加できます。
次に、この創造完全なハンドラを次のようになります。
public function onCreationComplete(event:FlexEvent):void{
(FlexGlobals.topLevelApplication as Application).stage.addEventListener(MouseEvent.MOUSE_MOVE, resetLastActivity);
(FlexGlobals.topLevelApplication as Application).stage.addEventListener(KeyboardEvent.KEY_DOWN, resetLastActivity);
}
これも私が直面していた問題です。当分の間、私はすべてのポップアップをコレクションに入れておき、タイムアウトのためにイベントリスナーを追加しています。 –