Fanfou 1.7 released, sharing part of the code for the newly added minimize-to-system-tray feature:

/**Handler for close & minimize-to-tray button clicks*/ public function clickWindowHandler(e:Event):void { if (e.target == minBtn) { createIcon(); stage.nativeWindow.visible=false; } if (e.target == closeBtn) { NativeApplication.nativeApplication.exit(); } } /**Bring the window back from the background*/ public function reappear(e:ScreenMouseEvent=null):void{ stage.nativeWindow.visible=true; removeIcon(); } /**Create the tray icon*/ public function createIcon():void { NativeApplication.nativeApplication.autoExit = false; var icon:Loader = new Loader(); var iconMenu:NativeMenu = new NativeMenu(); var exitCommand:NativeMenuItem = iconMenu.addItem(new NativeMenuItem(“退出”)); exitCommand.addEventListener(Event.SELECT, function(event:Event):void { NativeApplication.nativeApplication.icon.bitmaps = []; NativeApplication.nativeApplication.exit(); } ); if (NativeApplication.supportsSystemTrayIcon) { NativeApplication.nativeApplication.autoExit = false; icon.contentLoaderInfo.addEventListener(Event.COMPLETE, iconLoadComplete); icon.load(new URLRequest(“resource/icons/i16.png”)); var systray:SystemTrayIcon=NativeApplication.nativeApplication.icon as SystemTrayIcon; systray.tooltip = “饭否AIR客户端”; systray.menu = iconMenu; systray.addEventListener(MouseEvent.CLICK,reappear); } if (NativeApplication.supportsDockIcon) { icon.contentLoaderInfo.addEventListener(Event.COMPLETE,iconLoadComplete); icon.load(new URLRequest(“resource/icons/i128.png”)); var dock:DockIcon = NativeApplication.nativeApplication.icon as DockIcon; dock.menu = iconMenu; dock.addEventListener(MouseEvent.CLICK,reappear);//I have no way to test this case, and I don’t know whether it will cause problems, so I’m alpha-ing it for now } } /**Remove the tray icon*/ public function removeIcon():void { NativeApplication.nativeApplication.icon.bitmaps = []; } private function iconLoadComplete(event:Event):void { NativeApplication.nativeApplication.icon.bitmaps = [event.target.content.bitmapData]; }