开发技巧:节点标签&节点查找

给节点加标签

  • 给节点加标签,用于查找一个或大量含有特定标签的节点。
  • 标签是通过以特殊格式为节点命名实现的。
带标签的节点命名
  • 节点命名中,第一个“?”后面的部分属于标签区域。如上图中,“m=20&s=&x&msg=hello world”就是标签区域。
  • 一个标签,通常是以“标签名=标签值”的形式定义,但也可以仅有“标签名=”或“标签名”。
  • 一个节点可以被附加多个标签,标签间用“&”隔开。
  • 上图中的节点命名含有四组标签,分别是“m=20”、“s=”、“x”、“msg=hello world”,使用
var marks = Utils.node.getMarks(node);

可以获得node上所有标签信息,以上图为例,获得的标签信息marks形式如下:

{ x: '20', s: '', x: null, msg: 'hello world' }

可以观察到,标签值都是以字符串形式存在的,但要注意:若标签形式为“标签名=”,则标签值是空白字符串(如“s=”,得到s: ''),若形式为“标签名”,则标签值为null(如“x”,得到x: null)。

获得节点的标签

  • Utils.node.getMarks(node)

收集一个节点(含此节点)及其子孙中含有特定标签的所有节点

  • 通过如下代码查找带标签的节点:
var nodesFound = Utils.node.getNodesInHierarchy(node, markName, markValue)
  • 前提是要找的节点必须是node本身或其子孙。
  • 如上图,假设node为A节点,则:
// 可以获取到[A, C]
var nodesFound = Utils.node.getNodesInHierarchy(node, 'm', 20);
// 可以获取到[D]
var nodesFound = Utils.node.getNodesInHierarchy(node, 'm', '');
// 可以获取到[A, B, C, D]
var nodesFound = Utils.node.getNodesInHierarchy(node, 'm');
// 可以获取到[B, C, D]
var nodesFound = Utils.node.getNodesInHierarchy(node, 'x');

此外,若不指定markName和MarkValue,则可以获得当前节点及所有子孙节点,如:

// 可以获取到[A, B, C, D]
var nodesFound = Utils.node.getNodesInHierarchy(node);

收集一个节点(含此节点)及其子孙中含有特定标签的所有节点的特定组件

  • 与上一个应用类似,但不是收集节点,而是收集组件。通过如下代码实现:
var componentsFound = Utils.node.getComponentsInHierarchy(node, componentTypeOrName, markName, markValue);
  • 需要注意的事项与收集节点一致,只是多了componentTypeOrName参数。比如收集node下带有标签“m=small”的节点的cc.Sprite组件,则这样写:
var componentsFound = Utils.node.getComponentsInHierarchy(node, cc.Sprite, 'm', 'small');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,916评论 0 3
  • 一篇嘻嘻哈哈的景点推荐文,最终被我读得泪流满面,是不是很奇葩? 文章这样说:“两年后,我随缘皈依三宝,...
    简小洋阅读 1,252评论 0 2
  • 很老套的题目。无奈,我在简书混迹一段时间了,一直想写东西,心中有千言万语,不知从何写起,如何下笔。或许就是冲动。今...
    海一样的诺西阅读 123评论 0 0
  • 我做好了陪伴的准备,你是否准备在经济上承担多一点? 如果都不愿意,我想我们就不要说我们愿意为孩子做什么了。 人总在...
    好菇凉啊光芒万丈阅读 185评论 0 0
  • kindle受限于墨水屏幕,与手机相比有许多体验上不尽如人意的地方。不过,大多都是低频操作,忍了。谁让咱就爱它轻便...
    黑白之间阅读 642评论 3 1

友情链接更多精彩内容