5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:北京
性别:先生
最后登录:2014-08-29
http://veteran.5d.cn/
www.toswf.com
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2004/12/18 | Broadcast、Feedback、Private Call
类别(FlashMedia)
|
评论
(0)
|
阅读(304)
|
发表于 09:55
摘自[http://luar.com.hk ]
利用FlashCom制作任何多人连线的应用时,明白Broadcast、Feedback、Private Call三种概念的分别,便可以清楚知道何时需要应用那一种情况,与及应该如何编程。
Broadcast
Broadcast是向所有人广播,假设Client边有5个人连线,5个人都可以收到这个讯息,这个讯息可以是由Server向5个人发出;或是是其中一个人,通过Server向5个人发出。要做到广播,主要利用Server边的SharedObject.send()。
例如∶
Client边发送∶
NetConnection.call("msgFromClient", null, msg);
Server边∶
NetConnection.msgFromClient = function(msg) {
application.SharedObject.send("msgFromSrvr", msg);
};
Client边接收∶
SharedObject.msgFromSrvr = function(msg) { ... };
Feedback
Feedback指Server向自己发出讯息,例如自已利用NetConnection.call()呼叫Server边的Function,Server边又用NetConnection.call()呼叫Client边的Function作出回应,留意Server边这个NetConnection.call()只可以Client自已收到,别的Client是收不到。
例如∶
Client边发送∶
NetConnection.call("msgFromClient", null, msg);
Server边∶
NetConnection.msgFromClient = function(msg){
Client.call("msgFromSrvr", false, msg);
};
Client边接收∶
NetConnection.msgFromSrvr = function(msg) { ... };
Private Call
应用Chat Room的情形,就是私下交谈,Client边有5个人(A-E),A有些说话只想对E说,别的人不会收到,这就是Private Call的概念。FlashCom没有直接ActionScript可以做到,利用一个较迂回方法去做。首先Server边有一个Object叫Client,当每一个Client边连线成功後,Server边的application下便会产生一个Client Instance,例如有5个人,就有5个Client Instances,分别是application.clients[0]至application.clients[4],只要利用Prototype对Client Object扩充一个新Method,Method中有一个For Loop,检查Client Instance的ID(假设每个Client边连线都有一个Unique ID),当ID跟接收者的ID相同时,便利用application.clients.call()去Call接收者的Function。
例如∶
Client边发出∶
NetConnection.call("msgFromClient", null, id, msg);
Server边∶
Client.prototype.msgFromClient = function(id, msg) {
for (var i = 0;i<application.clients.length;i++){
if (application.clients.name == id) {
application.clients.call("msgFromSrvr", null, msg);
}
}
};
Client边接收∶
NetConnection.msgFromSrvr = function(msg) { ... };
0
评论
Comments
日志分类
首页
[185]
Flash
[123]
ColdFusion
[2]
Flex
[2]
FlashMedia
[3]
RIA
[4]
Other
[43]
Python
[0]
Design
[8]