难以从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()];
当我在数组中导航时,这一切都运行良好。
然后,当我尝试用一个来自XML文件的新数组替换该数组时,问题来自于MovieClip。
/..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 page1(),new page2(),new page3(),new第2页() 但这样做会导致此错误:
TypeError:错误#1034:类型强制失败:无法将“new page1(),new page2()”转换为Array。
我知道最好的方法可能是拼接或其他东西,但后来阵列会变得混乱,我可能会超过50页(每个帐户代码选择不同的页面)。
对于我能做什么或做错什么都不会有任何想法。
答案 0 :(得分: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());
}