我是ActionScript和Flash环境的新手(刚刚开始),我正在尝试从.php文件中获取数据。 所以我在互联网上找到了this AjaxRequest class。
我正在使用我的Main actionscript类测试它,该类与 AjaxRequest.as
在同一个包中我的函数( HelloWorld.as 的构造函数)是:
// Create a TextField object and set its content to my php (AJAX) output
var t:TextField = new TextField( );
//Line 38 is this :
t.htmlText=new AjaxRequest("http://localhost/my_ajax_agent.php?action=flash");
addChild(t);
当我运行主类为 HelloWorld.as 的flash文件时,出现以下错误:
C:\path\to\HelloWorld.as, Line 38 1067: Implicit coercion of a value of type pakaj:AjaxRequest to an unrelated type String.
修改: 我的问题是:
为了将AJAX调用的结果作为字符串获取,我该怎么做?
感谢您的帮助!
注意:我的* ajax_agent.php *文件只能执行此操作。
if(@$_GET['action']=="flash"){echo "Hello World";}
答案 0 :(得分:0)
您的代码错误,因为您尝试将AjaxRequest分配给String(TextField的htmlText属性是String类型的)。
您必须使用HTML“a href”标记在htmlText中写一个链接。
如果您想要一个请求结果,那么您必须添加事件监听器来请求并执行它。当您的请求被清除时,事件将触发,您可以从中检索字符串结果数据。所以,将这些数据放入TextField的htmlText。
答案 1 :(得分:0)
为了从该请求接收任何内容,您必须先调用AjaxRequest.send()
,然后您必须等到该请求返回数据(查询URLLoader.data
它将收到自己的{{1}事件)。任何涉及外部数据源的东西都是异步的,这意味着结果不能立即获得。当然,您无法直接接收该请求的结果,因此将Event.COMPLETE
分配给TextField是正确的错误。错误就是这么说的。使用this manual和this set of instructions了解如何使用加载程序并接收加载的内容。