|
学了这么多,智商跟我差不多的,概念应该都搞混了 学了就要用。练练吧,做个在线列表,这次没有用ShareObject而是把用户名都装到一个application.onlineList数组里 通过遍历application.clients来广播给各个client,上线下线就是对onlinelist数组的处理。看看吧
onlinelist.rar Client:
btn.onRelease = function() { if (_root.id.text != "") { _root.init(); } }; function init() { IDNUM = _root.id.text; //这个为登陆名 //IDPASS = "456"; mync = new NetConnection(); mync.onStatus = function(info) { trace(info.code); }; mync.connect("rtmp://localhost/phone", IDNUM, IDPASS); mync.onlineList = function(list) { //填充List组件 mylist.labels = list; }; } server端
application.onAppStart=function(){ trace("------onAppStart----") this.onlineList=[] } application.onConnect=function(newClient,IDNUM,IDPASS){ trace("------user onconnected------") newClient.IDNUM=IDNUM //newClient.IDPASS=IDPASS //处理在线数组(push) this.onlineList.push(IDNUM) this.acceptConnection(newClient); //广播给client for(var i=0;i<this.clients.length;i++){ this.clients[i].call("onlineList",null,this.onlineList) } } application.onDisconnect = function (newClient){
trace("------user disconnected------"); //处理在线数组(splice) for(var i=0;i<=this.clients.length;i++){ if(this.onlineList[i]==newClient.IDNUM){ this.onlineList.splice(i,1) } } //广播 for(var i=0;i<this.clients.length;i++){ this.clients[i].call("onlineList",null,this.onlineList) } };
|