• addChild&&rawChildren的addChild


    如果你想将一个sprite放入一个的容器内,那么 你会调用容器的 addChild方法。但是 运行 就会报错误,不是Uicomponent的子类。但是 查API 你会发现 addChild的参数 的类型 是定为DisplayObject的。没错啊 编译也通过的啊 。
    今天才发现 调用rawChildren的addChild就可以不报错的添加成功。
    那么 这两个方法究竟有什么区别?使用的时机各是什么?这么做的意义又是什么呢?
    mx.core.Container是“组件(UIComponent)容器”,用来管理其中子组件(UIComponent)的布局。通过Container的numChildren属性和getChildAt()方法就可以遍历其所包含的子组件,也可以通过getChildren()方法一次性获得所有子组件的数组。通过addChild()、addChildAt()、removeChild()、removeChildAt()、removeAllChildren()等方法来维护容器所包含的子组件。我们最常用的Application就是组件容器,组件同组件容器的关系非常密切,Flex中的组件无法脱离容器而独立显示,Flex组件必须放在某个容器中才能工作。因此,Flex组件的生命周期和布局都与组件容器息息相关,这一点在2.5.2节中会有详细阐述。
        mx.core.Container是组件(UIComponent)容器的同时也是一个“显示对象容器(DisplayObjectContainer)”。值得注意的是:作为组件(UIComponent)容器,Container覆盖了继承自DisplayObjectContainer的addChild()、addChildAt()、removeChild()、removeChildAt()等方法,这些方法在Container类中只是用来维护组件容器所包含的子组件,这不同于维护子显示对象。同时,Container的numChildren属性也只是用来表示容器中所有子组件的数量而不是所有子显示对象的数量。
        Container自身也是一个组件,它也有自己的内部对象,比如边框、背景、滚动条、标题、注脚等,这些内部对象被称为组件容器的“边饰”。从显示对象容器角度来看,Container的内部对象以及子组件都是显示对象容器的子显示对象。因此,容器的所有子显示对象应包括其内部对象以及所有的子组件(child UIComonent),通过Container的rawChildren属性可以获得访问容器所有子显示对象的接口。代码清单2-18列出了Application对象的所有子显示对象,并标记了每个子显示对象是子组件还是内部对象

    rawChildren是容器特有的,看看API就可以大概理解rawChildren的作用了。

  • 相关阅读:
    css控制textarea固定大小不可拖动
    js绑定回车事件
    这一周的收获与总结_BP
    20140824
    【转】Hadooop学习笔记
    【转】CUDA优化小记录
    【转】CUDA程序优化要点
    cublas 矩阵相乘API详解
    CUDA 矩阵相乘完整代码
    CUDA 矩阵相乘
  • 原文地址:https://www.cnblogs.com/tinytiny/p/2827595.html
Copyright © 2020-2023  润新知