2011-09-30 20 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; 
} 
相關問題