私は1つのアプリケーションを作成しています。1 つの Scroller で 1 つの VGroup を使用したという点で、1 つのポップアップがあります。
カスタム コンポーネントを VGroup に動的に追加し、ポップアップの終了時にすべてのコンポーネントを削除して、それらのコンポーネントをメモリ プールに保存します。
最初のステップでは、スクロール バーが表示されるまで、コンポーネントの数を含むポップアップを開きます。次に、ポップアップを閉じます。
2 番目のステップでは、スクロール バーが表示されず、ポップアップを閉じるように、いくつかの少ないコンポーネントで同じポップアップ インスタンスを開きます。
そして、より多くのコンポーネントでポップアップを開くと、スクロールバーが表示されなくなりました。そのため、ポップアップがより少ないコンポーネントで開かれると、スクロールバーが消えます。
助けてください...
完全なコードは次のとおりです。
<s:Scroller id="myScroller"
width="100%"
height="210"
horizontalScrollPolicy="off">
<s:VGroup id="myContainer"
width="100%"
height="210" />
</s:Scroller>
コンポーネントを追加するためのコード:
for each(var object:MyObject in _arr)
{
var newView:MyCustomView = MyCustomViewPool.acquire();
myContainer.addElementAt(newView, 0);
newView.myData = object;
}
コンポーネントを削除するためのコードは次のとおりです。
for(var i:int = 0; i < myContainer.numElements; i++)
{
var newViewElement:IVisualElement = myContainer.getElementAt(i);
var myViewComponent:MyCustomView = newViewElement as MyCustomView;
MyCustomViewPool.release(myViewComponent);
}
myContainer.removeAllElements();