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.pswp.cn/news/276417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276417.shtml
英文地址,請注明出處:http://en.pswp.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 閃亮…