Flex中的editedItemPosition

本文介绍了一种在Flash中实现List控件双击编辑的方法。通过设置editable属性及利用itemEditBegin事件来激活编辑器,同时展示了具体的ActionScript代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想实现一个list双击编辑其项目的效果。查了一下帮助文档。看到一个createItemEditor() createItemEditor():
使用由 itemEditor 属性指定的编辑器在 editedItemPosition 为项目渲染器创建项目编辑器。
此方法将编辑器实例设置为 itemEditorInstance 属性。
您只能从 itemEditBegin 事件的事件侦听器中调用此方法。若要在其它时间创建编辑器,请设置 editedItemPosition 属性以生成 itemEditBegin 事件。

在ListEvent.ITEM_DOUBLE_CLICK监听函数中试了几次,没有实现效果,注意到上面有句话“若要在其它时间创建编辑器,请设置 editedItemPosition 属性以生成 itemEditBegin 事件。”于是将注意力转移到editedItemPosition上。

帮助文档中是这么解释editedItemPosition属性的:

正在编辑的数据提供程序项目的项目渲染器的列索引和行索引(如果有)。
此 Object 包含 columnIndex 和 rowIndex 这两个字段,分别是项目的从零开始的列索引和项目索引。对于 List 控件,columnIndex 属性始终为 0;例如:{columnIndex:0, rowIndex:3}。
设置此属性会将项目滚动到视图中,并会调度 itemEditBegin 事件以打开指定项目上的项目编辑器。
此属性可用作数据绑定的源。

所以就在DOUBLE_CLICK中指定了该属性。并在这之前打开了list的editable属性,在编辑完之后(ListEvent.ITEM_EDIT_END)将editable设回为false 。这样就实现了双击编辑list的效果。

具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:List id="list" x="146" y="90" width="225" height="250" labelField="name" doubleClickEnabled="true">
<mx:dataProvider>
<mx:Array>
<mx:Object name="tian" />
<mx:Object name="zhang" />
<mx:Object name="diao" />
<mx:Object name="zeng" />
</mx:Array>
</mx:dataProvider>
</mx:List>
<mx:Script>
<![CDATA[
import mx.events.ListEvent;
private function init():void list.addEventListener(ListEvent.ITEM_DOUBLE_CLICK , onDoubleClick ) ;
list.addEventListener(ListEvent.ITEM_EDIT_END , onEnd ) ;
private function onDoubleClick(event:ListEvent):void list.editable = true ;
var editedPosition:Object = new Object() ;
editedPosition.columnIndex = event.columnIndex ;
editedPosition.rowIndex = event.rowIndex ;
list.editedItemPosition = editedPosition ;
private function onEnd(event:ListEvent):void list.editable = false ; ]]>
</mx:Script>
</mx:WindowedApplication>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值