Flex 3: определите, видна ли дочерняя панель прокрутки - PullRequest
1 голос
/ 11 января 2010

Допустим, у меня есть холст с фиксированной высотой и вертикальная полоса прокрутки. И у холста есть 10 дочерних элементов в вертикальной линии (например, VBox), чья общая высота превышает высоту холста. В зависимости от положения полосы прокрутки одновременно будут видны только некоторые дочерние элементы.

Можно ли определить, какие дети на самом деле видны? Или виден ли конкретный ребенок на экране?

1 Ответ

1 голос
/ 28 июля 2010

Я не уверен в своевременности этого ответа, но у меня недавно был похожий вопрос, и мне помог следующий код:

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

     // item is not (completely) visible

}

В основном это проверка по следующим критериям:

1) Находится ли позиция y над текущей вертикальной позицией прокрутки контейнера (т.е. за пределами верхней границы контейнера)?

2) Прокручивается ли нижняя позиция предмета за пределы нижней границы контейнера? Это рассчитывается с использованием нижней позиции элемента (то есть позиции y элемента плюс его высота) за вычетом текущей вертикальной позиции прокрутки.

Если вы хотите проверить все элементы в контейнере, вам придется пройтись по ним и проверить каждый на соответствие этим критериям. Вы можете добавить приведенный выше код в функцию и вернуть, виден ли элемент или нет. Возможно, есть лучший / более чистый способ, но я еще не нашел его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...