按钮注册函数报错

         这是个很简单的问题,但是初学者可能会一些小问题,导致报错,而报错的原因还看不明白。下面就描述一下这个问题。代码如下所示:


    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)

猜你喜欢

转载自blog.csdn.net/qq_28644183/article/details/68958194