0

我正在构建一个 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>

“getInvites”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”文件,并且工作正常。

谢谢,雅各布

4

1 回答 1

0

您的远程服务很可能在 getInvites.lastResult.Invites.EventTitle 返回一个数组,该数组与 ArrayCollection 不同,并且不能“即时”转换。

你可以试试这个:

<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 调用中添加适当的结果处理程序并在其中处理结果。

于 2013-05-31T22:58:20.887 回答