Flex中的SharedObject对象可以实现web开发中的Cookie的功能,本例用到以下方法:
1.SharedObject.getLocal() 创建或连接本地共享对象;
2.SharedObject.flush() 立即把共享对象数据写入本地文件;
3.SharedObject.clear() 方法用于删除本地共享对象; 闲话不多说,看代码:(讲解都在代码的注释中)
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()" layout="absolute">
- <mx:Script>
- <![CDATA[
- import flash.net.SharedObject;
- import mx.controls.Alert;
- //声明一个SharedObject对象
- var so:SharedObject;
- public function initApp():void
- {
- //创建一个SharedObject对象(如果该对象存在,则直接获取),后面的“so_name”是自己起的名字,将来该对象会以so_name.sol文件的形式存在电脑中
- so=SharedObject.getLocal("so_loginInfo");
- //如果创建的SharedObject对象为null,说明没有创建成功
- if(null==so)
- {
- Alert.show("目前还没有SharedObject对象存在!","error");
- }else
- {
- //从SharedObject对象中取出事先存入的信息,然后写到文本框中(最初的时候,so对象中没有值,所以文本框中什么也不显示。)
- txt_username.text=so.data.username;
- txt_password.text=so.data.password;
- }
- }
- //save按钮的click事件(单击save按钮以后,可以刷新或重新打开浏览器看看效果)
- public function saveHandler():void
- {
- //将文本框中的文本保存到SharedObject对象中。"so.data."后面的名字可以自己随便起,只要存和取用的名字一致就行
- so.data.username=txt_username.text;
- so.data.password=txt_password.text;
- //立即把共享对象数据写入本地文件
- so.flush();
- }
- //删除共享对象(单击“删除共享对象”按钮以后,可以刷新或重新打开浏览器看看效果)
- public function deleteSO():void
- {
- if(so!=null)
- {
- so.clear();
- }
- }
- ]]>
- </mx:Script>
- <mx:Label x="25" y="77" text="Username:" width="138" fontSize="21"/>
- <mx:TextInput id="txt_username" x="152" y="75" fontSize="21" width="239" height="45"/>
- <mx:Label x="25" y="138" text="Password:" fontSize="21"/>
- <mx:TextInput x="152" y="138" width="239" height="41" fontSize="21" id="txt_password"/>
- <mx:Button x="129" y="208" label="Save" click="saveHandler()" width="145" height="36"/>
- <mx:Button x="299" y="222" label="删除共享对象" click="deleteSO()"/>
- </mx:Application>