理解自定义组件
2013-10-29 00:20
162 查看
理解自定义组件
原文:http://www.billdwhite.com/wordpress/?p=21理解组件的生命周期组件的生命周期是一系列被flex框架调用的方法,这是每个组件都会经历的。这些方法包括:The component’s constructorThe
commitProperties()method
The
createChildren()method
The
measure()method
The
updateDisplayList()method
分开来讲:1,constructor()在构造函数里,你可以设置初始的属性,做些不管组件是否在屏幕上显示过都需要处理的事情。你不应该做这些事:创建子元素和定位,因为这个阶段你还没有足够的信息。构造方法在组件被创建的时候调用,生命周期里的其他方法直到一个组件被加到一个容器里才会被调用。1var blah:Button = new Button(); // invokes the constructor
2container.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方法
相关文章推荐
- 对于android中自定义组件属性的理解
- 2014-11-8Android学习------深入理解Android中ViewGroup-----自定义组件
- Vue.js 组件中的v-on绑定自定义事件理解
- 对viewpager与自定义组件bottombar结合的深入理解
- ArcGis server api for flex widget的 理解--自定义组件。
- 浅谈Vue.js 组件中的v-on绑定自定义事件理解
- 理解自定义组件
- 自定义组件<六>:深入理解ViewGroup
- Android 自定义preference组件
- 【Android基础入门〖17〗】自定义标签 和 自定义组件
- AngularJs中组件、过滤器、自定义过滤器的使用
- 深入理解Java:注解(Annotation)自定义注解入门
- Android 自定义组件 方法篇
- WPF自定义组件,自定义属性(依赖属性)
- Flex组件开发之自定义属性和方法
- 自定义popupwindow组件
- 理解ASP.NET MVC的DependencyResolver组件
- android中自定义组件的规则
- jQueryUI如何自定义组件实现代码
- 深入理解Vue 组件之间传值