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 スクリプトの実行が終了したときではなく、 PHP のflush()関数を使用して定期的に出力を送信する際に、PROGRESS イベントを使用してみましたか。

于 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 に答える