如图所示,
本教程利用flash的dataset和list组件,实现类似IE表单的自动记录功能。用到的方法主要有:
Dataset.loadFromSharedObj(对象名称, 本地路径);
Dataset. saveToSharedObj(对象名称, 本地路径);
Dataset.addSort();首先,将组件 Dataset,TextInput,List 拖到主场景上。分别取名my_DS, my_input , my_list。
然后,在关键祯上写AS代码如下:
import mx.data.components.datasetclasses.DataSetError;//导入Dataset错误处理
var inputID:String = "inputID04";
//在客户端缓存里的标识 类似Cookie的标识作用
function loadStr(ID) { //导入本地存储的数据,并写入List
my_DS.loadFromSharedObj(ID, "/");
var _length:Number = my_DS.items.length;
key = ID;
if (my_DS.length != 0) {
//对数据按照日期进行排序
if (!my_DS.hasSort(key)) {
my_DS.addSort(key, ["date"], DataSetIterator.Descending);
my_DS.useSort(key, DataSetIterator.Descending);
} else {
my_DS.useSort(key, DataSetIterator.Descending);
}
}
my_DS.last();
for (i=0; i<_length; i++) {//在List组件中显示出记录
this.my_list.addItem({label:my_DS.currentItem.Str});
my_DS.previous();
}
}
function setStr(ID) {
//存入Textinput的字符
my_DS.loadFromSharedObj(ID, "/");
var now:Date = new Date();
my_DS.addItem({Str:this.my_input.text, date:now.getTime()});
my_DS.saveToSharedObj(ID, "/");
}
function init(ID) {//初始化,导出存在本地的Dataset
try {
my_DS.loadFromSharedObj(ID, "/");
} catch (e:DataSetError) {
my_DS.saveToSharedObj(ID, "/");
}
loadStr(ID);
}
init(inputID);
var tiListener:Object = new Object();
tiListener.handleEvent = function(evt_obj:Object) {
if (evt_obj.type == "enter") {
//当用户按回车 则记录下输入的内容
setStr(inputID);
}
};
// 添加侦听器。
my_input.addEventListener("enter", tiListener);