为ActionScript3设计具有大型数据集的XML

时间:2009-05-07 02:37:38

标签: actionscript-3

我有一个非常大的XML文件,它有40000个数据,当我尝试使用Actionscript3加载XML,然后将数据填充到数组中时, 我收到以下错误:

脚本的执行时间超过了15秒的默认超时时间。

有没有办法绕过这个超时问题? 这是示例XML

<Map>
   <Data>0</Data>
   <Data>1</Data>
   <Data>2</Data>
   <Data>3</Data>
    // continue for many many times
   <Data>39999</Data>
</Map>

换行符似乎在for循环中。 代码就像这样

var aNumberArray:Array = new Array( 200 * 200 );
var nRowIndex:int = 0;
for ( ; 200 > nRowIndex; ++nRowIndex ) {
    var nColumnIndex:int = 0;
    for ( ; 200 > nColumnIndex; ++nColumnIndex ) {
        var nIndex:int = nColumnIndex + nRowIndex * 200;
        // assume cXMLMap is already a pre read XML class
        aNumberArray[ nIndex ] = new int( cXMLMap.Data[ nIndex ] );
    }
}

我怀疑cXMLMap.Data[ nIndex ]花了很多时间从XML获取变量。 请指教。

1 个答案:

答案 0 :(得分:0)

我找到了答案, 我需要将XML的格式更改为如下所示

// given a data set of 200 X 200 fields
<Map>
    <Data>00 10 20 30 40 ..... 1990</Data>
    <Data>00 11 21 31 41 ..... 1991</Data>
    // repeat until reach 200 times
    <Data>2000 2001 2002 2003 2004 ..... 199200</Data>
</Map>

这将减少XML解析持续时间,但是,我需要编写代码来对actionscript3中的字符串进行标记化。