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;
}