Flex 3: HTTPService не работает для одного файла ... кто-нибудь видел что-нибудь не так с кодом? - PullRequest
0 голосов
/ 06 июля 2011

Итак, у меня есть три вызова HTTPService для трех разных файлов XML:

<mx:HTTPService id="projectsHttp" url="projects.xml" resultFormat="e4x" makeObjectsBindable="true" result="countProjects(event)" />
<mx:HTTPService id="studentsHttp" url="students.xml" resultFormat="e4x" makeObjectsBindable="true" result="createStudentsCollection(event)" />
<mx:HTTPService id="dprepHttp" url="directorsPrep.xml" resultFormat="e4x" makeObjectsBindable="true" result="createPhase(event)" />

Первые два прекрасно работают ... но последний просто не будет работать. Для целей тестирования функция createPhase выглядит следующим образом:

public function createPhase(e:ResultEvent):void
{
    Alert.show("Testing");
}

Кроме того, файл directorsPrep.xml выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<directorspreps>
    <directorsprep>
        <prepid>1</prepid>
        <title>dir. prep. 1</title>
        <workingtitle>dp1 WT</workingtitle>
        <startdate>7/7/2011</startdate>
        <numdays>2</numdays>
        <positions>
            <role>1D</role>
            <role>2D</role>
            <role>1C</role>
        </positions>
    </directorsprep>
    <directorsprep>
        <prepid>2</prepid>
        <title>dir. prep. 2</title>
        <workingtitle>dp2 WT</workingtitle>
        <startdate>7/10/2011</startdate>
        <numdays>3</numdays>
        <positions>
            <role>1D</role>
            <role>2D</role>
            <role>1C</role>
            <role>GE</role>
        </positions>
    </directorsprep>
</directorspreps>

Кто-нибудь видел что-нибудь, что могло бы помешать загрузке файла directorsPrep.xml?

EDIT: Я идиот ... Не делал .send (); :( Извините за потерю времени

1 Ответ

1 голос
/ 06 июля 2011

Трудно сказать наверняка.Я создал небольшой проект во Flex3, который включает в себя ваш файл XML, и он отлично работал для меня.Вы должны добавить обработчик fault, чтобы знать, почему он не работает.Поместите точку останова в этот обработчик, если вам нужно проверить вещи.Кроме того, убедитесь, что вы вызываете send() для загрузки этого XML-файла.Вот пример того, что работало для меня (включая обработчик ошибок).

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600">

    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.rpc.events.FaultEvent;
            import mx.rpc.events.ResultEvent;

            public function createPhase(e:ResultEvent):void
            {
                Alert.show(e.result.toString());
            }

            protected function createPhaseFailed(e:FaultEvent):void
            {
                Alert.show(e.message.toString());
            }

        ]]>
    </mx:Script>

    <mx:HTTPService id="dprepHttp" url="directorsPrep.xml" resultFormat="e4x" makeObjectsBindable="true" 
                    result="createPhase(event)" fault="createPhaseFailed(event)" /> 

    <mx:initialize>
        <![CDATA[
            dprepHttp.send();
        ]]>
    </mx:initialize>

</mx:Application>

Удачи!

...