• 2007-09-27

    fms聊天室

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://wxsr.blogbus.com/logs/10047581.html

     
     
    Posted:2007-03-05 21:59
     
     
    fms聊天室
     
    学了一个多礼拜fms~才做出个这么简单那的聊天室~~实在惭愧~~~~5555555


    现在分享下:
    客户端:
    /*
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////场景第一帧放一个id的输入文本;一个名btn的登陆按钮;场景外放一个mylist的list组件;
    //场景第2帧放一个mylist的list组件,一个input2的输入文本;一个sendtxt的输入按钮;一个Clear的按钮;还有一个Name的动态文本~
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    */

    第一帧:
    stop();
    ////////////////////////在线人数& 更新在线用户/////////////////
    menber = new Array ();
    menberlength = menber.length;
    temp_mb = new Array ();
    var client_nc = new NetConnection ();
    btn.onPress = function () {
     if (_root.id.text != "") {
      ID = _root.id.text;
      _root.ID_name = ID;
      id.text = "";
      pass_num = "123";
      client_nc.connect ("rtmp://localhost/8", ID, pass_num);
      users_so = SharedObject.getRemote ('users_so', client_nc.uri, false);
      users_so.connect (client_nc);
      //client_nc.call("msgfromclient", resObj, "第一个call");
      users_so.onSync = function (list) {
       _root.mylist.labels = users_so.data.users;
       menber = users_so.data.users;
       gotoAndStop (2);
      };
     }
    };
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    第二帧:
    this.createTextField("my_txt", this.getNextHighestDepth(), 10, 30, 320, 240);
    my_txt.border = true;
    my_txt.multiline = true;
    my_txt.wordWrap = true;
    my_txt.size = 16;
    Name.text = _root.ID_name;
    mync2 = new NetConnection();
    mync2.connect("rtmp://localhost/chva");
    mync2.call("Msg_T_client", null, ID);
    so = SharedObject.getRemote('users_so', mync2.uri, false);
    so.connect(mync2);
    so.onSync = function(list) {
     if (so.data.txt == undefined) {
     } else {
      _root.my_txt.text += so.data.txt;
      _root.my_txt.scroll++;
      so.data.txt = "";
     }
    };
    sendtxt.onPress = function() {
     so.data.txt = _root.ID_name+"说:"+input2.text+newline;
     input2.text = "";
    };
    mync2.handlderName = function(what) {
     if (what != _root.ID_name) {
      _root.my_txt.text += what+"-- 进来了"+newline;
      _root.my_txt.scroll++;
     }
    };
    Clear.onPress=function(){_root.my_txt.text = "";}

    ////////////////////////////////////////////////////////////////////////////////////////////////
    服务端:
    application建一个名为8的文件夹;
    里面的main文件内容如下:
    application.onAppStart = function() {
     this.users_so = SharedObject.get('users_so');
     this.Lists = [];
    };
    application.onConnect = function(newClient, id, pass_num) {
     trace(id+"进来了");
     application.acceptConnection(newClient);
     newClient.id = id;
     this.Lists.push(id);
     this.users_so.setProperty('users', this.Lists);
    };
    application.onDisconnect = function(newClient) {
     for (var i = 0; i<this.Lists.length; i++) {
      if (this.Lists[i] == newClient.id) {
       this.Lists.splice(i, 1);
      }
     }
     
     this.users_so.setProperty('users', this.Lists);
    };
    Client.prototype.Msg=function(msg){
     trace(msg)
     _root.txt.text=msg+newline
     
     }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    再在application下建一个名为chava的文件夹
    内容如下:
    application.onAppStart = function () {
     this.so = SharedObject.get ('so');
    };
    application.onConnect = function (client) {
     application.acceptConnection (client);
    };
    Client.prototype.Msg_T_client = function (what) {
     trace (what + "服务器呼叫成功");
     /*
     for(var i=0;i<application.clients.length;i++){
     trace(application.clients[i])
     application.clients[i].call("handlderName",null,what)
     }*/
    //注释部分可代替下一句;先呼叫服务端Msg_T_client 函数,再回调client端的handlderName函数;
     application.broadcastMsg ("handlderName", what);
     return;
    };
    ///////////////////////////////////////

    随机文章:

    连网5子棋 2007-09-27

    收藏到:Del.icio.us




发表评论

您将收到博主的回复邮件
记住我