Actionscript 3 设置值时遇到的问题

Actionscript 3 设置值时遇到的问题,actionscript-3,apache-flex,flex4.5,Actionscript 3,Apache Flex,Flex4.5,如你所见 我无法将dg.columns[2].width设置为所需的值。[最后一列出现问题。] 我也无法在中间跟踪之前设置dg.columns[0].width=0 我最初认为moveColumnTo可能与该问题有关,但即使在对该函数的调用进行了注释之后,我也发现了问题 怎么了 下面是调用restoreColumns的代码。[我刚刚意识到我可以编辑我的原始帖子并添加此内容。] Before: n: 0 WA: 113 DG: 95 Middle: n: 0 WA: 113 DG: 20 Afte

如你所见

我无法将dg.columns[2].width设置为所需的值。[最后一列出现问题。]

我也无法在中间跟踪之前设置dg.columns[0].width=0

我最初认为moveColumnTo可能与该问题有关,但即使在对该函数的调用进行了注释之后,我也发现了问题

怎么了

下面是调用restoreColumns的代码。[我刚刚意识到我可以编辑我的原始帖子并添加此内容。]

Before: n: 0 WA: 113 DG: 95
Middle: n: 0 WA: 113 DG: 20
After:  n: 0 WA: 113 DG: 113
Before: n: 1 WA: 71 DG: 85
Middle: n: 1 WA: 71 DG: 20
After:  n: 1 WA: 71 DG: 71
Before: n: 2 WA: 41 DG: 101
Middle: n: 2 WA: 41 DG: 101
After:  n: 2 WA: 41 DG: 101

看起来在循环条件中应该使用n这两者的长度相同。[我想发布调用restoreColumns的函数,但它将超过评论的字符限制。]添加到原始帖子中?实际上,您最好发布如何填充dg.columns[]数组。因为这段代码看起来很有效,但在dg.columns[]和widths中可能会出现问题。我现在正在考虑,但是,您可以尝试将此数字变量更改为int变量:对于var n:number=0;nBefore: n: 0 WA: 113 DG: 95 Middle: n: 0 WA: 113 DG: 20 After: n: 0 WA: 113 DG: 113 Before: n: 1 WA: 71 DG: 85 Middle: n: 1 WA: 71 DG: 20 After: n: 1 WA: 71 DG: 71 Before: n: 2 WA: 41 DG: 101 Middle: n: 2 WA: 41 DG: 101 After: n: 2 WA: 41 DG: 101
private function processQueryResponse(evt:DWSQLevent):void {
            this.removeEventListener( IndexChangedEvent.HEADER_SHIFT, this.saveColumns );   
            this.removeEventListener( ResizeEvent.RESIZE, this.saveColumns );           
            var headerTextArray:ArrayCollection = new ArrayCollection();
            var widthArray:ArrayCollection = new ArrayCollection();
            if ( query.queryMessage == "SELECT" ) {
                if (evt.dataRetrieved == true && query.queryData && query.queryData.length > 0 && query.queryData[0].length > 0 ) {
                    initialColumns = query.queryData[0];
                    var record:Object;
                    for (var n:Number = 0; n< this.columns.length; n++)
                    {
                        record = initialColumns.getItemAt(n);
                        headerTextArray.addItem(record.headertext);
                        widthArray.addItem( record.width );
                    }
                    restoreColumns( headerTextArray, widthArray);
                    haveColumnData = true;
                } else if ( query.queryData.length > 0 && query.queryData[0].length == 0 ){
                    Alert.show( "Problems reading column data from database. Saved column order not restored." );   
                    trace ("Select error / no rows "); // alert moving not done
                }
            } else {
            }   
            this.addEventListener( IndexChangedEvent.HEADER_SHIFT, this.saveColumns );  
            //          this.addEventListener( ResizeEvent.RESIZE, this.saveColumns );
        }