我遇到了VBox鼠标滚轮滚动的问题。当鼠标悬停在VBox或垂直滚动条中的任何组件上时,它可以正常工作,但当鼠标位于VBox的背景上时不会发生滚动。
<mx:VBox width="100%" height="150">
<s:Label text="A large label." height="100" />
<s:Label text="A label." />
<s:Label text="A label." />
<s:Label text="A label." />
<s:Label text="A label." />
<s:Label text="A large label." height="100" />
<s:Label text="A label." />
<s:Label text="A label." />
<s:Label text="A label." />
<s:Label text="A label." />
</mx:VBox>
我查看了VBox和Container(VBox继承的代码)的代码。当存在垂直滚动条时,Container会将MouseEvent.MOUSE_WHEEL侦听器添加到自身。我在这个函数中放了一个断点,但只有当我的鼠标在子组件上时才会调用它。
作为最后的努力,我尝试设置了mouseEnabled,focusEnabled和一些其他随机属性,但没有一个帮助。
有没有人知道如何使VBox正确行动并在我的鼠标位于任何地方时滚动?提前谢谢。
(由于不必要的捕捉行为,暂时不能切换到火花滚轮。)
答案 0 :(得分:2)
你的问题 - 你可能已经猜到了 - MouseEvents没有被触发。我怀疑与FocusEvents存在的问题相同。集装箱不会自行发送这些事件;他们只会从孩子身上冒出一些事件;它接受鼠标和焦点事件。
作为一种解决方法,您可以尝试将透明图像作为组件的第一个子项添加。背景仍将显示,但图像应该拾取相关事件并将它们冒泡到容器中。
答案 1 :(得分:0)
一年前我们遇到了类似的问题,鼠标滚轮滚动在TabNavigator上无效。找到解决方法: https://bugs.adobe.com/jira/browse/FP-289 和 https://bugzilla.mozilla.org/show_bug.cgi?id=448567
解决方案非常简单:在flash启动HTML中删除以下行:
"wmode", "transparent",