0

簡単なメモ: 私のアクションスクリプトのスキルは弱いソースです...私はサルではないので、適切なアドバイスがあれば、私は物事を理解することができます:

そのため、 SabreAMFを使用して、バックエンドへの AMF 呼び出しを処理します。

物事はうまく機能します。

コールバック サーバーとアクション スクリプト側はすべて期待どおりに動作します。

解決したい問題は次のとおりです。

現状では、データのセット (配列) を返す必要がある場合は、次のようにして (php 側で) 連結するだけです。

return 'VALUE1|VALUE2|VALUE3';

そして、アクション スクリプト側では、次のようにします。

var parts:Array=result.split('|');

/* parts[0] = VALUE1 , parts[1] = VALUE2 , parts[2] = VALUE3 */

上記は問題なく機能しますが、物事を行うためのよりクリーンな方法が必要だと思わずにはいられません。

次のようなことをしたいと思います。

PHP 終了 (SabreAMF):

 return array('Param1'=>'Value1','Param2'=>'Value2','Param3'=>'Value3');

そして、アクションスクリプト側でこのデータを配列またはオブジェクトに自動的にマップします。アクション スクリプト側で配列を返し、それらを適切に (そして自動的に) マップすることができるのは当然のことです。

したがって、質問は次のとおりです。

SabreAMF を使用して PHP ベースのバックエンドへの actionscript AMF 呼び出しを処理する場合、配列を返し、actionscripts AMF ハンドラーがデータセットを配列 (理想的には) またはオブジェクトに自動的にマップし、連結を使用しないようにすることはできますか?

連結シームはちょっとしたハックのようです。

ありがとう!

4

3 に答える 3

1

json_encode() を使用して JSON 経由で文字列として送信し、AS3 で任意の JSON ライブラリを使用して適切なデータ構造に変換します。それが最も簡単な方法だと思います...あるいは、私が間違っていて、誰かがより良い答えをくれるでしょう。

編集: XML 文字列として送信することもできますが、AS3 の同僚は、より簡単な代替手段として常に JSON を使用することを主張しています。

于 2012-12-30T12:10:55.420 に答える
1

AMF を使用して、やりたいことを実行できます。Flash は、受信したデータを透過的に解釈します。ただし、Sabre AMF はメンテナンスされていないため、AmfPHP を確認することをお勧めします。(免責事項: 私は AmfPHP を実行しています)。

JSON と XML も機能します。AMF は、あなたが知っていることによっては、設定するのにもう少し手間がかかるかもしれません。その主な利点は、帯域幅の節約と強力なタイピングであるため、最適なものを見つけてください.

http://www.silexlabs.org/amfphp/

于 2013-01-03T08:02:15.887 に答える
0

PHP AMF3拡張機能は、プロジェクトにはるかに高速に組み込むことができます。

これをチェックしてください-https://github.com/neoxic/php-amf3

// Have your data
$data = array('Param1'=>'Value1','Param2'=>'Value2','Param3'=>'Value3');

// Encode into AMF3
$str = amf3_encode($data);

// Print to stdout (or use your way to pass it to the client)
print $str;
于 2013-02-21T20:17:19.380 に答える