现在的位置: 首页 > 综合 > 正文

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

2013年12月17日 ⁄ 综合 ⁄ 共 2072字 ⁄ 字号 评论关闭
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:BitmapData
		private 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);



抱歉!评论已关闭.