<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" >
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.CloseEvent;
private var dockImage:BitmapData;
public function initApplication():void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, prepareForSystray);
loader.load(new URLRequest("assets/ok.png"));
this.addEventListener(Event.CLOSING, closingApplication);
}
private function closingApplication(evt:Event):void {
evt.preventDefault();
Alert.yesLabel = "Close";
Alert.noLabel = "Minimize";
Alert.show("Close or minimize?", "Close?", 3, this, alertCloseHandler);
}
private function alertCloseHandler(event:CloseEvent):void {
if (event.detail==Alert.YES) {
closeApp(event);
} else {
dock();
}
}
public function prepareForSystray(event:Event):void {
dockImage = event.target.content.bitmapData;
if (NativeApplication.supportsSystemTrayIcon){
setSystemTrayProperties();
SystemTrayIcon(NativeApplication.nativeApplication .icon).menu = createSystrayRootMenu();
}
}
private function createSystrayRootMenu():NativeMenu{
var menu:NativeMenu = new NativeMenu();
var openNativeMenuItem:NativeMenuItem = new NativeMenuItem("Open");
var exitNativeMenuItem:NativeMenuItem = new NativeMenuItem("Exit");
openNativeMenuItem.addEventListener(Event.SELECT, undock);
exitNativeMenuItem.addEventListener(Event.SELECT, closeApp);
menu.addItem(openNativeMenuItem);
menu.addItem(new NativeMenuItem("",true));
menu.addItem(exitNativeMenuItem);
return menu;
}
private function setSystemTrayProperties():void{
SystemTrayIcon(NativeApplication.nativeApplication .icon).tooltip = "Systray test application";
SystemTrayIcon(NativeApplication.nativeApplication .icon).addEventListener(MouseEvent.CLICK, undock);
stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, nwMinimized); //Catch the minimize event
}
private function nwMinimized(displayStateEvent:NativeWindowDisplayStateEvent):void {
if(displayStateEvent.afterDisplayState == NativeWindowDisplayState.MINIMIZED) {
displayStateEvent.preventDefault();
dock();
}
}
public function dock():void {
stage.nativeWindow.visible = false;
NativeApplication.nativeApplication .icon.bitmaps = [dockImage];
}
public function undock(evt:Event):void {
stage.nativeWindow.visible = true;
stage.nativeWindow.orderToFront();
NativeApplication.nativeApplication .icon.bitmaps = [];
}
private function closeApp(evt:Event):void {
stage.nativeWindow.close();
NativeApplication.nativeApplication .icon.bitmaps = []; //clean this icon
}
]]>
</fx:Script>
<s:Button click="closingApplication(event);" creationComplete="initApplication()"/>
</s:WindowedApplication>
分享到:
相关推荐
该压缩包内swc文件能确保好用,都是自己一直在用的。里面包括:amChartsFB3、FB4、FB4破解版、还有一个网上下载的使用文档。做Flex的感觉人挺少,资源不太好收集。
自己实际工程中整理的RKC温控器资料:FB400 FB900 FB100 FB700 FB500 中文使用说明书,FB400 FB900 FB100 FB700 FB500 详细通讯手册,分享一下,共同进步
包含的35个FB程序例子涵盖了多种实际应用场景,如运动控制、顺序控制、模拟量处理等,通过学习这些实例,可以深入理解FB在不同场景下的使用方法和设计原则。 6. 应用场景: - 运动控制:如伺服电机、步进电机的...
使用fptw工具备份出来的BIOS,可以用来救砖。使用方法:WIN+X+A调出命令提示符(管理员),输入cd /d bios所在路径,然后输入fptw -d biosbackup.bin备份当前的bios,备份的bios最好拷贝到u盘备用,然后输入fptw -f ...
FB2000,全名Foobar2000,是一款广受好评的音频播放软件,因其出色的音质表现和高度的自定义性而在音乐爱好者和专业人士中享有极高的声誉。这款软件的主要特点包括对各种音频格式的强大支持、低资源占用、以及高度可...
常用的算法有TransE、DistMult、ComplEx、RotatE等,它们通过最小化或最大化三元组的损失函数来优化这些向量表示。 在关系抽取任务中,FB15K数据集可以帮助模型学习如何从文本中识别并提取实体之间的关系。这涉及到...
在Android系统中,fb0(Framebuffer)是操作系统用于图形输出的一种设备驱动,它是一个内存区域,存储了屏幕上的每一个像素的颜色值。fb0的操作对于实现屏幕截图和图像处理功能至关重要。本文将深入探讨如何通过操作...
PID _FB41_FB42_FB43.zip西门子PLC编程实例程序源码下载PID _FB41_FB42_FB43.zip西门子PLC编程实例程序源码下载PID _FB41_FB42_FB43.zip西门子PLC编程实例程序源码下载PID _FB41_FB42_FB43.zip西门子PLC编程实例程序...
在自动化控制系统中,PID(比例-积分-微分)控制器是一种广泛应用的算法,用于调整系统的输出以达到期望的设定值。在西门子的Step7编程环境中,SFB41/FB41、SFB42/FB42以及SFB43/FB43功能块提供了集成的PID控制功能...
3. FB的局部变量和存储区:了解FB内部如何使用局部变量和不同存储区,以及它们在多任务环境下的工作原理。 4. 交互与通信:可能包含与HMI(人机界面)、其他PLC或设备进行通信的FB例子,展示如何实现数据交换。 5. ...
4. **结构化编程**:了解如何通过FB实现结构化编程,使程序更具有层次感和可维护性,如使用结构块(STRUCTURE)和循环结构(FOR/FOR NEXT)。 5. **FB的调试与测试**:学习如何对创建的FB进行调试,确保其在实际...
2. **设备文件**:在Linux中,设备通常以文件的形式存在于`/dev`目录下,如`/dev/fb0`。程序可以像操作普通文件一样与这些设备进行交互。 3. **Linux内核驱动**:`/dev/fb0`的存在得益于Linux内核的帧缓冲驱动,它...
FB4 INUMERIK 840D 双通道 NC程序 (论文)
它包含了大量的结构化信息,如人物、地点、事件等,并用三元组(subject-predicate-object)的形式表示这些实体之间的关系。例如,(Barack Obama, born in, Hawaii)。Freebase的数据被广泛用于知识图谱的研究和应用...
功能块(FB)是结构化编程的一部分,它允许程序员将复杂的逻辑或重复使用的代码封装在一个独立的模块中,便于管理和维护。在三菱PLC中,FB块通常用于实现特定的功能,如PID控制、计数、定时器等,它们可以被多次调用...
三菱PLC功能块(FB)编程是工业自动化领域中一种高效、模块化的编程方式,尤其在复杂的控制系统设计中,FBs扮演着至关重要的角色。本文将深入探讨三菱PLC的功能块编程,包括其概念、优势以及如何在实际应用中进行...
4. **提高效率**:对于复杂的控制流程,使用FB可以快速构建系统,缩短项目开发周期。 在压缩包文件"fb_library"中,可能包含的是一系列预先编写好的FB模板或示例,用户可以导入到GX Works2工程中,根据需求进行选择...