ActionScript中使用自定义组件 Use CustomUI in Flex with ActionScript

Categories: Flex; Tagged with: ; @ October 18th, 2008 11:12

一: 需求

要求使用get ui获得一个UICompontent[DataGrid], 其中DataGrid某列的ItemEditor为ComboBox,且该UICompontent的右键菜单中有一个Item: 删除 [删除当前选定的行]
使用set value 来设定该UICompontent的dataProvider.[为了简单起见, 在测试时直接set一个ArrayCollection]

二: 分析

建议一个ItemEditor的类, 在该类中增加名为 get ui, 返回值为UICompontent, 属性为Public的函数, 在该类中新建DataGrid, 设置DataGrid的属性, 增加右键, return该DataGrid,完成任务

要点:

1:DataGrid设置ItemEditor为ComboBox
2:Air中使用右键

三: 代码实现[Set Value比较简单,故省略]

/**
	 * 在外界呼叫get ui时,返回一个UICompontent,该UICompontent包含以下内容:
	 * 右键: Restore
	 * 返回一个UICompontent[此处为DataGrid]
	 */ 
	public function get ui():UIComponent {
		if(_dataGrid != null) {
			return _dataGrid;
		}
		
		//新建一个DataGrid
	 	_dataGrid = new DataGrid();
	 	_dataGrid.editable = true;	

		//增加右键
		var menu:NativeMenu = new NativeMenu();
		var menuItemDelete:NativeMenuItem = new NativeMenuItem("Delete");
	        //监听事件,在右键选定Delete时运行该函数
		menuItemDelete.addEventListener(Event.SELECT, onMenuDeleteClicked);
		//将该menuItem加入到Menu中
		menu.addItem(menuItemDelete);

		_dataGrid.contextMenu = menu; //将菜单加入到DataGrid中

	 	columnLocale = new DataGridColumn();  //新建一个列
	 	columnLocale.dataField = "locale";
	 	//设定DataGrid中locale列的EditItem;
	 	comboBoxLocaleEditor = new ClassFactory(ComboBox); // DisabledComboBox);
	 	comboBoxLocaleEditor.properties = {dataProvider : LocalizationItem.localeArray} //设定该EditorItem的属性
	 	columnLocale.itemEditor = comboBoxLocaleEditor;


_dataGrid.showHeaders = false; //隐藏DataGrid的Header _dataGrid.columns = [columnLocale]; //这一个数组,如果有多列则以逗号隔开都放进去 _dataGrid.dataProvider = value; //设定DataGrid的dataProvider value为实际使用时Set的 return _dataGrid; }

四:抓图

image

[为了方便起见上面代码简略了一部分]

在Flex/AIR中使用Drag And Drop. Using Drag And Drop in Flex/AIR

Categories: Flex; Tagged with: ; @ September 29th, 2008 23:25

(more…)

AIR中使用SQLite新手入门

Categories: 垃圾山; Tagged with: ; @ September 28th, 2008 10:24

[小站博客均为原创, 转载请保留以下信息:

作者:http://liguoliang.com 欢迎访问:Adobe上海用户组: http://riashanghai.com ]

关于SQLite的介绍: http://www.ibm.com/developerworks/cn/opensource/os-sqlite/

1. 确定连接模式

首先要确定连接模式, 是asynchronous[异步], 还是synchronous[同步].

异步执行方式: 运行操作数据库的指令, 数据库在后台运行, 在操作结束或失败后会dispatch一个Event,由该Event激发后续代码继续运行.异步方式有一个明显的好处: 数据库的操作是在后台运行的, 而与此同时,你的主程序代码可同时运行. 更为重要的是, 你不能因为数据库操作没有结束而冻结用户窗口.

从概念上来讲, 使用同步方式要比异步方式简单一些, 因为同步方式的代码可以按照一个次序进行, 而异步方式主要通过EventListener.

同步执行方式: 除了异步执行方式之外, Adobe AIR 也支持同步方式, 但是对数据库的操作不在后台运行, 而是使用与主程序同一个线程.

(more…)

使用Air与SQLite开发NoteManagement

Categories: 垃圾山; Tagged with: ; @ September 27th, 2008 17:33

[小站博客均为原创, 转载请保留以下信息:

作者:http://liguoliang.com 欢迎访问:Adobe上海用户组: http://riashanghai.com ]

1. 设计目标:

png-0808

设计NoteManagement 的Air 版,使用SQLite数据,实现之前所有的功能,如:用户注册登录,目录及便条的增加删除修改等.[点此查看NoteManagement的WEB版].

2. 概要设计:

相对于前述WEB 版,Air 版的数据源已不再是ShareObject或XML,所以需要通过对数据库的存取进行操作.
另外,考虑到性能,对于Tree 进行Dynamic Loading, 以优化性能.

(more…)

Newer Posts



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.