【问题标题】:Parse Error When Trying to Set a Break in Flex 3尝试在 Flex 3 中设置中断时解析错误
【发布时间】:2009-03-02 18:53:27
【问题描述】:

我一直在尝试在我的 Flex 3 项目中设置 HTTP 中断,但没有成功。显然,我对编程一无所知,而且我没有很多参考资料。当我尝试导出项目时,我收到结果处理程序和 var 错误字符串的解析错误。我附上了我放置中断位置的代码 sn-p。

<mx:HTTPService id="getData" url="http://www.myurl.com"


useProxy="false" method="GET" resultFormat="text" resultType="text" 
         result="resultHandler(event)" fault="faultHandler(event)">

private function resultHandler(e:ResultEvent):void {
        trace(e.result); 
}


private function resultHandler(e:FaultEvent):void {
        var faultstring:String = event.fault.faultString; 
        Alert.show(faultstring); 
}


<mx:request xmlns="">
  <getTutorials>"true"</getTutorials>


</mx:request>

我认为这可能与 PHP 文件和 Flex 正在寻找的数据类型有关?这是我在浏览器中收到的第一个错误。

TypeError: Error #1034: Type Coercion failed: cannot convert "[{"id":"2","name":"Strapless Wedding Dress Tips","author":"Ramona Waters","rating": "0"},{"id":"3","name":"协调你的新娘女仆","author":"Ericka Brown","rating":"0"}]" 到 mx.controls.Alert . 在 DressBuilder2/resultHandler() 在 DressBuilder2/__getData_result() 在 flash.events::EventDispatcher/dispatchEventFunction() 在 flash.events::EventDispatcher/dispatchEvent()

【问题讨论】:

    标签: apache-flex http actionscript


    【解决方案1】:

    更新:太棒了,你的代码已经编译好了!尝试以下方法:

    • 如果您有array 的对象,请设置resultFormat=array。在数组中获取此值并循环查看是否可以看到这些项目。如果这不起作用,请尝试下一个提示。
    • 从 HTTPService 标记中删除 resultFormat(与将其设置为 object 相同)。见this

    AS 中的函数通常位于&lt;mx:Script&gt; 标记内。这是首先要解决的问题。您还必须导入您正在使用的类的定义。看看这里:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
                    layout="absolute" width="535" height="345"
                    creationComplete="getData.send()">
    <mx:Script>
      <![CDATA[
     import mx.rpc.events.FaultEvent;
     import mx.rpc.events.ResultEvent;
     import mx.controls.Alert;
         import mx.rpc.http.HTTPService;
    
     private function resultHandler(e:ResultEvent):void {
        Alert(e.result.toString());
     }
     private function faultHandler(e:FaultEvent):void {
        Alert(e.fault.toString());
     }
      ]]>
     </mx:Script>
    <mx:HTTPService id="getData" resultFormat="text" 
                    fault="faultHandler(event)" result="resultHandler(event)"   
                    url="http://www.myurl.com"/>
    </mx:Application>
    

    尝试使用此 MXML 文件,让我们知道您的进度。

    【讨论】:

    • 我尝试了这段代码,最终能够导出我的项目。唯一的问题是,我的数据表中仍然没有看到任何内容...
    • 通过断点,你的意思是我应该在我的html页面上看到一个错误?表格仍然显示,没有像以前那样显示任何内容。
    • 没有。您在一行上插入一个断点,当您在调试模式下(使用 F11)运行程序时,程序将进入该步骤并在那里暂停,直到您要求它向前移动(F6 或 F8),即如果您使用的是 Flex Builder。
    • 我终于用F11模式了,浏览器收到几个错误。
    • 太棒了!所以你可以编译没有任何错误?您得到的(崩溃)是运行时错误。它看起来像什么(至少前 4 行?)把它放在你的问题中,我们会看到。
    猜你喜欢
    • 2014-01-27
    • 1970-01-01
    • 2022-10-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 2020-01-17
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多