在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

Flex sdk4 布局与更新相关推荐

  1. 页面布局 - flex弹性布局

    flex弹性布局 html: <!DOCTYPE html> <html><head><meta charset="utf-8" /> ...

  2. flex 引入css,Flex常用布局

    Flex常用布局 项目介绍 flex简单布局,导入css后直接使用 使用说明 1. 以行布局 .rbox 使用方法: 1 2 3 结果: 2. 以列布局 .cbox 使用方法: 1 2 3 结果: 3 ...

  3. 移动web现状、viewport视口、二倍图、移动web开发主流方案、布局技术选型(流式布局、flex弹性布局、less+rem+媒体查询布局、混合布局、媒体查询、bootstrap)

    移动端web现状: 移动端常见浏览器:UC浏览器,QQ浏览器,Opera浏览器,百度手机浏览器,360安全浏览器,谷歌浏览器,搜狗手机浏览器,猎豹浏览器及杂牌浏览器.移动端常见的浏览器都是基于webk ...

  4. HTML中用弹性布局设置位置,HTML的flex弹性布局

    flex 布局概述 1. flex 是什么flex 是 Flexible Box 的缩写,意为弹性布局 flex 2009 年就已出现,浏览器兼容性很好,请放心使用 2. flex 解决了什么问题块元 ...

  5. CSS3 Flex 弹性布局用法详解

    什么是Flex弹性布局 Flex是Flexible Box的简称,意为弹性布局,顾名思义,在网页布局时,他可以给我们提供更多的灵活性. 说明: 1.flex是display的一个属性值.与之相当应的还 ...

  6. 弹性布局(Flex)布局介绍

    Flex是Flexible Box的缩写,意为"弹性布局".任何一个容器都可以指定为Flex布局,块级元素为display:block,行内元素为display:inline-fl ...

  7. 微信小程序开发(三)——IE盒子,Flex弹性布局,色子六面

    目录 ie盒子模型 Flex弹性布局 三大特性: 块元素和内联元素的转换 background-image背景图片 尺寸单位rpx 定位 练习:色子的六面 ie盒子模型 盒子模型是css中一个重要的概 ...

  8. 移动端基础(2)—— flex弹性布局

    一.flex弹性布局 flexible-box-layout 弹性盒式模型,它能更加高效的控制元素的对齐.排列,更重要的是能够自动计算布局内元素的尺寸,无论这个元素的尺寸是固定的还是动态的. 父元素( ...

  9. flex弹性布局教程-04项目属性flex-grow

    本节目标 掌握flex-grow的使用. 掌握flex-grow放大的计算公式(难点). 掌握编写导航条的技巧. 内容摘要 本篇介绍了项目属性 flex-grow,用于定义项目的扩大系数,用于分配容器 ...

最新文章

  1. Linux shell 学习笔记(16)— shell 入门总结
  2. 灰度图像--图像增强 双边滤波 Bilateral Filtering
  3. 玻璃质感_素描丨零基础,你也可以画出玻璃质感
  4. qt 报错pcap.h头文件不存在
  5. 启明云端分享|A133核心板SOM1309在喉镜方面的应用
  6. linux下查询域名或IP注册信息的操作记录(whois)
  7. ibm收购red hat_IBM将收购Red Hat:面向Java的初衷
  8. MySQL 基础 ———— SAVEPOINT 的应用
  9. win7 mysql添加到服务_MySQL服务添加到Windows系统服务中
  10. Oracle浅谈第六回
  11. php curl保存位置,php – 使用cURL从URL保存图像
  12. SpringBoot项目中获取yml文件的属性时实体属性类出现Spring Boot Configuration Annotation Processor not found in classpath
  13. 直线分割平面问题(数学归纳法)
  14. 筛选DataTable数据的方法
  15. unity3d开发微信小游戏2
  16. JavaScript统计图表插件 Echarts
  17. html比较长的单词不自动换行,HTML+CSS 对于英文单词强制换行但不截断单词的解决办法...
  18. Q-criterion- definition and post-processing
  19. CMGCN 2022ACL
  20. 《设计模式》12.组合模式(结构型)

热门文章

  1. Python之NumPy(axis=0 与axis=1)区分
  2. let const缓存for循环的中间变量
  3. KVM虚拟机共享存储动态迁移与冷迁移
  4. Hook的两个小插曲
  5. 互联网企业安全高级指南3.6 需要自己发明安全机制吗
  6. parasoft Jtest 使用教程:功能配置之查找错误
  7. 转:MAC 下安装PHONEGAP开发环境
  8. python的正则表达式 re
  9. Android中弹出对话框,AlertDialog关键代码
  10. C++的高效从何而来