flashcom聊天对话怎样实现踢人动作

王朝other·作者佚名  2006-11-24
宽屏版  字体: |||超大  

建立会议的时候有两种模式, 发言模式 和 论坛模式

发言模式是指,只有一个人可以发言,由主持人控制。其他人可以向主持人申请发言。

论坛模式是指,所有人都可以自由发言,但主持人可以控制,禁止发言。

主持人可以把非会议参加人请出会议室。

一般用户可以除了主持人屏蔽任何用户的发言(声音和文字),屏蔽视频图像

实现:

判断会议模式

为发言模式时,

shareobjects.send("stopPhone",null); //在所有客户端执行stopPhone,禁用所有用户的Mic。

为论坛模式

shareobjects.send("activePhone",null); //在所有客户端执行stopPhone,启用用所有用户的Mic。

当主持人在参加会议人员的列表上,选中用户时,右键弹出操作菜单,请出会议室 | 给麦克风(会议模式)/(禁止发言,论坛模式)

请出会议室:

function kickout()

{

nc.call("SendAction",null,"/kick "+selectusername); //调用服务端函数SendAction

}

给麦克风:

function GivePhone (){

//选出 //GivePhone的对象和当前用户一致,则给麦克风否则不给

//选中的用户等于当前用户

if(_root.peoplelist_mc.people_lb.selectedItem.data.userName==user.userName)

{

_root.users_so.send("activePhone",null,user.userName);

}

else

{

_root.users_so.send("stopPhone",null,user.userName);

}

}

this.users_so.stopPhone=function(username)

{

trace("管理员把话筒移交给"+username);

}

this.users_so.activePhone=function(username)

{

trace("管理员把话筒移交给你");

}

服务端函数SendAction

FCPeopleList.prototype.SendAction = function(client,mesg) {

var cglobal = this.getClientGlobalStorage(client);

//语法格式 SendAction("/kick username")

if (mesg.substr(0,5) == "/kick") {

trace("kick called!");

var usernameToKick = mesg.substr(mesg.indexOf(" ")+1);

for (var i=0; i<application.clients.length; i++) {

if (application.clients.user.userName == usernameToKick) {

trace("disconnecting "+application.clients.user);

//在屏幕上显示某人被请出会议室,原因是...

var clocal = this.getClientGlobalStorage(application.clients);

application.disconnect(application.clients);

this.users_so.setProperty(clocal.id, null);

this.releaseLocalStorage(application.clients);

//把此用户从系列相关的东西中干掉

break;

}

}

return;

}

/*

//在管理员的SWF那边搞个

TiRen = function(USERNAME){

CONN = new NetConnection();

CONN.Call("TR",null,USERNAME);

}

//服务器端main.asc在

application.OnConnect = function(newclient){

newclient.TR = function(USERNAME){

application.disconnect( SELECTClient(USERNAME) );

}

}

//根据USERNAME找到client对象

SELECTClient(USERNAME){

return Client对象;

}

//============

//这样的话,你只要在客户端想踢谁就踢谁了。

只要调用一下TiRen(被提的人的USERNAME)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有