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

时间:2012-07-16 02:08:57

标签: xml arrays actionscript-3 flash

难以从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页(每个帐户代码选择不同的页面)。

对于我能做什么或做错什么都不会有任何想法。

1 个答案:

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