Flex 组件生命周期:validateNow、validateDisplayList、invalidateDisplalList、commitProperties 等
我正在扩展 VBox 来制作日历组件。我应该重写什么方法来添加代码来绘制自身?所有这些方法有什么区别?我是否应该在每个项目中添加一些内容,或者是否有一种特定的方法我可以覆盖,添加我的绘图代码并使其工作?
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
本白皮书也许是我见过的有关该主题的最佳信息来源。
This white-paper is perhaps the best source of information I have seen on the subject.
Deepa 的 MAX 2008 演讲无疑是最好、最精彩的轻松理解有关该主题的演示。它准确地展示了如何在 Flex 3 中正确编写组件。
Deepa's MAX 2008 talk was easily the best and most easily understanding presentation on the topic. It shows exactly how to write components properly in Flex 3.
我还推荐这篇文章:
http://maohao.wordpress.com/2009/02/02/6-steps-in-creating-custom-uicomponent-in-flex-halo-framework/
简而言之,如果您'在进行图形操作来绘制时,您需要使用覆盖
updateDisplayList()
并根据需要调用invalidateDisplayList()
;如果您使用子组件,则将使用commitProperties()/invalidateProperties()
。如果您动态调整大小,则需要measure()
和invalidateSize()
。I also recommend this article:
http://maohao.wordpress.com/2009/02/02/6-steps-in-creating-custom-uicomponent-in-flex-halo-framework/
Briefly, if you're doing graphics operations to draw, you'll want to use override
updateDisplayList()
and callinvalidateDisplayList()
as necessary; if you're using subcomponents, you'll usecommitProperties()/invalidateProperties()
. If you're dynamically sized, you'll needmeasure()
andinvalidateSize()
.重写
的 updateDisplayList 方法>UIComponent
并在其中进行绘图。使用组件的unscaledWidth
和unscaledHeight
作为绘制的边界。Override updateDisplayList method of
UIComponent
and do your drawing in it. Use the component'sunscaledWidth
andunscaledHeight
as the bounds for drawing.来自 Adobe Flex 3 Live Docs 高级可视化组件ActionScript - 很棒的来源。
From Adobe Flex 3 Live Docs Advanced Visual Components in ActionScript - great source.