在
Flash
中提供了下面的操作本地对象的方法:
SharedObject.clear()
删除本地共享对象
SharedObject.flush()
立即把共享对象数据写入本地文件
SharedObject.getLocal()
创建或连接本地共享对象
SharedObject.getSize()
取得本地共享对象的指定大小数据
Flex
中使用本地共享对象的方法本质上和在
Flash
中是相同。
基本的使用方法如下:
1.
//定义本地共享对象
2.
var
myLSO
:
SharedObject
;
3.
//创建本地共享对象
4.
myLSO
=
SharedObject
.
getLocal
(
'foo'
);
5.
//给共享对象赋值
6.
//可以保存的有数字、字符串、布尔型、XML、日期型、数组型和对象等数据类型
7.
currentUserName
=
'Liu21st'
;
8.
itemsArray
=
new
Array(
101
,
346
,
483
)
9.
currentUserIsAdmin
=
true
;
10.
myLSO
.
data
.
userName
=
currentUserName
;
11.
myLSO
.
data
.
itemNumbers
=
itemsArray
;
12.
myLSO
.
data
.
adminPrivileges
=
currentUserIsAdmin
;
13.
//共享对象的写入会在应用程序退出时候自动进行
14.
//如果需要强制写入,可以使用flush方法
15.
myLSO
.
flush
();
下面我们来看下在
Flex
中的一个简单的本地共享对象应用。用户点击按钮后立即把在文本输入框中的字符保存到本地共享对象中,第二次运行的时候就会在文本框中显示上次保存的数据
<
mx
:
Application
xmlns
:
mx
=
'http://www.macromedia.com/2003/mxml'
initialize
=
'initApp();'
>
2.
<
mx
:
Script
source
=
'LSO_script.as'
/>
3.
<
mx
:
TextInput
id
=
'myTI'
/>
4.
<
mx
:
Button
label
=
'Set
Value'
click
=
'setVal();'
/>
5.
</
mx
:
Application
>
LSO_script.as
文件代码如下:
1.
var
v
;
2.
var
myLSO
:
SharedObject
;
4.
function
initApp
()
{
5.
//
初始化本地共享对象
6.
myLSO
=
SharedObject
.
getLocal
(
'dataStorage'
);
7.
if
(
myLSO
==
null
)
{
8.
alert
(
'无法创建本地共享对象'
,
'Error'
);
9.
}
else
{
10.
getVal
();
11.
}
12.
}
13.
14.
function
getVal
()
{
15.
//
取得共享对象数据
16.
v
=
myLSO
.
data
.
val
;
17.
myTI
.
text
=
v
;
18.
}
19.
20.
function
setVal
()
{
21.
//
保存共享对象数据
22.
v
=
myTI
.
text
;
23.
myLSO
.
data
.
val
=
v
;
24.
myLSO
.
flush
();
25.
}
复杂的应用可以保存数组对象到本地共享对象
1.
<
mx
:
Application
xmlns
:
mx
=
'http://www.macromedia.com/2003/mxml'
initialize
=
'initApp();'
>
2.
<
mx
:
Script
source
=
'LSO2_script.as'
/>
3.
<
mx
:
VBox
backgroundColor
=
'white'
borderStyle
=
'solid'
marginLeft
=
'10'
marginBottom
=
'10'
width
=
'150'
>
4.
<
mx
:
Label
text
=
'Color'
/>
5.
<
mx
:
TextInput
id
=
'myColor'
width
=
'100'
/>
6.
<
mx
:
Label
text
=
'Scent'
/>
7.
<
mx
:
TextInput
id
=
'myScent'
width
=
'100'
/>
8.
<
mx
:
Label
text
=
'Height'
/>
9.
<
mx
:
TextInput
id
=
'myHeight'
width
=
'30'
/>
10.
<
mx
:
Label
text
=
'Last
SetVal
On'
/>
11.
<
mx
:
TextArea
id
=
'myLastDate'
width
=
'100'
height
=
'75'
/>
12.
</
mx
:
VBox
>
13.
<
mx
:
Button
label
=
'Set
Values'
click
=
'setVal();'
/>
14.
</
mx
:
Application
>
1.
var
myArray
:Array;
2.
var
myLSO
:
SharedObject
;
4.
function
initApp
()
{
5.
//
初始化本地共享对象
6.
myLSO
=
SharedObject
.
getLocal
(
'flowerValues'
);
7.
if
(
myLSO
==
null
)
{
8.
alert
(
'无法创建本地共享对象'
,
'Error'
);
9.
}
else
{
10.
getVal
();
11.
}
12.
}
13.
14.
function
getVal
()
{
15.
//
取得共享对象的值
16.
myArray
=
myLSO
.
data
.
flowerArray
;
18.
myColor
.
text
=
myArray
[
0
];
19.
myScent
.
text
=
myArray
[
1
];
20.
myHeight
.
text
=
myArray
[
2
];
21.
22.
myLastDate
.
text
=
myLSO
.
data
.
date
;
23.
}
24.
25.
function
setVal
()
{
26.
//保存共享对象
27.
myArray
[
0
]
=
myColor
.
text
;
28.
myArray
[
1
]
=
myScent
.
text
;
29.
myArray
[
2
]
=
myHeight
.
text
;
30.
31.
myLSO
.
data
.
flowerArray
=
myArray
;
32.
myLSO
.
data
.
date
=
new
Date
();
33.
myLSO
.
flush
();
34.
}
posted on 2007-01-12 13:52
☜♥☞MengChuChen 阅读(514)
评论(0) 编辑 收藏 所属分类:
flex2.0