2012-06-06 63 views
0

我正在创建一个应用程序。在那里有一个弹出窗口,因为我在一个Scroller中使用了一个VGroup。滚动条未显示Flex 4与VGroup

我在VGroup中动态添加我的自定义组件,并在弹出框关闭时删除所有组件,并将这些组件保存在内存池中。

在第一步中,我打开一个弹出窗口,其中显示了滚动条。 然后关闭弹出窗口。

在第二步中,我打开一个弹出窗口实例,其中包含少量组件,因此不会显示滚动条并关闭弹出窗口。

现在,当我打开更多组件的弹出窗口时,不会出现滚动条。 因此,无论何时弹出窗口一旦以较少的组件运行,滚动条就会消失。

请帮助我...

下面是完整的代码:

<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(); 

回答

0

我认为你不必在VGroup上设置高度。只要删除作业。

+0

没错:既然Scroller和VGroup的高度都是210px,VGroup并不比Scroller大,因此没有滚动条。 – RIAstar

+0

我已经移除了VGroup的高度,但它不起作用... –

+0

并且在VGroup的高度下,第一次创建弹出窗口时它运行良好... –