2010-01-11 6 views
1

고정 된 높이와 수직 스크롤 막대가있는 캔버스가 있다고 가정 해 보겠습니다. 그리고 캔버스의 세로 높이가 VBox와 같은 수직선에 10 개의 자식이 있습니다. 결합 된 높이가 캔버스의 높이를 초과합니다. 스크롤 막대 위치를 기반으로 한 번에 일부 어린이 만 볼 수 있습니다.플렉스 3 : 스크롤 패널 하위가 표시되는지 확인

실제로 볼 수있는 아동을 확인할 수 있습니까? 또는 특정 아이가 화면에 표시되는지 여부

+0

브라우저의 스크롤 막대 또는 Flex 애플리케이션을 말하고 있습니까? – sberry

+0

플렉스 앱 내. 예제에서 가상의 Canvas 객체에 첨부되었습니다. – organicveggie

답변

1

나는이 답변의 적시성에 대한 모르겠지만, 최근에 비슷한 질문을했고, 다음 코드는 나를 위해 일한 :

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

    // item is not (completely) visible 

} 

는 기본적으로이 다음 기준에 대해 확인하고 있습니다 :

1) 항목의 y 위치가 컨테이너의 현재 수직 스크롤 위치 (즉, 컨테이너의 상단 경계 바깥)보다 위에 있습니까?

2) 항목의 아래쪽 위치가 컨테이너의 아래쪽 경계 밖으로 스크롤 되었습니까? 이것은 항목의 아래쪽 위치 (즉, 항목의 y 위치와 높이)를 현재 수직 스크롤 위치에서 뺀 값을 사용하여 계산됩니다.

컨테이너의 모든 항목을 확인하려면 루프백을 통해 이러한 조건을 확인해야합니다. 함수에 위의 코드를 던져 항목이 표시되는지 여부를 반환 할 수 있습니다. 더 좋고/깨끗한 방법이 있을지 모르지만 나는 아직 그것을 발견하지 못했습니다.