`
kabike
  • 浏览: 610742 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

flex 移除dataprovider里的项目时,ItemRenderer set方法传值为null

    博客分类:
  • flex
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init(event)">
	<s:layout>
		<s:VerticalLayout/>
	</s:layout>
	<fx:Script>
		<![CDATA[
			import com.crap.vo.Teacher;
			
			import mx.collections.ArrayCollection;
			import mx.events.FlexEvent;
			
			[Bindable]
			private var teacherAC:ArrayCollection=new ArrayCollection();
			
			protected function init(event:FlexEvent):void
			{
				var teacher:Teacher=new Teacher();
				teacher.name="name1";
				teacherAC.addItem(teacher);
				
				teacher=new Teacher();
				teacher.name="name2";
				teacherAC.addItem(teacher);
			}
			
			protected function bar(event:MouseEvent):void
			{
				teacherAC.removeItemAt(0);
			}
			
		]]>
	</fx:Script>
	<s:Button click="bar(event)" label="abc"/>
	<s:DataGroup dataProvider="{teacherAC}">
		<s:itemRenderer>
			<fx:Component>
				<s:ItemRenderer>
					<fx:Script>
						<![CDATA[
							public override function set data(data:Object):void{
								trace(data);
							}
						]]>
					</fx:Script>
				</s:ItemRenderer>
			</fx:Component>
		</s:itemRenderer>
	</s:DataGroup>
</s:Application>


上面代码中,当点击了按钮以后,DataGroup的dataProvider的ArrayCollection少了一个项目,这样会触发DataGroup的itemRemoved方法,
里面有

if (oldRenderer is IDataRenderer && oldRenderer !== item)
            IDataRenderer(oldRenderer).data = null;
           
这样就是向ItemRenderer的data setter中传了一个null,不注意的情况下,很容易抛空指针异常.
分享到:
评论

相关推荐

    Flex itemRenderer的详细教程

    ### Flex ItemRenderer 的详细教程 #### 一、ItemRenderer 概述 在 Flex 开发中,ItemRenderer 是一种非常强大的工具,它允许开发者...掌握 ItemRenderer 的使用方法将大大提高 Flex 应用程序的灵活性和功能多样性。

    Flex手机项目自定义List的ItemRenderer

    在Flex手机项目开发中,创建自定义的List组件ItemRenderer是一项常见的需求,目的是为了提供更加丰富和个性化的显示效果。本文将深入探讨如何利用IconItemRenderer来实现这一目标,同时结合具体的实例,介绍两种不同...

    flex4做的itemrenderer呈现器

    在Flex4中,ItemRenderer是一种强大的工具,用于自定义数据Grid、List或其他数据绑定组件中的项显示方式。本文将深入探讨如何使用Flex4创建一个ItemRenderer,以实现类似雅虎聊天界面的效果,并介绍相关的核心概念和...

    Flex项呈示器ItemRenderer

    本文将深入探讨Flex项呈示器(ItemRenderer)的概念、使用方法,以及如何根据需求定制它来展示用户信息,如头像和等级。 ## 一、Flex项呈示器(ItemRenderer)简介 Flex项呈示器是Adobe Flex框架中的一个组件,其...

    理解_Flex_itemRenderer.pdf

    通过示例,读者可以看到如何在MXML标记中直接嵌入itemRenderer,以及如何为数据组件指定dataProvider属性来绑定数据源。 最后,作者强调了深入理解itemRenderer的重要性,特别是它们在Flex框架中的工作原理,以便...

    Flex中itemRenderer的使用简介

    Flex会重用ItemRenderers,所以需要在`set data()`方法中正确地更新UI,而不是在构造函数中。此外,避免在ItemRenderer中使用不必要的计算或重渲染操作。 6. **使用vvList.mxml**: 虽然没有提供`vvList.mxml`的...

    理解 Flex_itemRenderer

    Flex_itemRenderer 为 Flex 应用提供了强大的数据展示能力。通过合理利用内联 renderer 和外部 renderer,结合 Flex 的 renderer 复用机制,开发者可以创建既美观又高效的用户界面。此外,根据数据动态调整 renderer...

    flex itemRenderer 渲染机制的概念和使用

    在Flex应用中,特别是在处理数据集如ArrayCollection时,我们常常需要以不同的方式展示每个项目,例如图片、文本或者更复杂的组件。itemRenderer就提供了这样的功能,让我们能够根据数据动态地创建和定制视图。 ###...

    flex itemRenderer深入学习--flex相册例子

    在Flex中,每个数据项都会被渲染成一个ItemRenderer实例,这样我们可以为每个项目定制不同的视觉效果。 在我们的相册例子中,ItemRenderer可能包含以下元素: 1. 图片显示:我们可能会使用mx.controls.Image或...

    flex as actionscript datagrid 背景色 flash itemRenderer script iframe overrider 跳转到别的页面

    综上所述,这个项目可能涉及到一个使用Flex DataGrid展示节目或课程播表的应用,播表数据存储在XML文件中,每个节目单元格通过自定义的ItemRenderer展现,可能包含Flash播放器,并且可以通过点击单元格触发页面跳转...

    flex中的渲染器(itemrenderer)

    flex中经常会使用到渲染器,这里简要介绍一下渲染器的一些知识

    Flex ItemRenderer

    Flex ItemRenderer 是Adobe Flex框架中的一个重要概念,它主要用于自定义MX和Spark组件列表视图(如List、DataGrid等)中的每一项显示样式。ItemRenderer允许开发者根据数据项的内容个性化呈现,提供更丰富的用户...

    Flex 如何得到itemRenderer里面的内容

    ### Flex 中获取 ItemRenderer 内容的方法 在 Flex 开发中,经常需要处理列表或集合中的数据,并且根据这些数据创建对应的用户界面元素。ItemRenderer 是一个非常重要的概念,在 Flex 中用于表示列表项的视觉外观。...

    Flex内联itemRenderer

    下面是一个简单的内联itemRenderer的示例,展示如何在Flex项目中创建和使用它: ```xml &lt;!-- 主应用MXML文件 --&gt; &lt;mx:List dataProvider="{myDataProvider}"&gt; &lt;mx:itemRenderer&gt; &lt;s:Label text="{data....

    flex+as3项目渲染器的使用

    在Flex和AS3开发中,项目渲染器(ItemRenderer)是一个关键的概念,它允许开发者自定义数据项在UI组件中的显示方式。项目渲染器通常用于数据网格、列表或其他可滚动的容器,使得数据显示更加丰富和交互性更强。下面...

    FLEX中下拉框嵌入Checkbox

    但是,我们可以通过自定义数据提供者(dataProvider)和itemRenderer来改变这一行为,使每个选项显示为一个包含Checkbox的复合组件。 1. 创建自定义ItemRenderer: 自定义ItemRenderer是实现下拉框中嵌入Checkbox...

    FLEX4实践—动态生成DataGrid及应用客户化itemRenderer.doc

    首先,`DataGrid`组件是Flex中用于展示表格数据的标准组件,通常与数据提供器(`dataProvider`)一起使用。在这个例子中,`gridProvider`被用来设置`DataGrid`的数据源,而`gridColumns`则定义了列的信息。在Flex4中...

    Flex手机项目代码

    Flex手机项目代码是一个基于Adobe Flex技术的移动应用开发实例,主要展示了如何利用Flex来构建一个包含数据列表、参数传递和动态组件创建功能的手机应用程序。在这个项目中,开发者"Wanger"使用了Flex SDK,可能结合...

    Flex 定制ItemRender详细解释

    - 重写`set data(value:Object)`方法,根据传入的数据对象更新渲染器的显示。 3. **使用自定义ItemRenderer**: - 在需要自定义渲染的列表或组合框组件上设置`itemRenderer`属性,指向自定义ItemRenderer类。 - ...

    Flex动态创建DataGrid设置图片

    &lt;mx:DataGrid id="dg" dataProvider="{dataProvider}" cellFactory="{new ImageCellFactory()}"&gt; &lt;mx:GridColumn dataField="name"/&gt; 图片" itemRenderer="{CustomItemRenderer}"/&gt; ``` 在提供的压缩包文件...

Global site tag (gtag.js) - Google Analytics