加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-x + Lua下场景不能使用setOnEnterCallback(func)等函数

发布时间:2020-12-14 19:07:45 所属栏目:百科 来源:网络整理
导读:cocos2d-x + Lua还不完善,使用这几个函数时会报错: node :setOnEnterCallback(func) node :setonEnterTransitionDidFinishCallback(func) node :setOnExitCallback(func) node :setonExitTransitionDidStartCallback(func) 原因是 lua_cocos2dx_auto.cpp

cocos2d-x + Lua还不完善,使用这几个函数时会报错:

node:setOnEnterCallback(func)
node:setonEnterTransitionDidFinishCallback(func)
node:setOnExitCallback(func)
node:setonExitTransitionDidStartCallback(func)

原因是lua_cocos2dx_auto.cpp里根本就没实现:

这个问题的典型场景就是一个Scene不知道自己什么时候被加载了、或者被移除了,而这个需求又是特别有用的,比如我们需要场景被显示出来后开始播放动画、场景被移除时停止播放动画。解决办法为使用registerScriptHandler方法,像这样:

local TestScene = class("TestScene",function()
  return cc.Scene:create()
end)

function TestScene.create()
  local scene = TestScene.new()

  scene:registerScriptHandler(function(eventType)
    if eventType == "enterTransitionFinish" then
      -- 场景被加载完成
    elseif eventType == "exitTransitionStart" then
      -- 场景即将被移除
    end
  end)

  return scene
end

不知道为什么cocos2d-x 3.2给回调函数传入的eventType参数不是数字常量,而是字符串,网上其他教程里使用的cc.NODE_ON_ENTER等判断现在是无效的了。我对eventType是字符串的设定觉得有点不可理解,不过是数字常量也好、字符串也好,都无所谓了,能用就行。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读