节点的管理
类似HTML,整个HTML由各种节点组成,根节点就是HTML标签,然后下面就是各个子节点,然后子节点再套子节点,形成了一个节点树,然后浏览器依据这个节点树进行渲染,然后就把我们需要的页面渲染出来,Laya 其实也是一样,不同的组件和场景组成了一个节点树,交给Laya 引擎渲染。
节点是项目开发的基础,只有充分了解如何操作节点,才能更快的实现复杂的需求。每个节点组件类都是继承自Node类,Node类是可放在显示列表中的所有对象的基类。该显示列表管理 Laya 运行时中显示的所有对象。使用 Node 类排列显示列表中的显示对象。Node 对象可以有子显示对象。
下面来熟悉一下Node类的所有基础的功能
添加
在不考虑层级的情况下,我们可以给某个节点添加子节点,可让子节点跟随父节点显示与否,移动,以及方便管理。添加的子节点会加到所有子节点的最后面。
往往要考虑到节点的层级关系或者说遮挡关系,并且已经了解到需要添加到指定的层级位置可使用此方法
直接把一组子节点按顺序添加到父节点下,相当于循环调用一次addChild子节点
查找
当我们知道某个节点的名字时,可以用个此方法找到父节点下一级的某个子节点
当我们知道某个节点的索引位置时,可以用个此方法找到父节点下一级的某个子节点
当我们想知道某个节点的索引位置时,可以用个此方法可获取子节点
通过调用父节点的numChildren属性,可以获得父节点下一级的所有子节点的数量,可用来遍历所有子节点使用,注意不包括子节点下的子节点
通过调用子节点的parent属性,可以直接获取父节点
判断一个节点下是否包含某个子节点,可以使用此方法,注意此查找过程会遍历所有嵌套的子节点
改变
如果想改变子节点的显示层级,可以调用此方法,注意index超出父节点的所有节点数会抛出异常
如果想用新的节点替换某个已有节点,可以调用此方法,注意原有的子节点将会被移除,但不会销毁
移除
删除子节点的时调用此方法,注意子节点将会被移除,但不会销毁
在不需要知道父节点的情况下,调用此方法可直接从父节点删除自己,此方法使用频率比较多
当我们知道某个节点的名字时,可以用个此方法从父节点删除子节点
当我们知道某个节点的索引位置时,可以用个此方法从父节点删除子节点
此方法可以快速删除指定索引区间的所有子节点