码迷,mamicode.com
首页 > 其他好文 > 详细

toLua消息监听和发送(LuaframeWork)

时间:2017-09-24 09:55:30      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:ddl   string类   nil   定义   tps   告诉   listener   func   star   

基于uLua/toLua的Luaframework的lua框架的事件系统

github地址:https://github.com/jarjin/LuaFramework_NGUI

Luaframework为了我写好了消息的监听和发送,也就是观察者模式的使用方式。

如下图:

技术分享

eventlib是消息处理的一个库。

enents是作者为使我们更方便,仿造的C#的消息模式。

我们去调用这个事件系统的使用方式如下:

local EventTest = require "events"

function Main()					
	print("logic start")	 
	EventTest.AddListener("1",EvenetTest)
	EventTest.Brocast("1",2,3)
end

function EvenetTest(f1,f2,f3)
	print(f1) --2
	print(f2) --3
	print(f3) --nil
	print("我执行了事件")
end

我们实际上是使用的events里面的Event这个表。

注意点:

1、require后面是跟的文件名“events”,如果require "Event"的话,会告诉你返回的是一个bool类型的值,就无法由我们去使用了。

2、传递的事件的协议号,也就是上述代码EventTest.AddListener中的参数1,这个必须为string类型,因为这是luaframework定义好了,我们可以去修改,但是基于框架的东西尽量不要去修改吧,所以我们还是按照作者的思路去使用string类型的值作为消息传递的协议号。

3、消息发送的参数,可以与执行的方法的参数不一致,如果你如上述代码代码传递2和3两个参数,则方法执行时f1、f2分别对应2、3,f3的值则为nil。

技术分享

 

toLua消息监听和发送(LuaframeWork)

标签:ddl   string类   nil   定义   tps   告诉   listener   func   star   

原文地址:http://www.cnblogs.com/vsirWaiter/p/7584316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!