我想为我的游戏生成村民,然后将它们组织成一个列表,但我遇到了一些困难,here是它应该看起来的样子而here实际上是它的真实含义好像。生成亲属的代码是:
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]时,它会停止发出错误,并且每次生成新的亲属时整个菜单都会向下移动所以我知道这是导致问题的部分,但我不知道为什么或如何解决它会感谢帮助,以上所有代码都在我的文档类中。我几天前才开始编写AS3,所以我还是有点不稳定。欢呼阅读。
答案 0 :(得分:1)
您可以在除
之外的任何地方正确访问剪辑menuArea.kinsmenDivider["kinsmen" + i].y
不应该是:
menuArea.kinsmenDivider.getChildByName("kinsmen" + i).y