cocos2dx+lua 优先广度 搜索子节点
发布时间:2020-12-14 17:13:38 所属栏目:百科 来源:网络整理
导读:如题,广度搜索子节点,代码笔记: -- 通过name获取节点cc.exports.seekWidgetByName = function (node,name)if node and node:getName() == name then return node endlocal children = {node:getChildren()}local index = 0while index #children doindex
如题,广度搜索子节点,代码笔记:
-- 通过name获取节点 cc.exports.seekWidgetByName = function (node,name) if node and node:getName() == name then return node end local children = {node:getChildren()} local index = 0 while index < #children do index = index + 1 for k,v in pairs(children[index]) do if v.getName and v:getName() == name then return v end if v.getChildren then table.insert(children,v:getChildren()) end end end return nil end -- 通过tag获取 cc.exports.seekWidgetByTag = function (node,tag) if node and node:getTag() == tag then return node end local children = {node:getChildren()} local index = 0 while index < #children do index = index + 1 for k,v in pairs(children[index]) do if v.getTag and v:getTag() == tag then return v end if v.getChildren then table.insert(children,v:getChildren()) end end end return nil end -- 递归访问所有节点,执行func,参数为 当前节点node cc.exports.doFuncVisit = function (node,func) if (not node)or(not func) then return end func(node) if node.getChildrenCount and node:getChildrenCount() > 0 then for k,v in pairs(node:getChildren()) do doFuncVisit(v,func) end end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |