使用creationPolicy =“auto”在Actionscript中创建ViewStack

时间:2012-10-08 12:03:22

标签: actionscript-3 flex4

在MXML中,当我向ViewStackcreationPolicy添加组件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中复制此行为? 问题是我的DataGrids包含大量数据,因此我不希望它们同时创建。

2 个答案:

答案 0 :(得分:0)

看起来ViewStack类上有一个creationPolicy属性。这样的事情应该有效

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


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

v.addElement(t1);

答案 1 :(得分:0)

请尝试使用此

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处理程序之后,我们需要调用

container.createDeferredContent()根据您要查看的索引视图。

有关详细信息Using the createDeferredContent() method