FMS 学习(四) 远程共享对象

Jack FMS 学习 () 远程共享对象
By jackgun_at_126.com

            先提一下本地共享对象,其实就是一个数据文件。存在 C:\Documents and Settings\ 用户名 \Application Data\Macromedia\Flash Player\#SharedObjects 下面。

 看看帮助中的示例:

 示例

 下面的示例将用户输入的最后一个帧保存到本地共享对象 kookie

 // 获取 kookie,第一次运行的话就建立一个 kookie 的对象
so = sharedobject.getlocal("kookie");
// 获取 kookie 的用户并转到为此用户保存的帧编号。
if (so.data.user != undefined) {
  _root.user = so.data.user;
 
  this.gotoAndStop(so.data.frame);

}

 下面的代码块放置在每个 SWF 帧上。

 // 在每个帧上,调用 rememberme 函数保存帧编号。
function rememberme() {
  so.data.frame=this._currentFrame;
  so.data.user="John";
}

 还没懂的查一下 Flash 的帮助吧。SharedObject ,里面的各种方法什么的,其实就是怎样读写那个数据文件的方法。很简单的东西,不要被专业术语唬住了。

            远程共享对象跟本地共享对象一样,也是一个文件,不同的是放在远程主机罢了。

 看看这里:  

 

新建 fla ,舞台上放两个动态文本框: txt1 ,第一帧加入代码:  

 

var so:SharedObject;
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;
}

 开两个 swf 看看?怎么样,很简单吧。当其中一个客户端更新了远程共享象时,服务器就会向所有的客户端广播远程对象的onSync 事件。  

 

           还有一个用得比较多的方法: SharedObject.send() ,用于对所有客户端广播  

 

//广播,
on (release) {
 so.send( 'sink' , '我广播啦');
}
//接收
so. sink= function(str)
{
trace(str);
}

 还有其它的方法属性我就不多说了,网上很多教程。万事开头难,入门后其它的就容易了。   

 

    附上一个我写的五字棋对战的FLA点这里下载  
Bug 比较多,说实话我并不会五字棋的算法,写这个简单的东西只是为了实验远程共享对象。 :P




[本日志由 jack 于 2006-07-06 11:36 AM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: FMS 学习 远程共享对象
相关日志:
评论: 1 | 引用: 0 | 查看次数: -
回复回复qqqsubai[2006-09-22 05:27 PM | del]
今天总算把SharedObject弄明白了,以前看到就怕怕,
哈哈,romote SharedObject和local SharedObject用法是差不多的
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.