我有一个VBox,它包含多个子网格。您必须滚动才能查看所有网格。网格中有一些按钮。如果按下任何按钮,它将通过从VBox中删除所有网格并用该网格的子项填充来显示该网格的子集。有一个后退按钮可以删除子项并用以前的网格填充VBox。现在,当我按下后退按钮时,我想回到特定的网格,我从中单击以查看它的子网格。如果它在滚动的底部,那么当我返回时,我会看到那个网格而不是顶部网格。但它总是显示顶部网格。我尝试了setFocus方法。但它不起作用。
我有一个画布作为根父对象,一个Vbox作为它的子对象。Vbox包含所有网格。如果你按下一个网格的按钮,那么Vbox就会有网格的孩子,我在上面解释过。网格的子级也是一些网格。
请帮忙。我被困在这里了。提前感谢:)
setFocus()
方法仅激活组件,而不滚动视口。要做到这一点,你可以使用
var spDelta:Point = dataGroup.layout.getScrollPositionDeltaToElement(index);
if (spDelta)
{
dataGroup.horizontalScrollPosition += spDelta.x;
dataGroup.verticalScrollPosition += spDelta.y;
}
其中CCD_ 2可以是您的CCD_。
如果这不起作用,或者不是你想要的,你可以尝试获得你想要查看的组件的高度,并将滚动条移动到这个高度
var index:Number = dataGroup.getElementIndex(comp);
var offset:Number = dataGroup.getElementAt(index).height;
scroller.viewport.verticalScrollPosition = index * offset;
其中dataGroup
是您的VGroup
,comp
是您要滚动到的数据网格。