云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Flex應用啟動背后的故事

          Posted on 2007-04-17 17:47 云自無心水自閑 閱讀(2792) 評論(3)  編輯  收藏 所屬分類: Flex心得體會Flex2

          首先介紹一下SystemManager. SystemManager是Flex應用的主控者, 它控制著應用窗口, Application實例, 彈出窗口, cursors, 并管理著ApplicationDomain中的類. SystemManager是FlashPlayer實例化的第一個類, 它存儲了主應用窗口的大小和位置信息, 保存其子組件比如:浮動彈出窗口和模態窗口的痕跡. 通過SystemManager可以獲得內嵌字體,樣式和document對象.
          自定義的可視化組件(UIComponent的子類)只有在調用過addChild()后, 才會有一個SystemManager賦給他們, 之前是Null. 所以在自定義可視化組件的構造函數中不要使用SystemManager.

          通常, Application對象創建時, 發生如下事件:
          1. 實例化Application對象
          2. 初始化Application.systemManager
          3. Application在初始化過程之前, 派發預初始化事件.
          4. 調用createChild(). 此時, 所有應用組件被創建, 所有組件的createChild()被調用.
          5. Application派發初始化事件, 表明所有的組件初始化完畢.
          6. 派發creationComplete事件
          7. Application對象添加到顯示列表中
          8. 派發applicationComplete事件

          大多數情況下, 我們使用<mx:Application>來創建application對象, 但如果使用ActionScript來創建的話, 那么建議不要在application的構造函數中創建組件, 推薦在crateChildren函數中, 主要是從性能方面考慮.

          Flash包含的是一個時間線上的多個幀, 而Flex的SWF只包含2個幀. SystemManager, Preloader, DownloadProgressBar和少量工具類都在第一幀, 剩下的包括應用代碼/ 內嵌資源全都在第二幀中. 當Flash Player下載下載SWF時, 只要接收到第一幀內足夠的數據, 就會實例化SystemManager, 由它來創建Preloader, 然后創建DownloadProgressBar, 這兩個對象會察看剩余字節的傳輸過程. 當第一幀的所有字節傳輸完畢后, SystemManager發送enterFrame到第二幀, 然后是其他事件. 最后Application對象派發applicationComplete事件.




          評論

          # re: Flex應用啟動背后的故事  回復  更多評論   

          2007-04-18 15:15 by vkt
          學習!

          # re: Flex應用啟動背后的故事  回復  更多評論   

          2007-11-02 19:51 by 祎恬凡
          老哥,我似乎在幾天早上讀到了這個的英文版

          # re: Flex應用啟動背后的故事  回復  更多評論   

          2007-11-02 19:55 by 祎恬凡
          in general, when the application object is created, the following steps are being performed:
          1. instantiation ofo the application object begins
          2.initialization of the application.systemmanager property
          3.the application dispathces the pre_initalize event.....

          enentually ,the application object dispathces the application_complete event
          主站蜘蛛池模板: 天水市| 达孜县| 固安县| 太康县| 景谷| 楚雄市| 阜平县| 余江县| 云浮市| 威远县| 阿拉善盟| 青州市| 丘北县| 施秉县| 视频| 呼图壁县| 万荣县| 丹凤县| 大理市| 犍为县| 正阳县| 岳西县| 景宁| 临泽县| 修武县| 长葛市| 五寨县| 南雄市| 清流县| 平武县| 崇仁县| 长武县| 资溪县| 水富县| 阿拉善左旗| 万荣县| 周口市| 灵川县| 呈贡县| 广南县| 文山县|