flex4使用itemrenderer后报Error #1009

昨天改ABPlayer的时候想要加个屏蔽效果,在网上找了找知道应该用itemrenderer,于是我用flash builder4自带的提示加入了一个itemrenderer


创建后默认代码是这样的

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
				xmlns:s="library://ns.adobe.com/flex/spark" 
				xmlns:mx="library://ns.adobe.com/flex/mx" 
				autoDrawBackground="true">
	
	<s:Label text="{data}"/>
	
</s:ItemRenderer>



但是之后就出问题了,运行的时候卡在载入flash条的那里,于是我不得不去adobe官网下了个debugger版的flash来调试

调试时发现报错为1009

TypeError: Error #1009: 无法访问空对象引用的属性或方法。
	at spark.components::Group/addElement()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1342]
	at spark.components.gridClasses::GridLayout/createTypicalItemRenderer()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\gridClasses\GridLayout.as:748]
	at spark.components.gridClasses::GridLayout/updateTypicalCellSizes()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\gridClasses\GridLayout.as:883]
	at spark.components.gridClasses::GridLayout/measure()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\gridClasses\GridLayout.as:444]
	at spark.components.supportClasses::GroupBase/measure()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\supportClasses\GroupBase.as:1148]
	at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::measureSizes()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:8506]
	at mx.core::UIComponent/validateSize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:8430]
	at spark.components::Group/validateSize()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1012]
	at mx.managers::LayoutManager/validateSize()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:665]
	at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:792]
	at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1180]

完全不知道是怎么回事,跟踪也跟踪不出什么问题来,只知道是初始化创建renderer时出错了,于是从昨天下午到今天早上都在查这个错误,把renderer改了各种各样的写法都无果。不管是国内的论坛还是官网的论坛都看过了,虽然也有同样的错误号,但和我的问题也不是一回事。

后来看了http://stackoverflow.com/questions/6587477/custom-coloring-error-in-flex-4-5-mobile受启发改了一下render类型,尝试了LabelItemRender,DefaultItemRender直到换成DefaultDataGridItemRender终于对了。

package
{
	import spark.skins.spark.DefaultGridItemRenderer;
	
	public class rendererd extends DefaultGridItemRenderer
	{
		public function rendererd()
		{
			super();
		}
	}
}

但是到最后也不知道为什么默认那样的ItemRenderer不行。不过既然已经能用了,那就先把详细情况放在这里以后再说吧。

总之,加载flash的时候报这个错误大概是因为组件的类型不符导致在类型转换的时候失败,解决方案大概是换一种合适的组件就好了。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值