SystemManager:
SystemManager是Flex應用的主控者,它控制著應用視窗、Application執行個體、快顯視窗和cursors,並管理者ApplicationDomain中的類。Systemmanager是FlashPlayer執行個體化的第一個類,它儲存了主視窗的大小和位置資訊,儲存其子組件,比如浮動快顯視窗和模態視窗的痕迹。通過SystemManager可以獲得內嵌字型、式樣和document對象。
Flex中以Application標記為根的MXML檔案在編譯後會產生SWF檔案,這種Flex應用的SWF檔案只包含兩幀。
【第一幀】包含SystemManager、Preloader、DownloadProgressBar和少量的工具類,這個幀是輕量的,所以他幾乎可以立即下載運行。只要接收到第一幀內足夠的資料,就會執行個體化SystemManager,由它來建立Preloader。然後建立DownloadProgressBar,用來顯示應用載入的進度指示。
【第二幀】包含應用代碼和內嵌資源。
當第一幀中的SystemManager對象初始化完畢後,會建立一個進度條,用來顯示兩個不同階段的資訊:資料下載階段和資料初始化階段。
Preloader:
Preloader就是這樣一個類,它負責監聽Application,RSL和模組的下載和初始化進程的狀態,包括對下載的監聽,並根據下載的狀態產生相應的初始化進程事件。
【FlexEvent.INIT_PROGRESS】
【FlexEvent.INIT_COMPLETE】
【FlexEvent.IPROGRESS】
【FlexEvent.COMPLETE】
Preloader雖然發布初始化事件,但是並不直接顯示初始化過程,而是把顯示工作交給一個顯示類來完成,我們稱這個類為載入顯示類。SystemManager在自己的initialize方法中會調用Preloader的initialize方法。並把顯示類的類名作為參數傳遞給Preloader。在預設情況下,這個類被SystemManager指定為DownloadProgressBar(預設進度條);
Application的作用和主要屬性:
pageTitle:網頁標題(這個屬性設定的內容將顯示到瀏覽器的標題列中)。
preloader:它設定的內容是Application預先載入過程顯示類的類名,如果不設定這個屬性,它的預設值就是mx.preloaders.DownloadProgressBar。
usePreloader: 這個屬性是用來控制是否顯示預先載入過程。預先載入過程是不可能跳過的,能夠控制的只能是是否顯示這個過程,這個屬性的預設值是true,如果沒有特殊情況,建議保留預設值。
application:這是Application類的一個靜態屬性,它指向最上層的應用。在一個Application中,所有組件都可以通過parentApplication來擷取自己的父應用。
parentApplication屬性指向的是組件最近的最直接的父應用,而Application.application則是最頂端的應用。
url:這個屬性指出當前Application是哪個SWF載入的環境中,或者說SWF檔案被載入的完整路徑,包括網域名稱+網站名+SWF檔案在網站中的路徑+參數+其他。其中的“其他”是指Flash Player增加的一些額外參數。SWF的載入路徑對公司專屬應用程式來說是一個很有用的屬性,可以通過應用路徑來控制許可權或者希望得到伺服器的地址和網站的名字,或者擷取頁面參數。
parameters:就是網頁中的參數。