17.4.从共享对象中读取数据

17.4.1. 问题
我想要从磁盘上读取一个共享对象或者检测一个共享对象是否已经被创建。
17.4.2. 解决办法
使用一个SharedObject 实例的data 属性来检查数据或者其他人以变量属性是否可用。
17.4.3. 讨论
ShardObject.getLocal() 方法用来访问你的应用程序存贮在用户硬盘上的本地共享对象。如果调用了getLocal()方法的时候共享对象还不存在,默认会创建一个新的SOL 文件。为了读取会话中新创建本地共享对象中存贮的数据,你必须首先呼叫flush()方法来写入数据到文件。

很长时间内(用户允许Flash player 浏览器插件的设定时间长)都可以通过data 属性来访问共享对象中预先存储的数据。

如下的范例,在某个值在data 对象不可用或者共享对象不存在的时候,写入数据到一个动态的someData1 属性。在呼叫flush()方法之后,数据会被核实。如果someData1 属性的某个值已经可用,那这个操作就是简单读操作。
+展开
-XML
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxmllayout="absolute">
<mx:Script>
<![CDATA[
private var lso : SharedObject;
private function readSharedObject() : void
{
var sampleData1 : String = "data1";
lso = SharedObject.getLocal( "mylso" );
if ( lso.data.someData1 == undefined ) {
lso.data.someData1 = sampleData1;
lso.flush();
status.text += "lso data after assignment: " + lso.data.someData1 + "\n\n";
else {
status.text += "lso already written to: " + lso.data.someData1 + "\n";
}
}

]]>
</mx:Script>
<mx:VBox width="100%height="100%">
<mx:Button label="read a shared objectclick="{ readSharedObject() }" />
<mx:TextArea id="statuswidth="100%height="100%" />
</mx:VBox>
</mx:Application>

加支付宝好友偷能量挖...


评论(0)网络
阅读(84)喜欢(0)flash/flex/fcs/AIR