如图所示,
本教程利用flash的dataset和list组件,实现类似IE表单的自动记录功能。用到的方法主要有:
Dataset.loadFromSharedObj(对象名称,本地路径);
Dataset.saveToSharedObj(对象名称,本地路径);
Dataset.addSort();
首先,将组件 Dataset,TextInput,List 拖到主场景上。分别取名my_DS, my_input , my_list。
然后,在关键祯上写AS代码如下:
importmx.data.components.datasetclasses.DataSetError;//导入Dataset错误处理
varinputID:String="inputID04";
//在客户端缓存里的标识类似Cookie的标识作用
functionloadStr(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();
}
}
functionsetStr(ID){
//存入Textinput的字符
my_DS.loadFromSharedObj(ID,"/");
varnow:Date=newDate();
my_DS.addItem({Str:this.my_input.text,date:now.getTime()});
my_DS.saveToSharedObj(ID,"/");
}
functioninit(ID){//初始化,导出存在本地的Dataset
try{
my_DS.loadFromSharedObj(ID,"/");
}catch(e:DataSetError){
my_DS.saveToSharedObj(ID,"/");
}
loadStr(ID);
}
init(inputID);
vartiListener:Object=newObject();
tiListener.handleEvent=function(evt_obj:Object){
if(evt_obj.type=="enter"){
//当用户按回车则记录下输入的内容
setStr(inputID);
}
};
//添加侦听器。
my_input.addEventListener("enter",tiListener);