以编程方式将flex spark数据组滚动到最大量

时间:2011-07-06 13:40:51

标签: flex scroll flex4 components flex-spark

我有一个spark skinnable组件,其中包含一个带图像的数据组。将鼠标悬停在数据组上滚动数据组。一切正常,除了一件事:在我更改数据组提供程序后,我需要自动向下滚动。问题是我设置提供程序后没有立即加载图像,因此(contentHeight - height)尚未表示实际的最大滚动位置。是否有一种简单的方法可以告诉数据组在内容加载时向下滚动?因为解决方法似乎并不那么简单。

这是滚动的代码(thumbnailStrip是我的数据组):

private function thumbnailStrip_mouseMoveHandler(evt:MouseEvent):void {

            var fr:Number = (thumbnailStrip.contentHeight - thumbnailStrip.height) / thumbnailStrip.height;
            var scroll:Number = fr * evt.stageY - fr * this.y;

            var ms:Number = maxScroll();
            if(scroll > ms) scroll = ms;

            thumbnailStrip.verticalScrollPosition = scroll;
        }

        private function maxScroll():Number {
            return thumbnailStrip.contentHeight - thumbnailStrip.height;
        }

谢谢, 克林

1 个答案:

答案 0 :(得分:0)

thumbnailStrip.layout.verticalScrollPosition += thumbnailStrip.layout.getVerticalScrollPositionDelta(NavigationUnit.END);

这可能需要运行几次才能一直到达底部。它应该返回当前滚动位置和滚动位置“结束”之间的差异。当事情加载时,我只是继续在“callLater”中调用它。

不过,有一个错误:http://bugs.adobe.com/jira/browse/SDK-25740不确定它是否已修复4.5,丑陋的解决方法:http://flexponential.com/2011/02/13/scrolling-to-the-bottom-of-a-spark-list/