<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    You smiled and talked to me of nothing and I felt that for this I had been waiting long.

    The trees come up to my window like the yearning voice of the dumb earth.

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      19 Posts :: 10 Stories :: 25 Comments :: 0 Trackbacks
    需求背景
    通過樹形菜單加載多個不同的module。
    問題現象:module頁面存在拖動,Popup,Alert或者colorpicker出現錯誤信息:
    TypeError: Error #1034: 強制轉換類型失敗:無法將 mx.managers::PopUpManagerImpl@7155ac1 轉換為 mx.managers.IPopUpManager。
    解決方案
    在Application加入如下代碼引用:
        <mx:Script>
            
    <![CDATA[
                
    import mx.managers.DragManager;
                
    import mx.managers.IPopUpManager;            
                
                
    /* Create dummy variables. */
                
    //避免出現:無法將 mx.managers::PopUpManagerImpl@52a09a1 轉換為 mx.managers.IPopUpManager 錯誤
                private var dragManager : DragManager;
                
    private var popUpManager : IPopUpManager;
              
                //process....

            ]]>
        </mx:Script>
    問題原因分析
    屬于ModuleLoader shared code problem.
    當Module中使用managers時(如PopUpManager,DragManager, HistoryManager等)則可能出現這個問題(當application里在loader之前沒有引入這些manager的引用時)。
    manager的方法是靜態方法,整個應用程序中創建了一個該manager接口的singleton實例,但module僅在自己的Application domain中使用該單例, 當多個module使用同一個單例manager且main application沒有使用時,就會出現這個空對象引用問題:第一個引入某manager的module不能將該manager接口的singleton跟其他module共享,其他module調用該Manager的方法時,應用程序不會再創建該manager接口的實例,這個module就無法引用到該manager接口的實例,就出現了空對象引用問題.
    參考資料:Flex sdk源碼。

    目前在Application創建了些Application范圍內沒有使用到的"木偶變量",從代碼可讀性上來說不是很好。有其他比較好的解決方案的同學麻煩請告之下,:)


    posted on 2008-11-22 17:33 鉤子 閱讀(10515) 評論(1)  編輯  收藏 所屬分類: jeeria工作筆記

    Feedback

    # re: FLEX:multiple moduleloader occur #1034 error 2008-11-24 10:14 鉤子
    同事推薦了個更好的辦法:
    在ModuleLoader 的creationComplete方法中加入如下代碼:
    moduleLoader.applicationDomain = ApplicationDomain.currentDomain;
    就可以在Application里切換多個module而不需要在Application里明文引用單例manager聲明。比我上面所說的方法更好的能解決問題而且,代碼可讀性更好。
    另外,推薦在moduleloader做切換的時候,加上:
    moduleLoader.unloadModule再做moduleLoader.loadModule().

    在這里做個小記。  回復  更多評論
      

    主站蜘蛛池模板: 日韩a级毛片免费视频| 免费人成无码大片在线观看| 精品一区二区三区高清免费观看 | 亚洲国产一区视频| 日日麻批免费40分钟日本的| 国产精品偷伦视频免费观看了| 亚洲av无码一区二区三区观看| 亚洲AV无码日韩AV无码导航 | 日本亚洲欧美色视频在线播放 | 免费视频精品一区二区三区| 国产亚洲男人的天堂在线观看 | 玖玖在线免费视频| 亚州**色毛片免费观看| 亚洲啪AV永久无码精品放毛片| 久久久久亚洲av无码专区蜜芽| 亚洲中文字幕无码爆乳av中文 | 亚洲一级毛片免费观看| 亚洲国产精品久久久久| 亚洲综合伊人久久大杳蕉| 全部免费a级毛片| 日韩免费福利视频| 最近中文字幕mv免费高清电影 | 亚洲视频免费播放| 亚洲AV无码国产精品色午友在线| 亚洲中文字幕视频国产| 亚洲精品无码久久毛片| 免费国产成人高清在线观看麻豆 | 亚洲av午夜电影在线观看| 久久亚洲最大成人网4438| 亚洲毛片免费视频| 亚洲国产成a人v在线| 亚洲色图.com| 亚洲精品中文字幕乱码| 久久精品亚洲中文字幕无码麻豆| 亚洲产国偷V产偷V自拍色戒| 国产亚洲婷婷香蕉久久精品| 亚洲乱码国产一区三区| 亚洲人成网亚洲欧洲无码久久| 亚洲人成精品久久久久| 久久精品亚洲一区二区| 亚洲精品中文字幕无码蜜桃|