Попробуйте прослушать Stage вместо приложения topLevel. получить доступ к сцене с помощью свойства stage в приложении topLevelApplication
Я думаю, что topLevelApplication формально возвращает объект, поэтому вам нужно сделать что-то вроде этого:
(FlexGlobals.topLevelApplication as Application).stage.addEventListener(MouseEvent.MOUSE_MOVE, resetLastActivity);
(FlexGlobals.topLevelApplication as Application).stage.addEventListener(KeyboardEvent.KEY_DOWN, resetLastActivity);
Обновление:
Имейте в виду, что этап не устанавливается в topLevelApplication до тех пор, пока не будет запущено событие creationComplete этого компонента. Если вы добавляете прослушиватели событий на сцену не в классе UI; Вы должны убедиться, что это не будет сделано до тех пор, пока creationComplete не сработает в приложении topLevelApplication.
Для этого добавьте прослушиватель событий в метод creationComplete topLevelApplication в конструкторе.
(FlexGlobals.topLevelApplication.addEventListener(FlexEvent.CREATION_COMPLETE, onCreationCompete);
Если это MXML UIComponent, вы можете добавить этот код в обработчик события предварительной инициализации вместо конструктора.
Тогда это будет обработчик завершения создания:
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);
}