编辑“︁
Marauroa Chat Tutorial/HTML5 Client
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== Handling perceptions == 在我们将所有内容放在一起之前,还剩下一件:我们需要听取服务器发送的感知并将聊天显示在我们的日志窗口中。 在本教程中,聊天消息不仅仅是事件,还包括对象。 这允许我们将它们存储到数据库中,并允许后期客户端读取历史记录。 通常我们会使用 marauroa.rpobjectFactory 来创建具有正确原型(“Player”、“Item”、“Creature”...)的对象,因为它们是从服务器传输过来的. You can have a look at this [http://arianne.cvs.sf.net/viewvc/arianne/stendhal/srcjs/stendhal-entities.js?revision=1.14&view=markup file of the experimental Stendhal HTML5 client], to learn how the rpobjectFactory is used. 对于这个非常简单的聊天客户端,我们只对聊天对象感兴趣。 因此,我们现在跳过这一步,直接处理新对象的感知事件: <source lang="javascript"> marauroa.perceptionListener.onAdded = function(object) { if (object.has("text")) { ui.chatLog.addLine("text", object.get("from") + "* : " + object.get("text")); } } ui: { chatLog: { addLine: function(type, msg) { var e = document.createElement('p'); e.className = "log" + ui.escapeHTML(type); e.innerHTML = ui.escapeHTML(msg); document.getElementById('chat').appendChild(e); document.getElementById('chat').scrollTop = 1000000; }, clear: function() { document.getElementById("chat").innerHTML = ""; } /** HTML code escaping */ escapeHTML: function(msg){ return msg.replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace("\n", "<br>"); } } } </source> 注意:将所有内容放在一起时,您需要将上一节中的“ui”包与此处定义的包合并。
摘要:
请注意,所有对gamedev的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Gamedev:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息