Возможно, вы не прокручиваете VBox; есть большая вероятность, что если ваш VBox содержится в другом контейнере, например, Canvas и т. п., и вы добавляете элементы в VBox в том виде, в каком вы говорите, это прокрутка, а не VBox - в В этом случае VBox действительно вернет 0 для своей позиции прокрутки.
Так или иначе, вы правы - вам нужно установить высоту компонента; даже настройки макета ограничения (например, "bottom = '10 '" и т. д.) не будут работать. Но если вам удастся установить высоту VBox, привязав его размеры каким-либо образом к другому элементу управления или установив их явно как часть процесса добавления / создания дочернего элемента, вы сможете выполнить то, что вам нужно.
Вот пример приложения AIR, которое я смоделировал, чтобы проиллюстрировать этот пример. По сути, он просто добавляет блоки произвольного размера в VBox и прокручивает его в нижнюю часть VBox после создания каждого дочернего элемента.
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" verticalScrollPolicy="off" horizontalScrollPolicy="off" width="250">
<mx:Script>
<![CDATA[
import mx.core.Application;
import mx.containers.Box;
import mx.events.FlexEvent;
private function addItem(h:Number):void
{
var b:Box = new Box();
b.width = 200;
b.setStyle("backgroundColor", 0xFFFFFF);
b.height = h;
// Wait for the component to complete its creation, so you can measure and scroll accordingly later
b.addEventListener(FlexEvent.CREATION_COMPLETE, b_creationComplete);
vb.addChild(b);
}
private function b_creationComplete(event:FlexEvent):void
{
event.currentTarget.removeEventListener(FlexEvent.CREATION_COMPLETE, b_creationComplete);
vb.verticalScrollPosition = vb.getChildAt(vb.numChildren - 1).y;
}
]]>
</mx:Script>
<mx:VBox id="vb" top="10" right="10" left="10" height="{Application.application.height - 80}" verticalScrollPolicy="on" />
<mx:Button label="Add Item" click="addItem(Math.random() * 100)" bottom="10" left="10" />
</mx:WindowedApplication>
В этом случае высота VBox привязана к высоте его содержащего компонента (здесь только приложение). Все остальное должно быть довольно понятным.
Надеюсь, это поможет! Пишите обратно, если у вас есть какие-либо вопросы.