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

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

    目前在Application創(chuàng)建了些Application范圍內(nèi)沒有使用到的"木偶變量",從代碼可讀性上來(lái)說(shuō)不是很好。有其他比較好的解決方案的同學(xué)麻煩請(qǐng)告之下,:)


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

    Feedback

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

    在這里做個(gè)小記。  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 日本三级在线观看免费| 美女羞羞视频免费网站| 1000部拍拍拍18勿入免费视频下载 | 日本精品人妻无码免费大全| 亚洲经典在线观看| 精品女同一区二区三区免费站| 中文字幕亚洲色图| 亚洲一区二区三区免费观看| 亚洲明星合成图综合区在线| 亚洲AV中文无码乱人伦下载| 亚洲无码一区二区三区| 国产vA免费精品高清在线观看| 免费在线黄色网址| 91亚洲国产成人久久精品网址| 激情吃奶吻胸免费视频xxxx| 亚洲国产成人爱av在线播放 | 日本高清不卡aⅴ免费网站| 亚洲国产另类久久久精品黑人 | 成人性生交大片免费看中文| 亚洲AV永久精品爱情岛论坛| 18女人毛片水真多免费| 亚洲入口无毒网址你懂的| 中国黄色免费网站| 日本一区二区三区日本免费| 九九免费久久这里有精品23| 亚洲精品无码午夜福利中文字幕 | 免费jlzzjlzz在线播放视频| 国产精品高清免费网站| 亚洲国产精品lv| caoporn成人免费公开| 亚洲AV综合色区无码一区| 日韩在线播放全免费| 精品无码专区亚洲| 成年大片免费视频| 一本久久免费视频| 亚洲精品视频在线| 国产精品成人无码免费| 久久亚洲精品国产亚洲老地址 | 久久99国产综合精品免费| 日本亚洲成高清一区二区三区| 蜜桃AV无码免费看永久|