flex中的架构,UIComponent类的继承关系
UIComponent > FlexSprite> Sprite >DisplayObjectContainer>InteractiveObject >Displayobject
2、为什么使用失效机制(invalidation mechanism)
一种情况是,当设置了组件的多个属性后,比如Button 控件的label 和icon 属性,我们需要所有属性被设置后一次性执行commitProperties(), measure(), updateDisplayList()方法,而不是设置过label 属性后执行一遍这些方法,然后在设置icon属性后又执行一次这些方法。
另一种情况是几个组件同时更改了它们的字体大小。程序更改字体大小的执行速度大大快于Flex 更新应用的速度,因此要在确定最终更改字体之后才开始更新布局。另外,Flex 需要协调布局操作以消除任何冗余过程,而不是在每个组件更新它的字体大小之后都执行一次布局操作。
Flex 使用“失效机制(invalidation mechanism)”来同步组件的更改。Flex 用一系列方法的调用,比如在setter方法内监控一个变更变量来标记组件的某些东西已经发生变化, 然后在下一个“渲染事件(renderevent)”中触发组件的commitProperties(), measure(), layoutChrome(),updateDisplayList()检查这些布尔变量来完成最终的变更逻辑。这样做的额外好处就是setter方法可以更迅速地返回,把对新属性值的处理留给了commitProperties()方法。
失效方法及其对应的触发函数如下:
invalidateProperties() 通知组件,以使下次屏幕更新时,它的commitProperties()方法被调用。
invalidateSize() 通知组件,以使下次屏幕更新时,它的measure()方法被调用。
invalidateDisplayList() 通知组件,以使下次屏幕更新时它的layoutChrome()方法和updateDisplayList()方法能被调用。
当组件调用一个“失效”方法时,它就通知Flex该组件已经被更新。当多个组件调用失效
方法,Flex 会在schedules中协调这些更新,以使这些更新操作在下一次屏幕更新时一起执行。注意,createChildren()没有对应的失效方法,它会在调用后被立即执行。
invalidateDisplayList
标记组件,以便在稍后屏幕更新期间调用该组件的 updateDisplayList() 方法。
当多次改变控件的某些属性(如 高,宽,数据)后,调用该方法以便一次性的刷新相关属性和布局等。较之于一次一次的自动刷新,更有效率。
分享到:
相关推荐
UIComponent.unitypackage
UIComponent
UICOMPONENT 旨在直接替代 Matlab 的内置 UICONTROL 和 JAVACOMPONENT 函数。 它接受 UICONTROL 接受的所有参数和样式,以及任何其他可显示的 Java (Swing/AWT) 组件类。 保留了 UICONTROL 的调用约定和语法以实现...
MatlabGUI使用java组件无所不能-uicomponent.m 是不是曾经想做出漂亮的GUI 界面? 是不是曾经想在 Matlab GUI里面显示网页? 看看这个界面: matlab_java.png 所以,...
This is a Flex UIComponent that can be used 谋n a FLEX 3 mxml application as component written in action script 3.0, provides you to create items that cab be filled from an XML or Query ResultSet or ...
CustomComponent 自定义组件(空视图、标题、表单输入项、设置项、菜单项、按钮、文字) 继承于ConstraintLayout EmptyView 空数据视图-(图标加文字描述) 属性表格 name format description empty_title ...
BlurryLoading-UiComponent
flex开发自定义控件
将呈现方法更改为以下方法(Row.java第67行)后,它可以按预期工作:public void render(UIComponent parent){UIComponent Composite = Components.includeCompositeComponent(parent,“ qcockpit”,Row....
在用 ActionScript 创建自定义组件时,必须重载 UIComponent 类的一些方法.实现基本的 组件结构,构造器,以及 createChildren(),commitProperties(), measure(), layoutChrome() 和 updateDisplayList()方法.
与 Tiles 相比,Facelets 的优势在于它预先集成了 JSF UIComponent,并且不需要 Facelets 配置文件,而 Tiles 需要 Tiles 配置文件。 在 Facelets 中可以添加 JSF 验证器和转换器。Facelets 全面支持表达式语言 (EL...
可作为component 使用 (此图片来源于网络,如有侵权,请联系删除! ) 直接上代码 (此图片来源于网络,如有侵权,请...viewclass="uiComponent uiComponent_mask uiComponent_mask_{{uiComponent.mask.show &&'active'}}
React过度 一个使用Dart构建静态类型的React UI组件的库。 该库还公开了OverReact Redux ,它具有。... 查看《 UiComponent2迁移指南》以了解UiComponent2的优势,可以运行的codemod脚本以及可能需要手动进行的其他
在Page顶部下滑一个提示条 , 代码见 /mixins/UIComponent.js ,其中的self 可以认为是微信小程序的Page对象 (此图片来源于网络,如有侵权,请联系删除! ) 效果: 默认2秒展示,上移动画隐藏 /** * 展示顶部 tip , 多...
mkdir -p Customizing/global/plugins/Services/UIComponent/UserInterfaceHook cd Customizing/global/plugins/Services/UIComponent/UserInterfaceHook git clone ...
mkdir -p Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/ cd Customizing/global/plugins/Services/UIComponent/UserInterfaceHook/ git clone ...
在 Matlab GUI 中集成 GE 的解决方法很简单,可以在 GUI 中嵌入 Microsoft Internet ActiveX-Control。 对于按钮,只需下载 uicontrol: ...
- Extends the Adobe’s™ UIComponent class (no need to relearn a new system) - Display and embed URLs in your application* - Display HTML pages in your application* - Display ...