air学习笔记:快速添加图标

来源:互联网 发布:海盗港湾软件工作室 编辑:程序博客网 时间:2024/05/16 07:48
package com.air{import flash.desktop.NativeApplication;import flash.desktop.SystemTrayIcon;import flash.display.BitmapData;import flash.display.Loader;import flash.display.NativeWindow;import flash.display.NativeWindowDisplayState;import flash.display.NativeWindowInitOptions;import flash.display.NativeWindowType;import flash.display.Stage;import flash.events.Event;import flash.events.MouseEvent;import flash.events.NativeWindowDisplayStateEvent;import flash.net.URLRequest;/** * 一个快速添加Icon 图标的类  */public class AirIcon{private static var iconImage:BitmapDataprivate static var nativeWindow:NativeWindow;public function AirIcon(){} /**  * @param url 添加一个 图标链接  * @param nativeWindow 一个窗口引用   */ public static function addIcon(url:String,nativeWindow:NativeWindow):void {  AirIcon.nativeWindow=nativeWindow; var loader:Loader=new Loader();   loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadCompleteFun);   loader.load(new URLRequest(url)); nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGE, onMinWindowStateHandler);   }  private static function onLoadCompleteFun(event:Event):void   {   event.currentTarget.removeEventListener(Event.COMPLETE, onLoadCompleteFun);   iconImage=event.currentTarget.content.bitmapData;   if (NativeApplication.supportsSystemTrayIcon)   {   SystemTrayIcon(NativeApplication.nativeApplication.icon).addEventListener(MouseEvent.CLICK, onActiveWindow);   NativeApplication.nativeApplication.icon.bitmaps=[iconImage]; }   }    private  static function onMinWindowStateHandler(event:NativeWindowDisplayStateEvent):void   {   if(event.afterDisplayState==NativeWindowDisplayState.MINIMIZED)    { minWindow();    } }    private static function minWindow():void   {   nativeWindow.visible=false;  NativeApplication.nativeApplication.autoExit = false;  NativeApplication.nativeApplication.icon.bitmaps=[iconImage];  }    private static function onActiveWindow(event:MouseEvent):void   {   nativeWindow.restore();   nativeWindow.visible=true;      nativeWindow.orderToFront();  NativeApplication.nativeApplication.icon.bitmaps=[];  }  }}


这段时间经常做Air 的相关的小工具,大量的重复的代码有时候想懒惰一下,添加上这个快速添加图标的方法,同时还支持缩小和打开窗口的内容,算是一个比较简单的方法,做一些简单实验比较快速。

方法如下

AirIcon.addIcon("image/16x16.png",nativeWindow);





原创粉丝点击