一个扩展包括4个事件:
1) Initialize
2) Handle client requests
3) Handle internal server events
4) Destroy
这四个事件分别由四个AS函数来处理:init(), handleRequest(), handleInternalEvent(), destroy()
这四个函数(即便为空)必须包含在扩展中,否则会报错。
最简单的扩展就是如下形式:
function init(){}
function destroy(){}
function handleRequest(cmd,params,user,fromRoom){}
function handleInternalEvent(evtObj){}
init()在扩展加载时被调用,初始化作用。
destroy()在服务器销毁扩展时被调用,清除所有中间设置。
handleRequest()有四个参数:
cmd -- 客户端发送的请求(命令)的名称,String类型,用以区分扩展的不同行动。命名尽量短,以避免造成带宽浪费。
params -- 客户端发送的数据。
user -- 发送该请求的用户对象。
fromRoom -- 发送请求的房间的数字ID。
handleInternalEvent()处理服务器事件,如用户加入,用户退出,登录等。服务器用事件类型的name属性作为参数来调用该函数。
服务器事件列表:
userJoin | 一个用户加入了房间/域 | |
userExit | 一个用户离开了房间 | |
userLost | 一个用户断开了连接 | |
newRoom | 一个新的房间在被创建在域中 | |
roomLost | 一个房间在域中被销毁 | |
loginRequest | 一个用户请求登入 | |
spectatorSwitched | 一个在游戏房间中的观看者转变成为一个玩家 |