Flash / AS3:错误#1010

时间:2013-08-28 18:32:46

标签: actionscript-3 flash appendchild

59     for (i=0; i < count; i++) //count = number of children
60     {
61        if (localXML.children()[i].Name.toString != firstName ¬
          && localXML.children()[i].Surname.toString != surName ¬
          && localXML.children()[i].Company.toString != companyName)
62        {
63          tempXML.appendChild(localXML.children()[i]);
64        }
65        trace("tempXML: --> "+tempXML);
66        localXML = tempXML; <---- WRONG PLACE!!!
67     }

大家好。我在第61行收到错误#1010。

我确实单独测试了每个值,并且每个人都被正常追踪。错误是:

  • TypeError:错误#1010:at ... frame9:61
  • 该脚本总是附加localXML.children()[0]并且没有别的。

我看不到任何错误。有什么想法吗?

提前致谢。

解决:

59     for (i=0; i < count; i++) //count = number of children
60     {
61        if (localXML.children()[i].Name != firstName ¬
      && localXML.children()[i].Surname != surName ¬
      && localXML.children()[i].Company != companyName)
62        {
63          tempXML.appendChild(localXML.children()[i]);
64        }
65     }
66        trace("tempXML: --> "+tempXML);
67        localXML = tempXML;  <---- MOVED HERE!!!

我正在使用每个循环更新localXML!羞!!!

1 个答案:

答案 0 :(得分:1)

检查XML。 localXML.children()[i]为空或Name不存在作为对象上的子节点。

还要记住,如果Name是XML中的属性,那么您需要以不同方式访问它。

如果名称设置如下:

<node>
    <Name>Stuff</Name>
</node>

然后你就已经这样做了。但如果是这样的属性:

<node Name="stuff"></node>

然后你需要像这样访问它:

localXML.children()[i].@Name

另一个可能的问题是children()电话。我之前从未使用过它所以我不知道具体如何表现。如果上述问题没有解决问题,请尝试重写解析器以跳过children()调用,并像通常使用嵌套循环一样解析它。

最后,虽然错误#1010意味着术语未定义且不存在,因此您只需要找出为什么它不存在。