FMS 学习(四) 远程共享对象
作者:jack 日期:2006-07-05
Jack 的 FMS 学习 (四) 远程共享对象 先提一下本地共享对象,其实就是一个数据文件。存在 C:\Documents and Settings\ 用户名 \Application Data\Macromedia\Flash Player\#SharedObjects 下面。
看看帮助中的示例:
示例
下面的示例将用户输入的最后一个帧保存到本地共享对象 // 获取 kookie,第一次运行的话就建立一个 kookie 的对象 下面的代码块放置在每个 SWF 帧上。
// 在每个帧上,调用 rememberme 函数保存帧编号。 还没懂的查一下 Flash 的帮助吧。SharedObject 类,里面的各种方法什么的,其实就是怎样读写那个数据文件的方法。很简单的东西,不要被专业术语唬住了。
远程共享对象跟本地共享对象一样,也是一个文件,不同的是放在远程主机罢了。
看看这里:
By jackgun_at_126.com
kookie。
so = sharedobject.getlocal("kookie");
// 获取 kookie 的用户并转到为此用户保存的帧编号。
if (so.data.user != undefined) {
_root.user = so.data.user;
this.gotoAndStop(so.data.frame);
}
function rememberme() {
so.data.frame=this._currentFrame;
so.data.user="John";
}
新建 fla ,舞台上放两个动态文本框: txt1 ,第一帧加入代码:
var so:SharedObject; 开两个 swf 看看?怎么样,很简单吧。当其中一个客户端更新了远程共享象时,服务器就会向所有的客户端广播远程对象的onSync 事件。
var client_nc = new NetConnection();
client_nc.onStatus = function(info) {
if (info.code == 'NetConnection.Connect.Success') { //如果连接成功
so = SharedObject.getRemote('sofile', client_nc.uri, true); // sofile 为远程对象名
so.connect(client_nc);
// onSync 事件,当远程共享上的数据发生变化时触发,记住这个 function 要放在这里,如果你以前看过别的教程,但就没做成功,查下这里吧。大师们总爱留一手 :)
so.onSync = function() {
if (so.data.n1 != undefined) {
_root.txt1.text = “鼠标点击: x=”+so.data.n1+”; y=”+ so.data.n2;
}
};
}
};
client_nc.connect('rtmp:/jack');
//下面,当鼠标点击时,将数据保存到共享对象
this.onMouseDown=function(){
so.data.n1 = this._x;
so.data.n2 = this._y;
}
还有一个用得比较多的方法: SharedObject.send() ,用于对所有客户端广播
//广播, 还有其它的方法属性我就不多说了,网上很多教程。万事开头难,入门后其它的就容易了。
on (release) {
so.send( 'sink' , '我广播啦');
}
//接收
so. sink= function(str)
{
trace(str);
}
附上一个我写的五字棋对战的FLA:点这里下载
Bug 比较多,说实话我并不会五字棋的算法,写这个简单的东西只是为了实验远程共享对象。 :P
上一篇
下一篇

文章来自:
Tags:
哈哈,romote SharedObject和local SharedObject用法是差不多的