文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Flex:Module里包含TabNavigator时,卸载再加载时出现错误

Flex:Module里包含TabNavigator时,卸载再加载时出现错误

时间:2010-09-15  来源:Asharp

     在Module里包含TabNavigator时,卸载再加载会出现错误,这是因为Module的共享代码问题,当Moduel中使用Managers(如PopUpManager、DragManager,HistoryManager)时,容易出现这个问题,Manager的方法都是静态方法,整个应用程序中创建了一个该Manager接口的单列Singleton,但Module仅在自己的Application domain中使用该Singleton,当多个Moduel使用同一个Singleton且Mian Application没有使用是,就会出现这个空对象引用的问题:首先引入某Manager的Module不能将该Manager接口的Singleton跟其他Module共享,其他Module调用该Manager的方法时,应用程序不会再创建该Manager接口的实例,这个Module就无法引用到该Manager接口的实例,就出现了空对象引用问题。

     默认情况下,Accordion和TabNavigator的 historyManagementEnabled =true;而ViewStack的historyManagementEnabled = false; 所以使用TabNavigator和Accordion时要注意HistoryManager的共享代码问题。另,仅一个Module使用HistoryManager时,卸载之后又加载该Module也会出现该问题,说明第二次加载时相当于一个新的module了。

     解决方法:

     在Main Application 中引入相关Manager,可以通过在Main Application中申明Manager的引用即可,如:
     import mx.managers.HistoryManager;
     var historyManager:HistoryManager;

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载