关于itemEditor

知识点总结:

1、createItemEditor () 方法

public function createItemEditor(colIndex:int, rowIndex:int):void

使用由 itemEditor 属性指定的编辑器在 editedItemPosition 为项目渲染器创建项目编辑器。
此方法将编辑器实例设置为 itemEditorInstance 属性。
您只能从 itemEditBegin 事件的事件侦听器中调用此方法。若要在其它时间创建编辑器,请设置 editedItemPosition 属性以生成 itemEditBegin 事件。

参数 colIndex:int — 列索引。对于 List 控件,Flex 将此属性的值设置为 0。
rowIndex:int — 要编辑的项目的数据提供程序中的索引。

2、editedItemPosition 属性
editedItemPosition:Object []

正在编辑的数据提供程序项目的项目渲染器的列索引和行索引(如果有)。
此 Object 包含 columnIndex 和 rowIndex 这两个字段,分别是项目的从零开始的列索引和项目索引。对于 List 控件,columnIndex 属性始终为 0;例如:{columnIndex:0, rowIndex:3}。

设置此属性会将项目滚动到视图中,并会调度 itemEditBegin 事件以打开指定项目上的项目编辑器。 [color=darkred](也就是说一旦设置editedItemPosition 的值它就会自动调度createItemEditor () 方法 )[/color]此属性可用作数据绑定的源。

3、如何设置editedItemPosition的值,示例:List控件.editedItemPosition=
{rowIndex:Number(menuBarTree.selectedIndex),columnIndex:Number(0)};

4、对于FLEX帮助Example: Modifying data passed to or received from an item editor 中的createItemEditor ()尚有疑问,先搁着~ :oops:

所以,如果想通过鼠标的方式来打开项目编辑器就可以通过设置editedItemPosition属性来实现。

示例代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()" >
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.ListEvent;
import flash.events.Event;
public var myArray:Array = ["AL", "AK", "AR"];
var listData:ArrayCollection=new ArrayCollection(myArray);
private function init():void
{
var contextMenu1:ContextMenu=new ContextMenu();//创建右键菜单
contextMenu1.hideBuiltInItems();//隐藏内置菜单
var renameMenuItem:ContextMenuItem=new ContextMenuItem("重命名");
contextMenu1.customItems.push(renameMenuItem);
renameMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT ,renameHandler);
myList.contextMenu=contextMenu1;
}
private function renameHandler(e:ContextMenuEvent):void
{
myList.editable=true;
myList.editedItemPosition = { rowIndex:Number(myList.selectedIndex), columnIndex:Number(0) };
}
private function itemEndHandler(e:Event):void
{
myList.editable=false;
}

]]>
</mx:Script>
<mx:List id="myList" dataProvider="{listData}" x="200" y="100" width="180" height="322" itemEditEnd="{itemEndHandler(event)}"/>
</mx:Application>


看了两天的项目渲染之类的~~曾经还想过自己重新来写一个项目编辑器,是啊,看到那些正规的代码心里有种踊跃一试的冲动,无奈啊,水平烂得不能再烂了~~决定暂时放弃修改程序源代码的想法~~试了两次,可结果都很可笑,不但把自己搞得云里雾里严重打击了自己的自信心,最郁闷的是,到最后实现自己想的的效果往往就只是十几行,甚至是一两行代码~~想一步登天说的就是我这种人~~

有时候想想自己是不是太笨了,两天的时间才解决这么个问题~~如果不是昨晚找到了FLEX的中文帮助,我估计啊没个三五十天这个问题还是不能解决~~~~英文英文~~NND~~今天糗死了~“To create an editor at other times, set the editedItemPosition property to generate the itemEditBegin event.
”我对它的理解居然是editedItemPosition 属性产生itemEditBegin事件,还死命地在想要怎么弄,唉~~~无语,先不说这句话不是这么翻译的,可有见过editedItemPosition 属性产生itemEditBegin事件的吗?有这种说法吗?这就是代码写得太少了的有力证据~~~

好了,不说了,吃面去~~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值