//逐层查找节点
cc.Node.prototype.finds = function (value) {
var me = this;
var children = [].concat(me.children);;
if (me.nodes) { //查询过节点后,将部分查询结果缓存到node节点的nodes上,提供便捷查询 if (me.nodes[value]) { return me.nodes[value]; } else { //如果未便捷找到节点,逐层查找 return find(); } } else { return find(); }
function find() { if (children.length < 1) { return null; }
var child = children.shift();
me.nodes = me.nodes || {}; me.nodes[child.name] = child; if (child.name == value) { return child; } else { var childchilds = [].concat(child.children); if (childchilds.length > 0) { children = children.concat(childchilds); } return find(); } }};
应该可以看明白吧?
例如:Canvas.finds(‘其中的某个节点’);抑或:某个Node.finds(‘node里面的节点’);
发帖的编辑器真不好用,代码格式凑合着看吧