这是个很简单的问题,但是初学者可能会一些小问题,导致报错,而报错的原因还看不明白。下面就描述一下这个问题。代码如下所示:
local menu1=cc.MenuItemSprite:create(node2,node1)
menu1:setPosition(director:convertToGL(cc.p(100,100)))
menu1:registerScriptTapHandler(callBack)
local function callBack(sender)
cclog("aaa")
end
语法没有错误,但是运行的时候报错,报错原因如下:
从这里的报错,可能不知道怎么回事?其实原因很简单,就是运行的时候模拟器找不到callBack函数,可是我明明写了,为什么会找不到呢?因为Lua同Java一样,是向上引用,也就是从上面找需要的函数,变量等等。所以这里应该将callBack函数移到注册函数的上面,即可正常运行了。即如下:
local function callBack(sender)
cclog("aaa")
end
menu1:registerScriptTapHandler(callBack)