Flex 3:确定滚动面板子项是否可见

时间:2010-01-11 19:36:16

标签: flex actionscript-3

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

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

1 个答案:

答案 0 :(得分:1)

我不确定此答案的及时性,但最近我遇到了类似的问题,以下代码对我有用:

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

     // item is not (completely) visible

}

基本上这是检查以下标准:

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

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

如果要检查容器中的所有项目,则必须循环访问并根据这些条件检查每个项目。您可以在函数中抛出上述代码,并返回该项是否可见。可能有更好/更清洁的方式,但我还没找到。