Pregunta

Tengo una pregunta acerca HTTPService y los datos que devuelve.

Bueno, vamos a considerar este 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>

Como ves, tengo dos instancias de foto , que se recupera mediante un HTTPService, pues bien en el Evento Resultado de ese mismo HTTPService i querría que el recuento de la cantidad de instancias con nombre < strong> foto que como es devuelta a la .lastResult.

Esta es una pregunta tonta, pero no puedo encontrar en cualquier lugar en Adobe Docs.

Por supuesto ninguna ayuda, indirecta, la sugerencia es muy apreciada.


Medoix

Tengo que estar ciego o algo así, porque todavía devuelve 0.

algo que falta aquí?

MXML

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

ActionScript

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');
    }
}
¿Fue útil?

Solución

en la función http_result usted tiene que va a guardar estos datos en un objeto XMLList para un ejemplo y luego puede llamar a la 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();
    }
}

EDIT: Haga el siguiente ...

Cambiar

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

Para ...

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

Esto es trabajo para mí.

Otros consejos

Sólo hacer lo siguiente. se va a resolver sus problemas descritos;)

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;

    }
}

RSTanvir

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top