从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>
因此,从我上面的例子中,你可以看到,我只是试图用新页面1()、新页面2()和新页面3()替换但这样做会导致这个错误:
TypeError:错误#1034:类型强制失败:无法将"new page1(),new page2()"转换为Array。
我知道最好的方法可能是拼接或其他什么,但阵列稍后会变得混乱,我可能会超过50页(每个帐户代码有不同的页面选择)。
如果有任何关于我能做什么或我做错了什么的想法,我将不胜感激。
错误的做法是获取一个字符串并将其指定为数组。。。相反,你似乎想基于字符串创建类的实例,因为你说你必须解析字符串,然后使用之类的东西创建新的实例
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());
}