错误 #1034:类型强制失败:无法将" "转换为数组



从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());
}

最新更新