如何在加载XML文件后在Flash ActionScript中重新加载DataGrid?

问题描述:

是否可以在舞台上创建一个DataGrid后在闪存中更改RowCount如何在加载XML文件后在Flash ActionScript中重新加载DataGrid?

我在外部加载一个包含DataGrid应具有的行数的XML文件,但问题在于,因为此文件在运行时未加载,所以它只是选取默认的3个项目。也许我必须在舞台上重新加载DataGrid,或者循环直到它被定义。

有没有人有这方面的经验?

+0

DataGrid的继承了[`rowCount`](http://help.adobe.com/nl_NL/FlashPlatform/reference/actionscript/2/ help List.html?content = 00002578.html#3149569)来自List组件的属性。加载XML后,使用您想要的值设置此属性。还要确保组件的高度足够大,以显示你想要的行数(你可以用`setSize()`来完成)。如果更新没有立即发生,你可以使用`invalidate()`来强制更新。只要舞台上的数据网格实例具有实例名称,您应该可以通过actionscript 2来控制它 – 2014-08-01 20:08:40

我们在谈论Flash还是Flex?如果我们正在谈论Flex,您实际上可以使用DataBinding。只需将[Bindable]属性放置在包含您的XML的变量上方,并且当您使用新数据更新变量时,网格也将被更新。

如果你确实是指Flash,那么我就不知道了。

Flex项目:

使用绑定的强制更新时dataprovider中的变化。

<fx:Script> 
    <![CDATA[ 
     [Bindable] 
     private var _loadedXMLData : XML; // load xml and store here 
    ]]> 
</fx:Script> 


<mx:DataGrid dataProvider="{_loadedXMLData}" width="100%" height="100%"/> 

Flash项目:

请确保XML已经被加载时设置的数据提供者。如果它不给你正确的行数量,试试这个:

// set flash datagrid component rows manually 
dg.rowCount = 10;