Apache flex 我应该在什么时候覆盖1个生命周期方法?
我在《flex开发者指南》中读到,有时需要重写一个 生命周期方法,如:commitProperties和updateDisplayList 但我已经编写了一些flex应用程序,而不需要实现它们。Apache flex 我应该在什么时候覆盖1个生命周期方法?,apache-flex,Apache Flex,我在《flex开发者指南》中读到,有时需要重写一个 生命周期方法,如:commitProperties和updateDisplayList 但我已经编写了一些flex应用程序,而不需要实现它们。 什么时候需要覆盖它们?首先,我100%建议您通过以下方式学习本演示文稿: 本文件由以下人员编写: 它们涉及到文档中永远找不到的东西,但对于理解Flex组件生命周期来说非常实用 根据我的经验,您唯一需要担心覆盖核心生命周期方法的时间是在创建组件时。我区分了应用程序视图和组件 组件是需要近乎完
什么时候需要覆盖它们?首先,我100%建议您通过以下方式学习本演示文稿:
- 组件是需要近乎完美、高度优化和极其通用/抽象的东西
- 视图是您可能只在一个应用程序中需要的东西,但如果您愿意,可以重用(LoginScreen、ContactForm等)
面板
调用createChildren
,则createChildren
方法将对其所有子级调用addChild
,调用createChildren
createChildren()
,以便为您所在的组件添加星星。不过,默认情况下,FlexSDK中的所有容器组件都会在此处添加它们的子组件(列表的方式稍有不同),因此,如果您正在构建MXML视图或其他不可重用的内容,则不必这样做
设置属性后,接下来的3个方法称为1帧
measure()
measuredWidth
或measuredWidth
返回一个有用的值。因此,如果您构建自定义CoverFlowContainer组件,并且未设置measuredWidth/measuredHeight
(因为measure
未被覆盖),那么如果您未在CoverFlowContainer上指定任何大小,则它将为0宽0高。因此,替代measure
,并将其设置为measuredWidth
半径*2或类似的值,现在您不需要给它一个大小李>
measure
之后调用距离
,间隙
,选择的编辑项
,以及倾斜
属性。设置它们时,将它们存储在私有变量中。Flex将等待一帧,然后调用commitProperties
。在覆盖的commitProperties
中,您可以说layout.updateEverything(选择editem、distance、gap、tilt)代码>可以这么说。因此,这是您重写的方法,以使所有属性更改同时应用
更新显示列表
在提交属性之后调用
叫自上而下
您只需覆盖此设置即可在组件上设置可见属性,例如setActualSize
、graphics
等。但现在(由于“commitProperties”),您已经拥有了将显示集更新为正确值所需的所有变量
总体
因此,根据我的经验,在为我将在一百万个项目中使用的东西创建组件库时,我大量使用了这些生命周期方法:
- TitleWindow(我自己的版本)
- View3D(适用于Away3D/Papervision)
- Flex4的树和堆栈
- 文本区(带提示、可扩展等)
- 工具提示(更易于蒙皮工具提示)
我需要确保所有内容都按照生命周期进行了更新和完美渲染。阅读和理解这些方法确实有助于澄清何时重写这些方法。正如(Flex框架的非常简单、清晰的替代方案。功能不丰富,所以它展示了如何通过简单的方式覆盖这些方法来完成一些非常高级的事情)
当我开发应用程序并制作诸如AdvertismentView
、MenuView
和LoginView
之类的东西时,我从来没有考虑过它,因为我使用的所有组件都已经解决了这些问题(ViewStack、Group、List等)。我基本上只是设置他们定义的属性