0

次の質問があります。fxモデル接続のソースとしてphpファイルを選択するにはどうすればよいですか。

fxモデルソースでxmlファイルを返すphpファイルを使用したいと思います。これは可能ですか?

今、私はhttpサービスを使用して、実行時にphpファイルを読み取り、xmllistcollectionを使用しようとしました。これは私のコードです:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" 
           xmlns:components="components.*">

<s:layout>
    <s:VerticalLayout paddingTop="20" gap="20" 
                      horizontalAlign="center" />
</s:layout>
<fx:Script>
    <![CDATA[
        import mx.rpc.events.ResultEvent;
        import mx.collections.ArrayCollection; 
        import mx.collections.XMLListCollection; 

        import mx.rpc.events.FaultEvent;
        import mx.controls.Alert;
        private var alert:Alert;

        private function httpService_fault(evt:FaultEvent):void {
            var title:String = evt.type + " (" + evt.fault.faultCode + ")";
            var text:String = evt.fault.faultString;
            alert = Alert.show(text, title);
            Bezoekers.removeAll();
        }

        private function httpService_result(evt:ResultEvent):void {
            var xmlList:XMLList = XML(evt.result).bezoekers.bezoeker;
            Bezoekers = new XMLListCollection(xmlList);
        }
    ]]>
</fx:Script>
<fx:Declarations>
    <s:HTTPService id="httpService"
                   url="http://localhost/projectnieuw/src/data/bezoekersList.php"
                   resultFormat="e4x"
                   fault="httpService_fault(event);"
                   result="httpService_result(event)" />
    <!--<fx:Model id="lijstAlleLeden" source="httpAlleLeden" />-->
    <!--<s:ArrayCollection id="acBezoekers" source="{Bezoekers}"/>-->
    <s:XMLListCollection id="Bezoekers"/>
</fx:Declarations>

<components:Heading/>
<s:HGroup gap="50">

    <components:BezoekersList bezoekerList="{Bezoekers}" />
    <components:ReservationForm/>

</s:HGroup>

</s:Application>

エラーは発生しませんが、リストに情報が表示されません。

4

1 に答える 1

3

私があなたがやりたいことを理解しているなら; その後、あなたはそれを行うことはできません。Modelタグは、コンパイル時の値です。そのモデルデータは、本質的に、コンパイル時にSWFに埋め込まれます。一方、PHPスクリプトは実行時に実行されます。FlexがPHPファイルを埋め込んだとしても; PHPコードを使用しているのであって、PHPコードを実行したときに得られる結果ではありません。

実行時にPHPスクリプトからデータをロードすることを検討することをお勧めします。これを行う方法はたくさんあります。PHPスクリプトが返すものによって異なります。HTTPGetRequestを使用してロードする場合。HTTPServiceの使用をお勧めします。AMFPHPやZenAMFなど、AMFに関連するものを利用できる場合は、RemoteObjectを使用します。

于 2013-01-01T21:12:13.230 に答える