当前位置:  开发笔记 > 编程语言 > 正文

我怎样才能"不接受"Flex中的拖累?

如何解决《我怎样才能"不接受"Flex中的拖累?》经验,为你挑选了1个好方法。

一旦我打电话DragManager.acceptDrag有没有办法"不接受"拖累?假设我有一个可以接受拖放的视图,但仅限于某些区域.一旦用户拖动其中一个区域,我就会调用DragManager.acceptDrag(this)(来自DragEvent.DRAG_OVER处理程序),但如果用户移出该区域,我想将拖动状态更改为不接受并显示DragManager.NONE反馈.但是,无论是呼唤DragManager.acceptDrag(null)还是DragManager.showFeedback(DragManager.NONE)似乎都没有任何效果.一旦我接受了拖动设置反馈类型我似乎无法改变它.

只是为了说清楚:用户应该能够放下的区域不是组件甚至是显示对象,实际上它们只是文本字段文本中的范围(如选择).如果他们是他们自己的组件我可以通过让他们每个人单独接受拖动事件来解决它.我想我可以创建漂浮在文本上的代理组件来模拟它,但如果没有必要,我宁愿不这样做.


我已经设法让它现在在AIR和浏览器中工作,但只能将代理组件放在文本范围之上,你应该能够丢弃东西.这样我得到了正确的反馈,并且在拖动出口处自动取消了下降.

这是关于AIR的D&D最奇怪的事情:

DragManager.doDrag(initiator, source, event, dragImage, offsetX, offsetY);

在基于浏览器的Flex中,offsetX并且offsetY应该是否定的(这样说的文档,并能正常工作).但是,在AIR中运行完全相同的代码时,必须使偏移量为正.相同的数字,但积极的.这非常非常奇怪.


我已经测试了更多以及@maclema的工作原理,但是如果你在AIR中运行则不行.看起来AIR中的拖放是不同的.这真的非常奇怪,因为不仅反馈没有正确显示,也不可能不接受,但坐标也完全关闭.我只是在浏览器而不是AIR中尝试我的应用程序,拖放完全被打破.

另外,跳过dragEnter处理程序在AIR中运行良好,但在浏览器中运行时会破坏所有内容.



1> Matt MacLean..:

你只使用dragEnter方法吗?如果您在仍然拖动同一组件的同时尝试拒绝拖动,则需要同时使用dragEnter和dragOver方法.

看看这个例子:



    
        
    
    
    

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有