【LUA】addTouchEventListener(…)的使用方法,求指点

UIWidget *uw=ul->getWidgetByTag(3);
uw->addTouchEventListener(uw,toucheventselector(UITest::testButtonCallback));
通过此方法可以监听UIWidget 的触摸事件,C++中没问题,我会使用,但是我们界面是打算放在Lua中实现的,

这个方法也是开放给Lua的,现在我在Lua中不会传参……,求高手指点

addTouchEventListener(CCObject* obj,TouchEventType tType)

类似的还有
addEventListenerCheckBox(CCObject*target, SEL_SelectedStateEvent seletcted)

这种注册CheckBox控件的事件回调函数,C++中会用,但是Lua 里 这个参数怎么传呢,迷茫:12:

请问楼主如何解决呢后来?

好吧,这么久没人回复 我来回复下吧

不改动框架下加入回调的方法 (未验证,但我认为应该是正确的)

addEventListenerCheckBox(CCObject*target, SEL_SelectedStateEvent seletcted)
首先这两个传入的参数都是 指针 ,第一个是对象,第二个是函数指针
那么你需要传入这两个对象指正的话 你必须在lua里面能够创建
所以 用lua++导出类是必不可少的
你可以选择 把类导入你自己的代码中 这样就不会 影响原来的代码了
类的伪代码
CCallBack:CCObject{
public:
void addEventHandler(int event);
void onEvent(…){}
SEL_SelectedStateEvent getEventfunction (){
return selectStateEvent(CCallBack:onEvent);
}
}
lua下:
local callobj = CCallBack:create() – 这个必须持久保存,否则会被gc
local event = CCallBack:getEventfunction()
callobj:addEventHandler(
function (…)
//handle
end
)
obj.addEventListenerCheckBox(callobj,event)