package com.controls { import flash.desktop.NativeApplication; import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IEventDispatcher; /** * @author:Frost.Yen * @E-mail:871979853@qq.com * @create: 2016-6-21 下午3:24:57 * */ public class ScreenSaver extends EventDispatcher { static public const START_SAVER:String = "start_saver"; static public const QUIT_SAVER:String = "quit_saver"; public function ScreenSaver(target:IEventDispatcher=null) { super(target); } public function set scrrenSaverTime(value:Number):void { NativeApplication.nativeApplication.idleThreshold = value; NativeApplication.nativeApplication.addEventListener(Event.USER_IDLE, handleUserIdle); NativeApplication.nativeApplication.addEventListener(Event.USER_PRESENT, handleUserPresent); } /** * 当用户处于空闲状态的时间长度达到 idleThreshold 属性指定的时间时调度。 */ private function handleUserIdle(e:Event):void { //开始屏保 this.dispatchEvent(new Event(START_SAVER)); trace("鼠标离开了多少秒", NativeApplication.nativeApplication.timeSinceLastUserInput); } /** * 当操作系统在空闲一段时间后检测到鼠标或键盘活动时调度。 */ private function handleUserPresent(e:Event):void { //退出屏保 this.dispatchEvent(new Event(QUIT_SAVER)); } } }
用法:
package { import com.controls.ScreenSaver; import flash.display.Sprite; import flash.events.Event; /** * ... * @author FrostYen */ public class Main extends Sprite { private var _saver:ScreenSaver; public function Main() { _saver = new ScreenSaver(); _saver.scrrenSaverTime = 0.5; _saver.addEventListener(ScreenSaver.START_SAVER, onStartSaver); _saver.addEventListener(ScreenSaver.QUIT_SAVER, onQuitSaver); } private function onStartSaver(e:Event):void { trace("start_saver"); } private function onQuitSaver(e:Event):void { trace("quit_saver"); } } }