実際にはVBoxをスクロールしていない可能性があります。あなたのVBoxがCanvasなどの別のコンテナに含まれていて、あなたが言うようにVBoxにアイテムを追加している場合は、VBoxではなくスクロールしているCanvasですこの場合、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の高さ(ここでは、単にアプリケーション)は、その含有成分の高さに結合されています。他のすべてはかなり自明でなければならない。
希望に役立ちます!ご不明な点がありましたら、ご返信ください。
あなたは正しく、スクロールするキャンバスの中に成長しているVBoxでした。代わりにキャンバスをスクロールする必要がありました。ありがとう。 – markmarkoh
'height =" {parentID.height} "'がうまくいきませんでした(私はスクロールバーを持っていましたが、VBoxは20ピクセルの高さのような) –