2

在 MXML 中,当我将组件添加到ViewStackcreationPolicyisauto时,组件在我切换到它们之前不会被实例化。说,我有以下代码:

<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 包含大量数据,因此我不希望同时创建它们。

4

2 回答 2

0

看起来 ViewStack 类上有一个 creationPolicy 属性。像这样的东西应该工作

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


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

v.addElement(t1);
于 2012-10-09T01:28:20.570 回答
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()根据您要查看的索引视图。

更多细节使用 createDeferredContent() 方法

于 2012-10-10T15:28:36.170 回答