0

我想为我的游戏生成村民,然后将它们组织成一个列表,但我遇到了一些困难,就是它应该看起来的样子,而就是它实际的样子。生成亲属的代码是:

var k = new kinsmen  ;
menuArea.kinsmenDivider.addChild(k);
totalKinsmen++;
totalKinsmenAlive++;
k.name = "kinsmen" + totalKinsmen;

用于对它们进行排序的代码是:

for (var i:int = 1; i < (totalKinsmen+1); i++) {
if (menuArea.kinsmenDivider.getChildByName("kinsmen"+i) !=null) {
    menuArea.kinsmenDivider["kinsmen" + i].y = menuItemCount * 107.5;
    menuItemCount++;}}

这应该查看曾经存在的每个亲属的 ID,当它找到一个活着的人的 ID 时,它应该在菜单中给它一个位置并继续查看其他 ID。

trace ("kinsmen" + totalKinsmen);
trace (menuArea.kinsmenDivider.getChildByName("kinsmen"+i));

在我的测试中,两者总是具有相同的值。调试器在运行时发布以下错误:

TypeError: Error #1010: A term is undefined and has no properties.

当我删除 ["kinsmen" + i] 时,它会停止给出错误,并且每次生成新的 kinsmen 时整个菜单都会向下移动,所以我知道这是导致问题的部分,但我不知道为什么或如何解决它并且会感谢帮助,以上所有代码都在我的文档类中。几天前我才开始编写 AS3,所以我还是有点不放心。为阅读喝彩。

4

1 回答 1

1

您可以在任何地方正确访问剪辑,除了

menuArea.kinsmenDivider["kinsmen" + i].y

不应该是:

menuArea.kinsmenDivider.getChildByName("kinsmen" + i).y
于 2013-01-26T06:00:09.463 回答