我想要做的是向PHP页面发送HTTP请求,获取正在回复的内容并返回它。
这样的事情
PHP页面:
<?php
echo "test";
AS3代码:
function openRequest(url) {
open_page (url);
return response_from_page;
}
所以我可以在AS3中使用这样的函数
if (openRequest(php_page.php) == "test") {
//do
}
我该怎么做?
我希望我能解释这个概念。
感谢。
答案 0 :(得分:0)
正如akmozo在评论中所说,您可以使用URLLoader
执行HTTP请求并在COMPLETE
事件后阅读回复。
然而,你不能完全按照你说的方式做到这一点。在继续执行之前,ActionScript不能等待异步操作(如HTTP请求),因此函数在返回值之前不能等待。换句话说,openRequest
可以打开HTTP请求,但无法在返回和退出函数之前等待响应。
相反,您可以使用回调对代码进行排序:
function openRequest(url:String, then:Function):void {
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, complete);
urlLoader.loader(new URLRequest(url));
function complete(e:Event):void {
urlLoader.removeEventListener(Event.COMPLETE, complete); // cleanup
then(urlLoader.data);
}
}
现在您可以编写如下代码:
openRequest("php_page.php", function(response) {
if (response === "test") {
// do something
}
});
请注意,openRequest
之后的任何代码都会在收到回复后立即执行,不。收到收到回复后,你想要发生的任何事情都必须放在回调中。