Actionscript 3 对AS3字符串变量数组的更改不';t更新变量本身

Actionscript 3 对AS3字符串变量数组的更改不';t更新变量本身,actionscript-3,arrays,string,Actionscript 3,Arrays,String,我必须假设我遗漏了一些简单的东西,或者我不理解一些东西,但我似乎无法理解这一点 我有一个添加到数组中的字符串列表,然后尝试使用读入的数据在for循环中设置这些值。数组得到更新,但数组包含的值没有更新。我也有一系列的按钮,我用同样的方式更新它们,效果非常好,但是字符串的工作方式似乎不一样。我试着移动字符串数组来赋予它完整的作用域,但仍然没有任何结果。。。我错过了什么 public class test extends Sprite { // Declare a list of strings

我必须假设我遗漏了一些简单的东西,或者我不理解一些东西,但我似乎无法理解这一点

我有一个添加到数组中的字符串列表,然后尝试使用读入的数据在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
  }
}
公共类测试扩展了Sprite
{
//声明字符串列表
受保护变量标题0:String=未定义;
受保护变量标题1:字符串=未定义;
受保护变量标题2:字符串=未定义;
受保护函数onDataLoad(evt:事件):无效{
var titleArray:Array=新数组(title0,title1,title2);//字符串数组

对于(i=0;i它与AS3存储数组元素的方式有关。您需要显式设置实例属性(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]);
  }
}
公共类测试扩展了Sprite
{
受保护的变量_titleArray:Array=[];
受保护函数onDataLoad(evt:事件):无效{

对于(i=0;这是我应该首先做的……更灵活。我唯一改变的是我将标题值推送到数组中,而不是按索引设置它们(只是个人偏好)。_titleArray.push(evt.target.data[“title”+i]);是的,这肯定是一种更干净的方法。很高兴提供帮助!