博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网页游戏开发(一)------ Hello,World
阅读量:6223 次
发布时间:2019-06-21

本文共 2722 字,大约阅读时间需要 9 分钟。

(一)Hello,World!

第一个关于ElectroServer的程序是喜闻乐见的Hello,World! 

最终效果图:

 

第一步:导入

import com.electrotank.electroserver4.ElectroServer; import com.electrotank.electroserver4.entities.Protocol; import com.electrotank.electroserver4.message.event.ConnectionEvent; import com.electrotank.electroserver4.message.event.PrivateMessageEvent; import com.electrotank.electroserver4.message.MessageType; import com.electrotank.electroserver4.message.request.LoginRequest; import com.electrotank.electroserver4.message.request.PrivateMessageRequest; import com.electrotank.electroserver4.message.response.LoginResponse; import flash.display.Sprite; import flash.events.DataEvent; import flash.events.Event; import flash.text.TextField;

 

第二步:初始化

这里先创建ElectroServer实例,然后监听3个事件,分别是连接、登陆和私信。这里需要注意addEventListener函数不是我们熟悉的写法,而是ElectroServer实例的特殊方法,第二个参数为函数名字符串而不是函数名,第三个参数也是必须的,指定作用域。

然后设置协议,这里是二进制。

创建新的连接,第一个参数为ip地址字符串,第二个参数为端口。

最后创建TextField记录各步骤行为。

es = new ElectroServer(); es.addEventListener(MessageType.ConnectionEvent, "onConnectionEvent", this); es.addEventListener(MessageType.LoginResponse, "onLogin",this);  es.addEventListener(MessageType.PrivateMessageEvent, "onPrivateMessageEvent", this); es.setProtocol(Protocol.BINARY); es.createConnection("127.0.0.1", 9899); createTextField();

 

第三步:处理连接响应

    如果连接成功则新建登录请求,设置该请求用户名,然后送之。这里需要特别注意函数修饰符为public,不能为private否则报错。其他几个处理函数相同。

public function onConnectionEvent(e:ConnectionEvent):void {
if (e.getAccepted()) {
   log("成功连接服务器!"); //build the request var lr:LoginRequest = new LoginRequest();     lr.setUserName("coolman" + Math.round(10000 * Math.random()));     //send it     es.send(lr); log("发送登陆请求.");   } else {
    log("Connection failed. Reason: " + e.getEsError().getDescription());   } }

 

第四步:处理登陆请求响应

如果登陆成功,则发送给服务器一条私信,目标是自己,设置内容后发送之。

public function onLogin(e:LoginResponse):void {
if (e.getAccepted())    {
log("您已经成功登陆!"); var pmr:PrivateMessageRequest = new PrivateMessageRequest(); pmr.setUserNames([e.getUserName()]); pmr.setMessage("Hello World!"); es.send(pmr); log("发送消息!"); } else {
log("登陆失败!"); } }

 

第五步:处理接受信息响应

直接记录消息内容。

public function onPrivateMessageEvent(e:PrivateMessageEvent):void {                              log("来自 " + e.getUserName() + "的消息: " + e.getMessage());}

   

下面是log函数和createTextField函数: 

private function log(description:String):void {
tf.appendText(description+"\n"); } private function createTextField():void {
tf = new TextField(); tf.width = 780; tf.height = 580; tf.x = tf.y = 10; tf.border = true; addChild(tf); }

 

原代码如下:

转载于:https://www.cnblogs.com/yt0379/archive/2012/01/16/2323520.html

你可能感兴趣的文章
bind安装过程
查看>>
组策略模板DIY
查看>>
基础编码管理组件 Example 程序
查看>>
安装边缘服务器-part01
查看>>
第十四章:监测和维护活动目录(一)(译自WindowsServer2008ActiveDirectoryResourceKit)
查看>>
Jackson序列化实例
查看>>
Flex入门
查看>>
docker常用的命令(持续更新)
查看>>
LoRa联盟主席:聚焦标准规范+产业生态,全球物联网事实标准初显
查看>>
继承性
查看>>
【ItemizedOverlay的ArrayIndexOutOfBoundsException/NullPointerException异常解决办法】
查看>>
ubuntu无法激活输入法,Zendstudio无法激活中文输入法问题
查看>>
linux下删除文件恢复方法
查看>>
Linux下如何识别IDER的软驱和光驱
查看>>
TreeView控件应用(包含递归调用)
查看>>
Android中文API(95)——SimpleExpandableListAdapter
查看>>
国内的机器视觉技术行业发展趋势分析
查看>>
Oracle中的nvl函数
查看>>
云场景实践研究第86期:美甲帮
查看>>
使用Windows远程桌面(mstsc)通过RDP协议访问Ubuntu/Debian服务器
查看>>