1:什么是Action
在一标准程序中,菜单栏,工具条,右键菜单,都是必不可少的。一般来说
工具栏提供的功能按钮都能在菜单栏中找到对应的菜单项与之对应。
比如工具栏上有一退出按钮,在菜单栏上也有一退出菜单与之对应。他们的
功能一样只是位置不同罢了。所以我们在这里抽象出一个表示退出动作的
Action,该Action包含描述该Action的属性如:text表示该Action的名称;
imageUrl表示该Action的现实图标。每个Action都有一字符串类型的
actionId属性作为该Action的唯一标示以便区别于其他的Action对象。
2:怎样通过Action构造程序的全局菜单栏,工具条。
在构造程序的全局菜单工具条时,首先将action对象添加到CActionManager
全局Action管理器中,然后将该action的actionId属性值添加到菜单栏与工具栏
对象中就可以了。首先我们定义两个Action对象,并将它们添加到CActionManager
全局Action管理器中,代码如下:
//保存当前文件的Action对象 var actionSave:CAction= new CAction("file_save","保存文件","/icons/save.gif","保存当前文件"); //打开编辑器的Action对象 var actionOpenEdit:CAction= new CAction("file_open","打开编辑器","/icons/open.gif","打开编辑器"); //将以上两个action添加到CActionManager中 CActionManager.Instance.addAction(actionSave); CActionManager.Instance.addAction(actionOpenEdit); //添加对应Action的监听器,当Action动作触发时调用 CActionManager.Instance. addListener(actionSave.actionId,function (evt:CActionEvent):void{ Alert.show("文件保存Action被触发"); },this); CActionManager.Instance. addListener(actionOpenEdit.actionId,function (evt:CActionEvent):void{ Alert.show("编辑器打开Action被触发"); },this);
2.1:构造全局菜单栏
//CMenuRelation代表菜单栏上的一个菜单 //添加文件菜单 var menuFile:CMenuRelation=new CMenuRelation("文件"); //添加该菜单下的具体菜单项,具体为对应action对象的actionId属性值 menuFile.actions=[actionSave.actionId]; //添加编辑菜单 var menuEdit:CMenuRelation=new CMenuRelation("编辑"); menuEdit.actions=[actionOpenEdit.actionId]; //构造菜单数组 var menus:Array=[menuFile,menuEdit]; //将菜单数组传递给CAppMenuBarManager,以构造菜单 CAppMenuBarManager.Instance.initMenuBar(menus);
2.2:构造全局工具条
//获得全局工具栏管理器对象 var toolBarManager:CAppToolBarManager=CAppToolBarManager.Instance; //添加对应的action toolBarManager.insertItem(actionSave.actionId); toolBarManager.insertItem(actionOpenEdit.actionId);