0

因此,我对三个不同的 XML 文件进行了三个 HTTPService 调用:

<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 文件无法加载的东西吗?

编辑: 我是个白痴......没有做 .send(); :(对不起浪费时间了

4

1 回答 1

1

很难确定。我在 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>

祝你好运!

于 2011-07-06T14:36:54.083 回答