【问题标题】:Manual drag-drop operations in FlexFlex 中的手动拖放操作
【发布时间】:2010-11-24 09:30:14
【问题描述】:

这是一个由两部分组成的问题:

  1. 我在 Flex 中实现了几个不规则的拖放操作(例如 DataGrid ItemRenderer into Tree)。我的偏好是修改 DragManager 操作以满足我的需要,事实上使用 DragManager 可以让我做我需要的一切,但我在性能方面遇到了严重的问题。例如,在多列 DataGrid 上拖动任何内容,无论是使用 DragManager.doDrag 启动拖动,还是仅使用本机 ListBase 拖放功能,都会减慢拖动移动到爬行的速度。即使 DataGrid 被禁用/不侦听任何移动/拖动事件,也会发生这种情况。另一方面,如果拖动是通过在 Sprite 上调用 .startDrag() 来启动的,则拖动是平滑的,并且在 DataGrids 和其他所有内容上表现出色。所以 A 部分是:.startDrag() 操作运行得如此出色,而通过 DragManager.doDrag 启动的拖动在某些组件上受到如此严重的影响,是否有原因?

  2. 如果解决方案确实是使用 .startDrag() 处理拖放,我将如何确定释放拖动时鼠标位于哪个组件上?在我的示例中,我拖动的对象被带到显示列表的顶层,因此在舞台坐标中移动。 mouseMove,mouseOver 事件不会在我拖动的组件上触发,因为鼠标一直在拖动的组件上,所以我需要某种 stage.coordinate -> visibleComponentAtThatCoordinate 转换。对此有何想法?

【问题讨论】:

    标签: apache-flex drag-and-drop


    【解决方案1】:

    好久没有回答了,是吗?这是我的几分钱:

    A) 我在我的机器上遇到了同样的缓慢(拖动有时会冻结长达一秒钟),但是,相同的代码在办公室里其他人的 PC 上运行非常顺利。

    B)也许这个讨论,尤其是底部的代码有帮助 Flex Datagrid - how to obtain item for mouse x/y coordinates?

    【讨论】:

    • 感谢汤姆的回复-老实说,我已经很久没说我是怎么处理这个问题了..
    猜你喜欢
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多