0

难以从 XML 中获取数据并将其放入数组中。

在我的文档开头,我的数组如下所示:

// MC's in library with exported for AS with class names "page1", "page2", etc.
var pageArray:Array = [new page1(), new page2(), new page3(), new page4(), new page5()];

当我浏览数组时,这一切都很好。

然后,当我尝试用来自 MovieClip 的 XML 文件中的新数组替换该数组时,我的问题就来了。

/..xml details etc../
var pages_xml:String = xmlData.account.(@code == String(codeField.text)).pages;
MovieClip(root).pageArray = pages_xml;

我的 XML 中的一行示例如下所示。

<account code="1"><accountName>Account1</accountName><pages>new page1(), new page2()</pages></account>

所以从我上面的例子中你可以看到我只是想用 new page1(), new page2() 替换new page1(), new page2(), new page3 () 但是这样做会导致这个错误:

TypeError:错误 #1034:类型强制失败:无法将“new page1(), new page2()”转换为数组。

我知道最好的方法可能是拼接或其他方式,但数组稍后会变得混乱,我可能会超过 50 页(每个帐户代码的页面选择不同)。

将不胜感激任何关于我能做什么或我做错了什么的想法。

4

1 回答 1

2

您做错了什么是获取一个字符串并将其分配为一个数组...相反,您似乎想根据字符串创建类的实例,因为您说您必须解析字符串然后创建新实例使用类似的东西

var parsedString:Array = pages_xml.split(",");
MovieClip(root).pageArray=[];
for(var i:int=0;i<parsedString.length;i++)
{
    var clazz:Class = getDefinitionByName(parsedString[i]) as Class;
    MovieClip(root).pageArray.push(new clazz());
}
于 2012-07-16T02:12:02.917 回答