如何在Flex 4中防止滚动Spark Datagrid时浏览器窗口滚动?

3

我有一个Spark DataGrid,它的行数比其大小还要多。我想使用鼠标滚轮来滚动DataGrid,但是当我这样做时,整个浏览器窗口也会滚动。

是否有一种方法,可以在我只想滚动DataGrid时停止浏览器滚动(或者也许在鼠标位于嵌入在HTML页面中的Flex应用程序上时)?我在考虑也许有一种javascript解决方案,但我不确定。


点击http://queirozf.com/home/lessonslearnt.php上的搜索按钮,会出现一个数据网格。我正在Chrome上测试它。不过我会尝试在不同的浏览器上进行测试。刚刚在Firefox上测试了一下,遇到了相同的问题。 - Felipe
@wes 我以前从未遇到过这种情况。通常是浏览器向Flash Player发送事件。如果取消Flash Player事件会影响浏览器行为,我会感到惊讶。 - JeffryHouser
@Felipe Almeida 真是奇怪,我从来没有遇到过这种情况。我在 Firefox 中进行了测试,并复制了您所描述的行为。我能理解它为什么会让人烦恼。 - JeffryHouser
你说取消活动是什么意思?我该怎么做? - Felipe
1
你需要添加一个 MouseEvent.MOUSE_WHEEL 监听器,然后在处理程序中获取传递的事件并调用 event.stopImmediatePropagation() 或者有时 event.preventDefault()。虽然这似乎非常奇怪,因为它只应该停止事件通过显示树向上传播,但这不一定会影响 Flash 播放器外部的 HTML/DOM。你可能还需要使用一些 JavaScript 进行修改(不同浏览器之间捕获鼠标滚轮事件的方式也有所不同)。http://www.adomas.org/javascript-mouse-wheel/ - shaunhusain
显示剩余4条评论
1个回答

0

哈..那是很久以前的事了...我已经完全停止使用Flex了,恐怕。但还是谢谢你的回答..你确定它是100%吗?如果是的话,我会给你点赞的。 - Felipe
是的,我非常确定这种方法可行 :) 我正在享受这项技术的黄昏。 - jediz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接