2012-10-08 25 views
2

在MXML中,當我添加組件到ViewStackcreationPolicyauto時,組件在我切換到它們之前不會被實例化。說,我有以下代碼:在Actionscript中使用creationPolicy創建ViewStack =「auto」

<mx:ViewStack creationPolicy="auto"> 
    <s:NavigatorContent> 
     <s:DataGrid id="dg1" width="300"/> 
    </s:NavigatorContent> 
    <s:NavigatorContent> 
     <s:DataGrid id="dg2" width="100"/> 
    </s:NavigatorContent> 
</mx:ViewStack> 

如何在ActionScript中複製此行爲? 問題是我的DataGrid存放大量的數據,因此我不希望它們在同一時間被創建。

回答

0

看起來像ViewStack類上有一個creationPolicy屬性。像這樣的東西應該工作

var v:ViewStack = new ViewStack(); 
v.creationPolicy = "auto"; 


var t1:NavigatorContent = new NavigatorContent(); 
t1.addElement(new DataGrid()); 

v.addElement(t1); 
0

請我們需要根據你想看哪個索引視圖調用

container.createDeferredContent()這一個

var v:ViewStack = new ViewStack(); 
v.creationPolicy = "auto"; 

var container:SkinnableContainer = new SkinnableContainer(); 
container.creationPolicy = "none"; 

var dg:DataGrid = new DataGrid(); 
container.addElement(dg); 

var t1:NavigatorContent = new NavigatorContent(); 
t1.addElement(container); 

v.addElement(t1); 

後viewstack_change處理嘗試。

詳情Using the createDeferredContent() method

+0

希望這將幫助你咬http://www.unitedmindset.com/jonbcampos/2009/02/12/deferred-component-instantiation-in-actionscript/ –