-
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;
};
///////////////////////////////////////随机文章:
2.0 fms A星寻路 2008-02-04flash交互整理 2007-09-27连网数据同步 2007-09-27组合键盘的连招类 2007-09-27连网5子棋 2007-09-27
收藏到:Del.icio.us





