代码之家  ›  专栏  ›  技术社区  ›  Fábio Antunes

httpservice result-检查具有指定名称的项目数

  •  0
  • Fábio Antunes  · 技术社区  · 15 年前

    我有一个关于httpservice及其返回的数据的问题。

    我们来考虑一下这个XML:

    <PhotoGalleryData>
        <Photo>
            <id>1</id>
            <name>Summer Vacation</name>
            <description>In vacation</description>
            <fullImage>originalImg/1.JPG</fullImage>
        </Photo>
        <Photo>
            <id>2</id>
            <name>Winter Vacation</name>
            <description>coold</description>
            <fullImage>originalImg/2.JPG</fullImage>
        </Photo>
    </PhotoGalleryData>
    

    如你所见,我有两个例子 照片 ,这将使用httpservice进行检索,然后在同一httpservice的结果事件上,我希望他计算指定实例的数量 照片 他回来的时候是 .lastResult .

    这是一个愚蠢的问题,但我在Adobe文档中找不到它。

    当然,任何帮助、提示、建议都会受到极大的赞赏。


    水母

    我一定是瞎了什么的,因为它仍然返回0。

    这里少了点什么?

    MXML

    <mx:HTTPService id="getData"
        url="{XMLDataFileLocation}"
        showBusyCursor="true"
        fault="getDataFaultHandler()"
        result="getDataResultHandler(event)"/>
    

    动作脚本

    import mx.controls.Alert;
    import mx.rpc.events.ResultEvent;
    private var xmlData:XMLList;
    private var numItems:int;
    private function getDataResultHandler(evt:ResultEvent):void
    {
        if (evt.result.PhotoGalleryData)
        {
            xmlData = XML(evt.result).descendants("Photo");
            numItems = xmlData.length();
            Alert.show('Nº '+numItems,'num de Photo');
        }
    }
    
    2 回复  |  直到 15 年前
        1
  •  2
  •   medoix    15 年前

    在http_result函数中,您将把这些数据放在xmlList中作为示例,然后可以调用xmlList.length();

    private var xmlData:XMLList;
    private var numItems:Integer;
    
    private function HttpResult(evt:ResultEvent):void {
        if (evt.result.PhotoGalleryData) {
            xmlData = XML(evt.result).descendants("Photo");
            numItems = xmlData.length();
        }
    }
    

    编辑:执行以下操作…

    更改

    <mx:HTTPService id="getData"
        url="{XMLDataFileLocation}"
        showBusyCursor="true"
        fault="getDataFaultHandler()"
        result="getDataResultHandler(event)"/>
    

    为了…

    <mx:HTTPService id="getData"
        url="{XMLDataFileLocation}"
        resultFormat="e4x";
        showBusyCursor="true"
        fault="getDataFaultHandler()"
        result="getDataResultHandler(event)"/>
    

    这对我有用。

        2
  •  0
  •   RSTanvir    15 年前

    只需执行以下操作。它将解决您的问题;)

    private var xmlData:XMLList;
    private var numItems:Integer;
    
    private function HttpResult(evt:ResultEvent):void {
        if (evt.result.PhotoGalleryData) {
    
            numItems = ArrayCollection(evt.result.PhotoGalleryData.Photo).length;
    
        }
    }
    

    斯坦斯维尔

    推荐文章