在Quick Cocos2d-x中给CocosStudio中导出的UI(Widget)控件增加触摸(touch)事件

时间:2023-02-08 23:53:24

第一步:项目组UI用CocosStudio做好UI控件后,在里面有一个后缀为.xml.ui的文件,双击这个文件就可以打开做好的UI。

第二步:按Ctrl + E,将“排序样式” 改成 “Intelligent”,然后导出。

第三步:将导出的文件全部复制到项目的res目录下。

第四步:在对应的界面ctor函数中,添加如下代码(笔者使用的是Sublime Text 2)

    local layer = TouchGroup:create()
layer:addWidget(GUIReader:shareReader():widgetFromJsonFile("XXXXXXX.ExportJson"))
self:addChild(layer, 1000)

到这里运行,就可以看到做好的UI布局了。

-------------------------------------------------------华丽的分割线------------------------------------------------------------

第五步:在上述代码下面增加如下代码:

    self.myBtn = layer:getWidgetByName(btnName)--btnName即为CocosStudio中,选中控件后,在右侧的“属性”栏-“常规”中的“名称”
--self.myBtn:setTouchEnabled(true)--注:由于CocosStudio中将控件设置了“交互”属性,可以去掉这条语句。
self.myBtn:addTouchEventListener(function (sender, event)--event是触摸类型,0,1,2,3分别是began,moved,ended,canceled
if event == 0 then
--操作代码
return false
end
end)

注:参考 http://www.cocoachina.com/bbs/read.php?tid=204622