0

Flex Mobile / PHP アプリケーションを開発しようとしていますが、AsyncToken で問題が発生しています...基本的な文字列を返すだけではありませんか?

たとえば...リクエストから単純な文字列の結果を返したいだけです-今、実装されているメソッドから基本的な出力文字列を返します。バックエンド部分は動作します (PHP)、私はそれをすべて行いました...これが私にいくつかの問題を引き起こしています:

import mx.rpc.AsyncResponder;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function button_clickHandler(event:MouseEvent):void
{
    loginResult.token = user_service.login();
    loginResult.token.addResponder(new AsyncResponder(onResult,onFault));
}

public function onResult(event:ResultEvent, token:Object):void
{
    // what would i do here??
}

public function onFault(event:FaultEvent,token:Object):void
{
    txtResult.text = event.fault.faultDetail;
}

それは非常に簡単です - どんな提案や推奨事項もきっと役に立ちます! ありがとうございました!

4

1 に答える 1

2

簡単です。ResultEvent #resultプロパティには、リモート サービスから返された値が含まれます。必要なのは、正しいタイプにキャストすることだけです (デフォルトではオブジェクトであるため)。

たとえば、文字列を返すサービス メソッドを処理するには、次のようにします。

public function onResult(event:ResultEvent):void {
    var s:String = event.result as String;
}

他のタイプについても同様です。

var a:Array = event.result as Array;

またはさらに複雑なカスタム クラス:

var instance:MyClass = event.result as MyClass;

この最後の例は、AMF リモート処理でのみ機能することに注意してください。クライアント側とサーバー側で同じクラス定義が必要です。[RemoteClass(alias="net.riastar.MyClass")]AS クラス定義のメタデータ タグを使用して、お互いの存在を知らせる必要があります。サーバー側でこれをどのように処理する必要があるかは、そこで使用される言語によって異なります。

于 2011-12-17T13:07:13.713 に答える