快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记娱乐下载官方平台:TypeError Error 1034 Type Coercion failed cannot convert



近来发清楚明了一个flex模块加载触发的dragManager的差错,在主application里面放上一个moduleLoader用来加载模块,放 置了两个按钮来节制重复加载,按下第一个按钮加载模块,按下别的一个按钮卸载模块,加载应用moduleLoader的load措施,卸载应用 unloadModule()措施,模块里放置了一个datagrid,测试历程中发明,当从新加载模块,也便是履行了一次unloadModule措施然后按第一个按钮从新加载模块,这个时刻假如去点击datagrid里面任何一行都邑呈现:

TypeError: Error #1034: Type Coercion failed: cannot convert

mx.managers::DragManagerImpl@12631a61 转换和记娱乐下载官方平台为 mx.managers.IDragManager

这样的差错。在google找了好久,终于在一个国外的论坛上发清楚明了办理的法子,很简单便是在主利用里面加上

import mx.managers.DragManager;

private var dragManager:DragManager;

这两句就可以办理问题。至于为什么会呈现这样的环境,在网上找到别人的解释,以下是转自google一个flex 评论争论组别人的回答(http: //groups.google.com/group/riadev/tree/browse_frm/month/2007-05/5eeebf64e4926c45? rnum=11&_done=%2Fgroup%2Friadev%2Fbrowse_frm%2Fmonth%2F2007和记娱乐下载官方平台-05%3F)

QUOTE:

这属于Module的共享代码问题(shared code),

当Module中应用managers时(如PopUpManager,DragManager, HistoryManager)轻易呈现这个问题,

manager的措施都是静态措施,全部利用法度榜样中创建了一个该manager接口的singleton,

但module仅在自己的Application domain中应用该singleton, 当多个module应用同一个singleton且main

application没有应用时,就会呈现这个空工具引用问题:首先引入某manager的module不能将该manager接口的singleton跟其

他module共享,其他module调用该Manager的措施时,利用法度榜样不会再创建该manager接口的实例,这个module就无法引用到该manager接口的实例,就和记娱乐下载官方平台呈现了空工具引用问题,可以参考Flex的源码。

默认环境下,Accordion和TabNavigator的 historyManagementEnabled =

true;而ViewStack的historyManagementEnabled = false;

以是应用TabNavigator和记娱乐下载官方平台和Accordion时要留意HistoryManager的共享代码问题。另,仅一个module应用HistoryManager时,卸载之后又加载该module也会呈现该问题,阐明第二次加载时相称于一个新的module了。

一个办理法子:

在main application 中引入相关manager,可以经由过程在mai和记娱乐下载官方平台n application中申明manager的引用即可,如:

import mx.managers.HistoryManager;

var historyManager:HistoryManager;

其他manager类似。

还可以将共享代码作为module加载到main applicaiton的application domain,详细解说可以参考Alex

Harui的ppt:

http://blogs.adobe.com/aharui/presentations/ 下面关于module的presentation, 讲得很具体。不知道有没有别人发过,假如没有盼望对别人有所赞助,嘻嘻

您可能还会对下面的文章感兴趣: