zoukankan      html  css  js  c++  java
  • 理解自定义组件

    原文:http://www.billdwhite.com/wordpress/?p=21
    理解组件的生命周期
    组件的生命周期是一系列被flex框架调用的方法,这是每个组件都会经历的。这些方法包括:
    • The component’s constructor
    • The commitProperties() method
    • The createChildren() method
    • The measure() method
    • The updateDisplayList() method
    分开来讲:
    1,constructor()
    在构造函数里,你可以设置初始的属性,做些不管组件是否在屏幕上显示过都需要处理的事情。你不应该做这些事:创建子元素和定位,因为这个阶段你还没有足够的信息。构造方法在组件被创建的时候调用,生命周期里的其他方法直到一个组件被加到一个容器里才会被调用。
    1 var blah:Button = new Button(); // invokes the constructor
    2 container.addChild(blah);       // adds the component to a container,  triggering the other lifecycle methods

    2,createChildren()
    这个方法用来创建任何可视的子元素(children),但是,只是创建子元素并不定义大小和位置,因为你的组件还不知道它有多少的屏幕空间。当你还不知道你有多大的操作空间时,你不能告诉你的子元素它们能有多大。也就是说,这是由component的空间你还不知道,如何定义它的children的大小?定位也一样。

    3,measure()
    调用measure()方法,用来决定一个组件所要求的屏幕空间。这个方法负责设置一个组件的四个属性:
    • measuredMinWidth
    • measuredMinHeight
    • measuredWidth
    • measuredHeight
    这些元素只是一个组件对其父元素建议的大小,这里就是updateDisplaylist进入的地方。这个measure方法也会调用layout manager。布局管理器负责确保设置组件大小的程序被开始。布局管理器通常从最外面的组件开始。要想知道一个组件需要多大地方,首先得知道他的子元素要多大地方。

    4,updateDisplayList
    当在一个组件上调用updateDisplayList方法,这个方法被传递了两个参数:unscaledWidth,unscaledHeight。基本的,他告诉你‘不要考虑你要求的,这里是你得到的’。你可以选择忽略组建的建议宽度和高度,而给他设置任意你先要的大小。如果它的高度和宽度不足以容纳所有的组件,那么滚动条将出现。这个方法也负责定位子组件。

    5,commitProperties
    这个属性是为了协调属性的更改,为什么要协调属性呢?因为有些时候你想要等待不止一个的你所依靠的属性被设置好了。也有些时候你不想改变一发生就调用个复杂的方法。所以呢,这个方法就能够让你拖延上面的事情直到屏幕需要被重绘,因为这个方法是被flex framework预定的,当需要的时候会被调用。

    如何告知framework上述那些方法被需要呢?
    • invalidateDisplayList()
    • invalidateProperties()
    • invalidateSize()
    这些方法告诉flex framework呀确保这些方法要在下次合适的时间被调用。
    我们必须记住下面这些要点:
    1,constructor-------设置一些东西但是不创建子元素和定位元素。
    2,createChildren-------创建子元素但是不设置他们的大小和定位他们。
    3,measure------------确定需要的屏幕空间。
    4,invalidateSize---------告诉Flex去重新测量某些东西。
    5,updateDisplayList---------得到unscaledWidth和unscaledHeight。你可以用它也可以忽略它。可以定位元素。
    6,invalidateDisplayList--------让flex框架调用updateDisplayList方法
    7,commitPorperties----------协调属性的更改
    8,invalidateDisplayList-----------让flex调用invalidateDisplay方法





  • 相关阅读:
    简单版购物车
    五级菜单
    九九乘法表及金字塔
    day02作业
    解决jar激活pycharm跳窗问题
    1
    第二周
    2019是前十年中最难的一年但极有可能是未来十年来最好的一年
    电脑必备软件之让电脑桌面简洁帅气
    补码一位乘法(五位小数)
  • 原文地址:https://www.cnblogs.com/orchid/p/1561440.html
Copyright © 2011-2022 走看看