我正在构建一个Flex移动应用程序,我一直得到这个错误:
TypeError: Error #1034: Type Coercion failed: cannot convert mx.collections::ArrayCollection@ba39581 to Array.
它说错误发生在这里(在ArrayCollection部分):
<s:List id="invites" x="5" y="295" width="310" change="rowSelected(event)">
<s:dataProvider>
<s:ArrayCollection source="{getInvites.lastResult.Invites.EventTitle}"/>
</s:dataProvider>
</s:List>
HTTPService调用:
<s:HTTPService id="getInvites" result="getInvitesResult(event)" method="POST" url="http://localhost/invite.php" useProxy="false">
<s:request xmlns="">
<method>GET_INVITES</method>
<userID>{my_id.text}</userID>
</s:request>
</s:HTTPService>
我不知道为什么这个错误发生,我一直试图找出它2小时。如有任何帮助,不胜感激。
也可以访问"invite.php"文件,并且工作正常。
谢谢,雅各
很可能你的远程服务返回一个数组在getinvitation . lastresult . invitation . eventtitle,这是不一样的ArrayCollection,不能转换为"on the fly"
你可以试试:
<s:List id="invites" x="5" y="295" width="310" change="rowSelected(event)">
<s:dataProvider>
<s:ArrayCollection source="{new ArrayCollection(getInvites.lastResult.Invites.EventTitle)}"/>
</s:dataProvider>
</s:List>
但是,老实说,我强烈建议你在HTTPService调用中添加一个适当的结果处理程序,并在其中处理结果。