对AS3数组字符串变量的更改不会更新变量本身

时间:2010-07-30 17:40:25

标签: actionscript-3 arrays string

我必须假设我缺少一些简单的东西,或者我不理解某些东西,但我似乎无法想象这一点。

我有一个字符串列表,我添加到一个数组,然后尝试使用我读入的数据在for循环中设置这些值。数组得到更新,但数组包含的值没有。我也有一系列按钮,我更新同样的方式工作得很好,但字符串似乎没有相同的方式。我试过移动字符串数组给它全范围,但仍然没有...我错过了什么?

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
  }
}

1 个答案:

答案 0 :(得分:0)

它与AS3如何存储Array元素有关。您需要显式设置实例属性(title1,title2,title3)和关联的数组元素(array [0],array [1],array [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]);
  }
}