【发布时间】:2012-02-07 21:10:26
【问题描述】:
我正在连接到 Actionscript 3 (Adobe Flex) 中的一些 PHP 文件。 但是当其中一个 PHP 文件出错时,我的 Flash 项目就不能正常工作了。
是否有可能在 Actionscript 中检测到 PHP 错误,以便我可以在 Actionscript 中显示出错的消息?
谢谢。
【问题讨论】:
标签: php actionscript-3 apache-flex flex4 flex4.5
我正在连接到 Actionscript 3 (Adobe Flex) 中的一些 PHP 文件。 但是当其中一个 PHP 文件出错时,我的 Flash 项目就不能正常工作了。
是否有可能在 Actionscript 中检测到 PHP 错误,以便我可以在 Actionscript 中显示出错的消息?
谢谢。
【问题讨论】:
标签: php actionscript-3 apache-flex flex4 flex4.5
如果问题确实导致调用引发错误,我相信您会在 AS3 中收到 FaultEvent 而不是 ResultEvent,并且可以为其添加侦听器。如果不是它抛出错误而是它只是爆炸,你可以在响应中放入一些文本,表明它已成功完成。如果您将 XML 作为结果返回,您可以在处理结束时包含一个节点,上面写着“processingCompletedSuccess”之类的内容,并在 Flex 的结果处理程序中查找此节点,或者类似地,如果它是纯文本结果,您可以附加一个“成功”作为最后一个词,然后读取结果处理程序中的最后一行,看看它是否表示成功(将其剥离以进行进一步处理)。
【讨论】:
这取决于错误是什么。如果是致命的、不可捕获的错误,则否。但是,大多数错误很可能是可捕获的,因此可以通过响应适当的错误来处理。
看:
http://php.net/manual/en/function.set-exception-handler.php
http://www.php.net/manual/en/function.set-error-handler.php
【讨论】:
您没有说明您从“PHP 文件”返回的数据类型,所以我假设它是 XML。
当我使用 XML 时,我会标准化我的 XML 以遵循非常特定的灯光格式。
<root>
<data>
// your data here
</data>
<error/>
<message/>
</root>
在我的 php 中,我将它包装在一个 try catch 中。在 catch 块中,我将在消息节点内返回错误。并将在错误节点内分配一个 1。
因此错误消息可能如下所示。
<root>
<data/>
<error>1</error>
<message>some error from php here</messge>
</root>
所以在 AS 方面我需要做的就是测试
response.error == 1
伪代码,但你应该明白。
【讨论】: