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 脚本返回的内容。如果您想使用 HTTP 获取请求来加载它;我建议使用HTTPService。如果您可以使用与 AMF 相关的东西,例如 AMFPHP 或 ZenAMF,那么我会使用RemoteObject

于 2013-01-01T21:12:13.230 回答