【问题标题】:Canvas Scrolling画布滚动
【发布时间】:2011-08-26 02:24:00
【问题描述】:

我有一个画布,里面有一个 VGroup,里面填充了各种类型的对象,其中一些具有鼠标事件,例如 MOUSE_OVER。

我遇到的问题是让 Canvas 用鼠标滚轮正确滚动。只有当鼠标悬停在滚动条上时它才会起作用。

我尝试通过监听舞台上的鼠标滚轮来伪装它,然后手动滚动画布。但是当画布滚动到对象在鼠标下移动的位置时,事情就会变得糟糕。

有什么建议吗?

保重, 李

更新:

好的。我发现如果我在没有添加的情况下使用画布,它只会在鼠标悬停在其中的对象上时滚动。如果鼠标在空白区域,它不会滚动。

当我说“鼠标位于其中的对象上”时,我指的是文本字段和其他具有视觉元素的对象。

好的。我找到了部分解决方案。如果我拦截 VGroup 上的 mouseWHeel 事件,则滚动工作。但是,当我到达 VGroup 中的 RichEditableText 对象时,滚动停止。之前,它滚动得很好。

【问题讨论】:

  • 您使用的是 Spark 还是 Halo 组件?你能展示一些演示问题的代码吗?
  • 我在 Flex4 中使用 Spark。我不确定我可以发布什么样的代码。使用鼠标滚轮时,画布不会滚动。它应该吗?我在某个地方看到可能不是。
  • 不要混合使用火花和光环容器。使用 Group 或 SkinableComponentContainer 代替 Canvas。

标签: apache-flex canvas


【解决方案1】:

在这里找到了一个有趣的解决方案。 mouseWheel 事件不会在画布中触发,除非它在 ​​InteractiveObject 上,即文本字段等。但是,当我测试以确保我的鼠标实际上在画布中时,我发现该事件是在“空白”空间中触发的如果画布设置了 backgroundColor 属性,则在对象之间。因此,设置 backgroundColor,如果您不想要背景,则将 backgroundAlpha 设置为 0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-27
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 2010-10-21
    • 2014-11-07
    • 1970-01-01
    相关资源
    最近更新 更多