AIR: NativeMenu Separator, 菜单分割线

菜单中的分割线: 通过将 NativeMenuItem 构造函数中的 isSeparator 属性设置为 true 创建一条分隔线。

_menu = new NativeMenu();
_menuAddTopOU = new NativeMenuItem(RM.getString(BUNDLE_OUSETUP, “ous.menu.addTopOU”));
_menuAdd = new NativeMenuItem();
_menuEdit = new NativeMenuItem();
_menuRemove = new NativeMenuItem();
_separator = new NativeMenuItem(null, true); //分割线

_menu.addItem(_menuAddTopOU);
_menu.addItem(_separator);
_menu.addItem(_menuAdd);
_menu.addItem(_menuEdit);
_menu.addItem(_menuRemove);
_menu.addEventListener(ContextMenuEvent.MENU_SELECT, onMenuSelected);
_menu.addEventListener(Event.SELECT, onMenuItemSelected);
_treeOUs.contextMenu = _menu;

在线安装AIR 及 Error# 2032错误解决方法

找到...\sdks\3.2.0\samples的badge目录,修改default_badge.html文件:

AC_FL_RunContent(
‘codebase’,'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab’,
‘width’,'217′,
‘height’,'180′,
‘id’,'badge’,
‘align’,'middle’,
’src’,'badge’,
‘quality’,'high’,
‘bgcolor’,'#FFFFFF’,
‘name’,'badge’,
‘allowscriptaccess’,'all’,
‘pluginspage’,'http://www.macromedia.com/go/getflashplayer’,
‘flashvars’,'appname=My%20Application&appurl=myapp.air&airversion=1.0&imageurl=test.jpg’,
‘movie’,'badge’ ); //end AC code

}

注意上面的appurl, 不要搞错. 发布该网页, OK.

如果出现

将路径补充完整或修改.htaccess文件都可 最简单的:

‘flashvars’,’appname=NM&appurl=http://liguoliang.com/test/NM.air&airversion=1.0&imageurl=test.jpg’,

搞定.

Look: http://liguoliang.com/test/default_badge.html

AIR文档中相关内容 >>点此<<

AIR中通过右键直接选定基于LIST容器[DataGrid, List, Tree等]的数据 – Select List item with mouse right-click

在很多情况下, 我们在DataGrid, List, Tree等容器中使用右键, 进行如修改, 删除 某行的操作. 问题是如果该容器初始状态下直接进行右键点击时, 并不能选定任何数据. 通过监听右键菜单SELECT事件, 获取到当前右键所击位置的Index, 并将之赋值给DataGrid或其他容器的SelectIndex, [...]

AIR中使用:程序菜单,上下文菜单,右键菜单

与窗口一样, 在一个AIR应用中, 菜单也是不可或缺的.

虽然在AIR中菜单有多种实现方式, 但是所有的Menu都是相同的,只是其实现方式不同而已,因此, 我们建立一个菜单, 使用不同的方式实现:

var menuFile:NativeMenu = new NativeMenu();
//如果需要在选择save时进行处理,则监听Event.SELECT事件, 如:save.addEventListener
var save:NativeMenuItem = new NativeMenuItem("Save");
var close:NativeMenuItem = new NativeMenuItem("Close");
menuFile.items = [save, close];
1. Window Menus [Windows平台下]

在苹果里叫做application menus, 不过本质都是相同的NativeMenu. 没有苹果机, 只说说Windows下的Window Menus. 当然也可以检查系统是否支持NativeMenu,或是application menus, 如:
if(NativeWindow.supportsMenu) ;

注意: 如果要在窗口中使用Window Menus , 他的配置文件或属性中systemChrome必须设置为"standard",否则将在编译时发生错误.

Window Menus的实现:

if(NativeWindow.supportsMenu) { //检测是否支持Window menu
var mainMenu:NativeMenu = new [...]

AIR中关闭所有打开的窗口

在AIR工程中, 如果新建某个窗口, 当关闭主窗口时, 新窗口并不随着主窗口的关闭而关闭, 但是在很多情况下. 我们需要在主窗口关闭时, 所有的子窗口都一起关闭.

为了达到这个效果, 我们监听主窗口的Event.CLOSING事件, 当用户点击主窗口关闭按钮或是单击任务栏右键时, 我们采取一定措施, 关闭所有窗口.

在AIR中,openedWindows是一个包括了所有当前打开的窗口滴数组. 因此遍历该数组,将所有元素都关闭便可达到目的.

故Event.CLOSING的监听函数可以这么写:

/**主窗口点击关闭时,关闭所有打开的窗口*/
private function onMainWindowClose(e:Event):void {
var wds:Array = NativeApplication.nativeApplication.openedWindows;
for (var i:int = 0; i