我有一个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;
}
谢谢, 克林
答案 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/