加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【原】TypeError: Error #1009 错误原因以及如何处理

(2011-08-03 12:28:53)
标签:

typeerror

error

1009

layoutchrome

popupmanager

centerpopup

flex

it

分类: Flex/Flash
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at mx.containers::Panel/layoutChrome()
at mx.core::Container/updateDisplayList()
at mx.containers::Panel/updateDisplayList()
at mx.core::UIComponent/validateDisplayList()
at mx.core::Container/validateDisplayList()
at mx.managers::LayoutManager/validateClient()
at mx.core::UIComponent/validateNow()
at mx.managers::PopUpManagerImpl/centerPopUp()
at mx.managers::PopUpManager$/centerPopUp()
at salaryEdit/showHeadEdit()[D:\javatools\workspaces\cn.tsoft.drp.salary.client.flex\flex\salaryEdit.mxml:30]
at HeaderRenderer/onClick()[D:\javatools\workspaces\cn.tsoft.drp.salary.client.flex\flex\HeaderRenderer.mxml:7]
at HeaderRenderer/___HeaderRenderer_Canvas1_click()[D:\javatools\workspaces\cn.tsoft.drp.salary.client.flex\flex\HeaderRenderer.mxml:2] 

在弹出框的时候,调用PopUpManager.centerPopUp(ui)这个方法的时候会报上面的错。
报出上面错误的页面上会出现两种情况:
第一种:弹出框在弹出的时候有很卡的感觉,并且页面上会出现透明加边框的样子
第二种:弹出框根本弹出出来,页面会出现弹出框的边框卡屏现象,并且只有边框里面全部是透明的。

这个错误是因为调用居中的时候会重新布局,导致内部处理这个layoutChrome()方法的时候出错。
是因为弹出的控件在application中找不到对应的实力。
我们在开发的时候经常会分很多工程来做,但是application只会有一个,所以别的都是用model的方式加载进来的。就是因为这种情况,弹出的组建可能没有跟application在同一个工程导致,弹出的时候错上面的错误。

解决的方法就是,将需要弹出的组建可以抽取到一个swc工程中,在application工程中引用这个swc,别的工程的model中也引用application所在工程中的libs/*.swc来操作,这样就可以解决上面的问题。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有