0

我有一个 PHP 进程,它做了很多事情,我想在处理请求时向调用它的 Flash 客户端发送反馈。但是,由于我正在侦听 COMPLETED 事件,直到 PHP 完成执行(此时所有缓冲消息同时到达),我才得到反馈。

我尝试使用 PROGRESS 事件,但这似乎不起作用(除非我没有正确使用它)。

在 PHP 方面有什么我可能会遗漏的东西吗?还是 Flash 根本不是为了在常规 URLRequest 中从服务器获取更新而设计的……我可以为此使用套接字,但我宁愿不必这样做!

4

3 回答 3

2

取决于您要求 PHP 在后端做什么。如果您要发送 json 或 xml 数据,您可以随时调用flush以更频繁地向客户端发送当前输出缓冲区。

于 2011-04-20T18:13:29.560 回答
2

您是否尝试过在使用 PHP 的flush()函数定期发送输出时使用 PROGRESS 事件,而不是在 PHP 脚本完成执行时发送输出。

于 2011-04-20T18:13:46.450 回答
1

可以办到。关键是flash.net.URLStream。我正在以这种方式使用它,(代码不完整,但我想你明白了):

var stream:URLStream = new URLStream();
var request:URLRequest = new URLRequest("yourUnbufferedPHPURLhere?rand="+Math.random());
stream.addEventListener(ProgressEvent.PROGRESS, progressHandler);
stream.load(request);
function progressHandler(event:Event):void{
    trace("PROGRESS: "+stream.readUTFBytes(stream.bytesAvailable));
}
于 2011-09-10T23:01:21.907 回答