[table][tr][td]可用性
Flash Player 6
可用性Flash Media Server MX(不是必需的)
Flash Player 6
Flash Media Server MX(不是必需的)
用法
myLocalOrRemote_so.flush([minimumDiskSpace])
参数
minimumDiskSpace一个可选整数,指定必须为此对象分配的字节数。默认值为。
返回如果用户允许此域中的对象进行本地信息存储,并且所分配的空间量足够存储该对象,则此方法
返回true。(如果你
一个布尔值,已为minimumDiskSpace传递了一个值,则为了能够返回true,分配的空间量必须至少等于
这个值)。
如果用户允许此域中的对象进行本地信息存储,但所分配的空间量不足以存储该对象,则此方法
返回"pending"。
如果用户已永久拒绝此域中的对象进行本地信息存储,或者如果Flash出于任何原因无法保存对象,
则此方法返回
false。
描述
方法。将本地永久共享对象立即写入本地文件。如果你不使用此方法,则Flash会在共享对象会话结束
时-也就是说,在
SWF文件关闭时、在共享对象不再具有引用而被作为垃圾回收时,或者在您调用SharedObject.close()时-将
共享对象写入文件。
如果此方法返回"pending",则Flash Player将显示对话框要求用户增加磁盘空间量以供此域中的对象使
用。若要允许将来保
存共享对象时其空间能够“增长”,从而避免返回值"pending",请为minimumDiskSpace传递一个值。当Flash
尝试写入文件时,
它会查找传递到minimumDiskSpace的字节数,而不是查找以共享对象的当前大小保存该对象刚刚够用的空
间。
例如,如果预期共享对象增长到最大大小字节,则即使它开始时要小得多,也为minimumDiskSpace传
递。如果Flash
要求用户为该共享对象分配磁盘空间,它将要求字节。在用户分配了请求的空间量之后,当以后尝试刷新
该对象时(只要其
大小不超过字节),Flash将无需要求更多的空间。
在用户响应该对话框之后,此方法将被再次调用并返回true或false;另外,将用SharedObject.Flush.Success
或
SharedObject.Flush.Failed例子 的code属性调用SharedObject.onStatus。
下面的函数获取共享对象my_so,并用用户提供的设置填充可写属性。最后,调用flush()以保存设置并
分配最少字节的
磁盘空间。
this.SyncSettingsCore = function(soname, override, settings){
var my_so:SharedObject = SharedObject.getLocal(soname, "http://www.mydomain.com/app/sys");
//设置列表索引
var i;
var i;
对设置中每一个指定的值:
//对设置中每一个指定的值:
//如果override是true,则把永久设置设置为提供的值。
//如果override是false,则获取永久设置,除非没有永久设置,
//在这种情况下,将其设置为所提供的值。
for (i in settings) {
if (override || (my_so.data == null)) {
my_so.data= settings;
} else {
settings= my_so.data;
}
}
my_so.flush(1000);
}
对于一个远端共享对象而言,在客户机端ActionScript文件中调用SharedObject.flush()仅会刷新客户机上
的对象,而不会刷新
服务器上的对象。下面的例子展示了一个服务器端脚本是如何能够刷新服务器上的一个远端共享对象的。
//这是一个SERVER-SIDE脚本,而不是ActionScript
//当应用程序被装载时得到这个共享对象。
application.onAppStart = function(){
application.my_so = SharedObject.get("SharedObjName", true);
}
//当一个用户断开连接时,刷新这个共享对象。
application.onDisconnect = function(client){
application.my_so.flush();
}
//你也可以设置一个定时器以周期性的刷新位于服务器硬盘上的共享对象
// onto the hard disk on the server
application.onAppStart = function(){
application.my_so = SharedObject.get("SharedObjName", true);
setInterval(function() { application.my_so.flush(); }, 60000);
} |