【问题标题】:Flex 3: Determine if scroll panel child is visibleFlex 3:确定滚动面板子项是否可见
【发布时间】:2011-01-03 21:39:26
【问题描述】:

假设我有一个固定高度和垂直滚动条的画布。并且画布在一条垂直线上有 10 个孩子(如 VBox),它们的组合高度超过了画布的高度。根据滚动条的位置,一次只能看到一些子项。

是否可以确定哪些孩子实际上是可见的?或者屏幕上是否可以看到特定的孩子?

【问题讨论】:

  • 您是指浏览器的滚动条,还是在您的 flex 应用程序中?
  • 在 flex 应用程序中。在我的示例中附加到假设的 Canvas 对象。

标签: apache-flex actionscript-3


【解决方案1】:

我不确定这个答案的及时性,但我最近有一个类似的问题,下面的代码对我有用:

if (item.y < container.verticalScrollPosition || item.y + item.height - container.verticalScrollPosition > container.height) {

     // item is not (completely) visible

}

基本上这是根据以下标准进行检查:

1) 项目的 y 位置是否高于容器当前的垂直滚动位置(即超出容器的顶部边界)?

2) 项目的底部位置是否滚动到容器底部边界之外?这是使用项目的底部位置(即项目的 y 位置加上其高度)减去当前垂直滚动位置来计算的。

如果您想检查容器中的所有项目,那么您必须循环并根据这些条件检查每个项目。您可以将上述代码放入函数中并返回该项目是否可见。可能有更好/更清洁的方法,但我还没有找到。

【讨论】:

    猜你喜欢
    • 2011-07-30
    • 2019-01-20
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    相关资源
    最近更新 更多