Flex ItemRenderer:渲染拖动的源项

时间:2012-06-05 20:03:48

标签: actionscript-3 flex itemrenderer

当在默认实现中从列表中拖动项目时,它在拖动过程中显示为已选中(并且dragging状态下的单独项目渲染器显示为拖动图像),这样:

<s:ItemRenderer>
    <s:Label text="{data}" color.selected="0xFF0000" color.dragging="0x00FF00" />
</s:ItemRenderer>

呈现为:

ListItemRenderer in normal, selected, and dragging states

是否有一种直接的方法可以在拖动期间将拖动源(红色,选定的“条形”)的状态更改为“已选择”以外的其他内容?

在理想情况下,我会将color.dragSource="0x0000FF"添加到上面的项目渲染器代码中,“Bar”会在选中时显示为红色,但一旦拖动开始就会显示为蓝色。拖动完成后,它将恢复为红色(或者,如果不再选择,则为黑色)。

1 个答案:

答案 0 :(得分:2)

如果在拖动开始时执行了eventListener,将列表中的选定项设置为-1,该怎么办? -1表示不应选择任何内容。

编辑:添加以下代码以支持:

<s:List id="myList" dragStart="startDrag(event)"/>

private var dragIndex:int;

private function startDrag(e:Event):void
{
    dragIndex = myList.selectedIndex;
    myList.selectedIndex = -1;
}

private function stopDrag(e:Event):void
{
    myList.selectedIndex = dragIndex;
}