Flex Coercion错误类型#1034

时间:2013-05-31 21:52:28

标签: actionscript-3 flex flash-builder arraycollection

我正在构建一个Flex Mobile应用程序并且我一直收到此错误:

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

谢谢, 雅各布

1 个答案:

答案 0 :(得分:0)

您的远程服务很可能是在getInvites.lastResult.Invites.EventTitle中返回一个数组,该数组与ArrayCollection不同,并且无法即时转换&#34;

你可以试试这个:

<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调用添加一个正确的结果处理程序并处理结果。