如何将HTTP请求发送到PHP页面并在AS3中获得回声响应?

时间:2016-08-03 20:19:27

标签: php actionscript-3 flash

我想要做的是向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
}

我该怎么做?

我希望我能解释这个概念。

感谢。

1 个答案:

答案 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之后的任何代码都会在收到回复后立即执行,。收到收到回复后,你想要发生的任何事情都必须放在回调中。