Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Flex ItemRenderer:渲染拖动的源项_Actionscript 3_Apache Flex_Itemrenderer - Fatal编程技术网

Actionscript 3 Flex ItemRenderer:渲染拖动的源项

Actionscript 3 Flex ItemRenderer:渲染拖动的源项,actionscript-3,apache-flex,itemrenderer,Actionscript 3,Apache Flex,Itemrenderer,在默认实现中,当从列表中拖动某个项目或在列表中拖动某个项目时,该项目在拖动过程中显示为选中状态(在拖动状态下,一个单独的项目渲染器显示为拖动图像),因此: 呈现为: 有没有一种简单的方法可以在拖动期间将拖动源的状态(红色,选中的“条”)更改为“选中”以外的状态 在理想情况下,我会将color.dragSource=“0x0000FF”添加到上面的项目渲染器代码中,选中时“Bar”将为红色,但一旦开始拖动,“Bar”将为蓝色。拖动完成后,它将恢复为红色(或者,如果不再选中,则恢复为黑色)。如

在默认实现中,当从列表中拖动某个项目或在列表中拖动某个项目时,该项目在拖动过程中显示为选中状态(在
拖动状态下,一个单独的项目渲染器显示为拖动图像),因此:


呈现为:

有没有一种简单的方法可以在拖动期间将拖动源的状态(红色,选中的“条”)更改为“选中”以外的状态


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

如果在拖动开始时使用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;
}

私有变量dragIndex:int;
私有函数startDrag(e:事件):无效
{
dragIndex=myList.selectedIndex;
myList.selectedIndex=-1;
}
私有函数停止拖动(e:事件):无效
{
myList.selectedIndex=绘图索引;
}

列表不应该有办法更改所选项目的视觉显示吗?可能是通过使用样式。我希望在“选定”和“当前正在拖动”之间有区别——有没有明确的方法来区分?我不知道。。假设列表只允许单个选择;您可以动态调整所选项目的样式。最好先将所选索引存储在var中,这样在拖动停止时您就可以恢复所选内容。很好的调用。向上投票并添加到上述示例代码中。
<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;
}