2011-09-30 23 views
0

Flex中的ArrayCollection有问题。这是我的代码:Flex中的ArrayCollection问题

private var productPageArr:ArrayCollection; 
private var productCount:Number = 10; 

private function dviceProductPage(arr1:ArrayCollection,arr2:ArrayCollection):ArrayCollection  
{  
    var page:Number = arr1.length  //productCount; 
    var i:int; 
    arr2 = new ArrayCollection(); 

    //productPageArr = new ArrayCollection(); 

    for(i = 0; i<page; i++) 
    { 
     var o:Object = new Object(); 
     o.label = String(i+1); 
     arr2.addItem(o); 
    } 

    //arr2.refresh(); 
    return arr2; 
} 

当我运行这段代码时,我的应用程序终止。但是当productPageArr被替换为arr2然后我的应用程序运行顺利。

+0

// productPageArr = new ArrayCollection(); < - 这是否会导致崩溃的代码?我的意思是,你在哪里以及你准确地取代了什么? –

+0

这是流畅运行的代码还是崩溃的代码? – Chad

回答

0

问题在于使用“arr2”。 “arr2”是您的函数的参数,可能无法从这里访问。

我真的不知道你想达到什么,但我的建议是在你的函数中创建一个新的变量,你可以安全地返回作为你的函数的结果(这留下了你为什么接受的问题“arr2”作为论据)。

我希望这会有所帮助。

private var productPageArr:ArrayCollection; 
private var productCount:Number = 10; 

private function dviceProductPage(arr1:ArrayCollection,arr2:ArrayCollection):ArrayCollection  
{  
    var page:Number = arr1.length  //productCount; 
    var i:int; 
    var arr3 = new ArrayCollection(); 

    for(i = 0; i<page; i++) 
    { 
     var o:Object = new Object(); 
     o.label = String(i+1); 
     arr3.addItem(o); 
    } 

    return arr3; 
} 
相关问题