2010-07-30 87 views
0

我必須假設我缺少一些簡單的東西,或者我不理解某些東西,但我似乎無法確定這一點。對字符串變量AS3數組的更改不會自動更新變量

我有一個字符串列表添加到數組,然後嘗試使用我讀入的數據在for-loop中設置這些值。數組得到更新,但數組中包含的值不包含。我也有一組按鈕,我更新的方式非常好,但字符串看起來並不一樣。我已經嘗試過移動字符串數組來給它完整的範圍,但仍然沒有...我錯過了什麼?

public class test extends Sprite 
{ 
    // Declare a list of strings 
    protected var title0:String = undefined; 
    protected var title1:String = undefined; 
    protected var title2:String = undefined; 

    protected function onDataLoad(evt:Event):void{ 

    var titleArray:Array = new Array(title0,title1,title2); // Array of strings 

    for(i=0; i<=evt.target.data.count; i++){ 
     titleArray[i] = evt.target.data["title"+i]; // attempt to set the title values 
    } 
    } 

    protected function function0(e:Event):void { 
    trace("My title is: " + title0); // title0 is null 
    } 
} 

回答

0

它與AS3如何存儲數組元素有關。你需要明確地設置實例屬性(title1,title2,title3)和相關的數組元素(數組[0],數組[1],數組[2])來實現你想要的。或者,您可以完全刪除實例屬性(title0,title1,title2),並使用該數組來存儲您的值。例如:

public class test extends Sprite 
{ 

    protected var _titleArray:Array = []; 

    protected function onDataLoad(evt:Event):void{ 

    for(i=0; i<=evt.target.data.count; i++){ 
     // set the title values 
     _titleArray[i] = evt.target.data["title"+i]; 
    } 
    } 

    protected function function0(e:Event):void { 
    trace("My title is: " + _titleArray[0]); 
    } 
} 
+0

這就是我應該做的事情開始...更加靈活。我唯一改變的是我把標題值推到了數組上,而不是通過索引來設置它們(只是個人偏好)。 _titleArray.push(evt.target.data [「title」+ i]); – taipan 2010-07-30 20:56:22

+0

是的,這是一個更清潔的方法。樂意效勞! – heavilyinvolved 2010-07-30 20:58:16