Flex sdk4 布局与更新

在flex中,主要使用LayoutManager来驱动组件的度量和布局策略, LayoutManager实现一个单例,在Application类构造函数中创建:
 1     public function Application()
 2     {
 3         UIComponentGlobals.layoutManager = ILayoutManager(
 4             Singleton.getInstance("mx.managers::ILayoutManager"));
 5         UIComponentGlobals.layoutManager.usePhasedInstantiation = true;
 6 
 7         if (!FlexGlobals.topLevelApplication)
 8             FlexGlobals.topLevelApplication = this;
 9 
10         super();
11                     
12         showInAutomationHierarchy = true;
13     }
布局分三个阶段执行:提交、度量和布局。

那作为一个组件,是怎么样 参与到布局策略中呢?
flex中所有的组件都继承自UIComponent类,在该类上实现了一个叫IInvalidating的接口:
public interface IInvalidating
{

    
function invalidateProperties():void;
    
function invalidateSize():void;
    
function invalidateDisplayList():void;

        
function validateNow():void;
}
当组件调用invalidateProperties方法,表明该组件一个属性发生变化,需要更新.
它会在方法体写上这么一句:
   UIComponentGlobals.layoutManager.invalidateProperties(this);
来告诉布局管理器(LayoutManager),布局管理器在适当的时候回调组件上的validateProperties()验证属性,
如果有属性有变化,进而再调用commitProperties()提交变化的属性.

同理,
调用invalidateSize()告诉布局管理器组件大小发生了变化.
调用invalidateDisplayList()告诉布局管理器组件布局发生了变化.


转载于:https://www.cnblogs.com/zyu20000/archive/2009/08/18/1548944.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux PROC文件系统详解

/proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。可以使用的文件随系统配置的变化而变化。命令procinfo能够显示基于其中某些文件的多种系统信息。以下详细描述/proc下的文件。----------------------------…

seo每日一贴_白杨SEO:我看ZAC的外贸SEO应该怎样做?(策略篇)

前言:这是白杨SEO公众号更新第64篇。本该写写头条SEO啥的,最近在师徒培训讲站内SEO时有旁听同学提到后面讲讲谷歌SEO怎么样,因为谷歌全世界搜索市场占有率,所以外贸SEO最主要还是做谷歌SEO。以白杨特意又去了前辈ZAC的SEO每日一贴…

Can't connect to local MySQL server through socket '/tmp/mysql.sock'

转载链接:http://blog.csdn.net/ixidof/article/details/5958904 摘要:解决不能通过mysql .sock连接MySQL问题 这个问题主要提示是,不能通过 /tmp/mysql .sock连到服务器,而php标准配置正是用过/tmp/mysql .sock,但是…

[转]网页栅格系统研究(2):蛋糕的切法

[出自]http://lifesinger.org/blog/2008/10/grid-system-2/首先澄清一个应用场景问题。研究(1)中指出,对于结构复杂的网站,不少设计师们喜欢采用960固定宽度布局。但要注意的是,960并不是万能钥匙,大部分网…

Vue3响应式原理

关注若川视野,回复"pdf" 领取资料,回复"加群",可加群长期交流学习本文结构- 关于Vue3- Vue2响应式原理回顾- Vue3响应式方案- Vue3响应式原理- 手写mini版Vue3响应式本文共计:2349字2图预计阅读时间&#xff…

python二值化 感兴趣区域_Python+OpenCV感兴趣区域ROI提取方法

方法一:使用轮廓步骤1"""src为原图"""ROI np.zeros(src.shape, np.uint8) #感兴趣区域ROIproimage src.copy() #复制原图"""提取轮廓"""proimagecv2.cvtColor(proimage,cv2.COLOR_BGR2GRAY) #转换成…

error while loading shared libraries: libmysqlclient.so.16: cannot open

转载链接:http://blog.sina.com.cn/s/blog_4ab24dd50100wnkv.html 问题解决办法: locate libmysqlclient.so.16 如我的mysql安装在/usr/local/mysql下,则结果为 /usr/local/mysql/lib/mysql/libmysqlclient.so.16 vi /etc/ld.so.conf 增…

编译cvaux错误的原因

平台vc6.0;在debug模式下编译cvaux时会提示三个错误:error C2039: foreground_regions : is not a member of CvFGDStatModelerror C2039: foreground_regions : is not a member of CvFGDStatModelerror C2039: foreground_regions : is not a member of CvGaussBG…

找准切入点,调试看源码,事半功倍

关注若川视野,回复"pdf" 领取资料,回复"加群",可加群长期交流学习最近写了很多源码分析相关的文章,React、Vue 都有,想把我阅读源码的一些心得分享给大家。React:React 架构的演变 - 从…

Android布局大全

Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。组件按照布局的要求依次排列,就组成了用户所看见的界面。 所有的布局方式都可以归类为ViewGroup的5个类别,即ViewGroup的5个直接子类…

java实现加减乘除运算符随机生成十道题并判断对错_2020年Java面试题(3年的工作总结),最全的知识点总结...

这份Java面试题整整花了三个月的时间来整理,都是自己再工作中总结出来,记住多少就写多少,希望这份资料可以帮助你们,文末有其余部分资料的领取方式.Redis12道面试题1.什么是Redis?答:Remote Dictionary Ser…

Linux MySQL 5.1.62 source install

源码包官网下载:http://dev.mysql.com/downloads/ MySQL手册官网下载:http://dev.mysql.com/doc/ 安装ncurses: 1、tar -zxvf ncurses-5.9.tar.gz 2、cd ncurses-5.9.tar.gz ; ./configure; make clean; make; make install 修改时区…

RDLC 示例 文章 1

GotReportViewer的实例,请在下面的连接中下载: http://files.cnblogs.com/waxdoll/RDLC.rar http://www.databasejournal.com/features/mssql/article.php/3605826/Mastering-OLAP-Reporting--Reporting-with-Analysis-Services-KPIs.htm MSSQL Server …

.NET 中的泛型 101

1.1.1 摘要 图1 C# 泛型介绍 在接触泛型之前,我们编程一般都是使用具体类型(char, int, string等)或自定义类型来定义我们变量,如果我们有一个功能很强的接口,而且我们想把它提取或重构成一个通用的接口,使…

年底了,给想进阶的的前端朋友一些福利

2020 年,很多朋友都经历了一段比较艰难的求职季。年末,“就业寒冬”迎来了一丝暖阳,很多中大型互联网公司扩大了未来一年的招聘需求。前不久,字节跳动放出了年末要招 1 万人的消息,腾讯校招规模也将扩张至 5000 人&…

python oa系统_用python把C#操作OA的例子重写了一下

#手工chrome.exe --remote-debugging-port9222 --user-data-dir"C:\selenum\AutomationProfile"fromselenium import webdriverfromselenium.webdriver.common.by import Byfromselenium.webdriver.support.ui import WebDriverWaitfromselenium.webdriver.chrome.op…

编译安装PHP出现configure: error: MySQL configure failed. Please check config.log的解决方法

以下为google的结果: 方案一: 转载链接:http://www.php-oa.com/2008/03/28/php-make.html 好久没有编译安装过php了,为了玩nginx.没法子,编译一次来测试.我加的编译的参数是: # ./configure –prefix/usr/local/php –with-config-file…

[Android] Android学习手记(二)

1。SDK源码获取Git这个版本控制还真是第一次听到。Linux参考官网(需要穿墙)的Get source好像比较容易。Windows就比较麻烦了,不能通过repo方式获取整个projects,只能一个获取project。不过官网称“The source is approximentely 2…

关于分区索引与全局索引性能比较的示例

说明:之前使用range分区做出来的效果不明显,这次使用hash分区。 1、准备工作: ----创建两张一样的hash分区表,jacks_part和echos_part------------------ 1 SQL> create table jacks_part (owner varchar2(30),object_id numbe…

Vue Router 4.0 正式发布!焕然一新。

关注若川视野,回复"pdf" 领取资料,回复"加群",可加群长期交流学习12月8日,Vue Router 4 正式发布稳定版本。在经历了 14 个 Alpha,13 个 Beta 和 6 个 RC 版本之后,Vue Router v4 闪亮…