0

我正在创建一个在“一天”结束时具有连续数字的二维列表,用作 DataGrid 的 dataProvider 我一直通过命令
dg1.selectedItem.day1
dg1.selectedItem.day2
dg1.selectedItem.day3访问它们
ETC...

有什么方法可以获取字符串 ("day"+i) 并将其转换为(它是什么?变量名?),这样我就可以按照以下方式做一些事情:

for(var i:Number=1; i<numFields; i++)
{
  dg1.selectedIndex = i-1;
  dg1.selectedItem.(mysteryFunction("day"+i)) = 42;
}

如果有一个我可以用于神秘函数的函数,或者使用什么数据类型,任何信息都会非常有帮助,


这就是我一直在使用的(太乏味了):

<mx:XMLList id="sched">
  <field>
      <day1></day1>
      <day2></day2>
      <day3></day3>
  </field>
  <field>
      <day1></day1>
      <day2></day2>
      <day3></day3>
  </field>

  ...
</mx:XMLList>
4

2 回答 2

1

您正在寻找的“神秘功能”就像用括号索引一样简单:

for(var i:Number=1; i<numFields; i++)
{
    dg1.selectedIndex = i-1;
    dg1.selectedItem["day"+i] = 42;
}

令人惊讶的是,它被称为属性。

于 2009-02-23T19:42:02.530 回答
0

使用Array或者如果你要绑定它(我有点赌注)使用ArrayCollection而不是单独命名这些变量。

如果成员是由某个程序生成的,您最好将所有这些都放在我上面提到的集合类之一中,然后开始处理。从长远来看,它让生活更轻松。

E4X是处理 XML 时要走的路。Mozilla 的家伙对这项技术有一个可以说是更好的解释。因此,如果您的 XML 存储在一个变量中:

var tree:XML = <field>
    <day1></day1>
    <day2></day2>
    <day3></day3>

你可以简单地做:

tree.day1 = 42;

你为什么要这个mysteryFunction()dataProvider对象只是某种类型的集合。你已经知道类型了,对吧?读这个

反正也没有这种神秘的功能。但是请注意,字符串与数字的连接会将数字转换为字符串。尝试

trace("str " + 42);
于 2009-02-23T18:38:50.653 回答