quick3.3使用cocosstudio2.06的csb文件

local LoginScene = class(“LoginScene”, function()
return display.newScene(“LoginScene”)
end)

function LoginScene:ctor()
self._widget = cc.uiloader:load(“Login.csb”):addTo(self)
print(“loginScene ctor”)
end

function LoginScene:onEnter()
print(“enter login”)
– local btnLogin = self._widget:getChildByName(“btnLogin”)
local btnLogin = cc.uiloader:seekNodeByTag(self, 13)
– local btnLogin = cc.uiloader:seekNodeByNameFast(self, “btnLogin”) --有bug,获取的对象为nil

– addTouchEventListener
btnLogin:addTouchEventListener(function(event)
print(“btn click”) --点击按钮触发两次
end)
end

function LoginScene:onExit()
print(“exit login”)
end

function LoginScene:onLoginonLogin()
print(“login btn click”)
end

return LoginScene

quick3.3使用cocosstudio2.06的csb文件,请问怎么获取UI对象和处理事件呢?

csb文件uiloader最后调的是ccs的接口来解析的,所以,你要用ccs的接口来取

addTouchEventListener(function(target,eventType)
target是按钮
eventType 是事件类型
end)
我找了下对应的Cocos2dConstants(在frameworks文件夹下的有,添加到src/framework里面)里面有个cc.EventCode = {BEGAN = 0,MOVED = 1, ENDED = 2, CANCELLED = 3,}

找这个纠结了好久…:12:

解决办法:
在config.lua中添加下面一行
–事件名称简写
CC_USE_DEPRECATED_API = true

然后按钮事件处理

btnLogin:addTouchEventListener(function(sender,eventType)
if(eventType ~= TOUCH_EVENT_ENDED) then return end
local name = self._edtName:getString()
local pwd = self._edtPwd:getString()
– if(name == “admin” and pwd==“admin”) then
– app:enterScene(“MainScene.lua”)
– else
– print(“login error”)
– end
self:onLogin(name,pwd)
end
)