0

Flex モバイル アプリケーションを構築していますが、次のエラーが発生し続けます。

TypeError: Error #1034: Type Coercion failed: cannot convert mx.collections::ArrayCollection@ba39581 to Array.

ここでエラーが発生していると言われています(ArrayCollection Partで):

<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 に答える