我的Flex应用程序运行一个服务到一个php页面,该页面从我的数据库中提取数据,然后以XML格式构造结果。我在任何函数之外创建了一个名为testList
的新XMLList,然后当结果返回时(它们首先作为包含所有XML代码的单个字符串进行flex)我有以下代码将其转换为XML和然后附加到我的testList:
var s:String = event.result as String;
var xml:XML = new XML(s);
testList = xml.user;
数据在一个函数中使用,然后它也传递给我的一个组件,我尝试在List中显示XMLList(使用testList作为dataProvider),我得到以下错误:
TypeError:错误#1034:类型强制失败:无法将XMLList @ 68ffa01转换为mx.collections.IList。
我有一种感觉,这可能是一个菜鸟错误,但任何帮助都表示赞赏。
答案 0 :(得分:4)
E4X表达式返回匹配XML的列表。 xml.user
为您提供了所有user
元素的XMLList。您可以使用实现XMLListCollection
的{{1}}来包装结果,以便将其用作数据提供者。
IList
另一个选项是循环XMLList并将其添加到数组或您需要的任何集合。如果您确定只有一个用户,则可以这样做:
var xml:XML = new XML(event.result as String);
var list:IList = new XMLListCollection(xml.user);
答案 1 :(得分:1)
您可能在已加载的模块或swf中使用此内容,并且加载程序具有与父项不同的applicationDomain,而其他一些已加载的模块或swf也在使用XMLList或XMLListCollection。如果没有关于您的体系结构的更多详细信息,我只能告诉您确保父applicationDomain在子项之前加载XMLList和/或XMLListCollection,或者确保它们共享父项的applicationDomain。