0

MXML の fx:Declarations タグ内に定義された WebService オブジェクトがあり、その中にいくつかの操作があり、それらの操作の応答および障害ハンドラーがあるとします。ここで、その WebService を別のオブジェクトのコンストラクターに渡したいとします。これにより、実行時に WebService に操作が追加され、その新しい操作に対する独自の応答および障害ハンドラー関数が追加されます。

例えば:

<fx:Declarations>
    <s:WebService id="ws" fault="Alert.show('failure')">
        <s:operation
            name="Op1"
            resultFormat="object"
            result="WebOp1(event);"
            fault="WebFaultOp1()"
        />
    </s:WebService>
</fx:Declarations>

.
.
.
        var a:A = new A(ws);

と:

public class A
{
    private var m_ws:WebService;

    public function A(pWS:WebService)
    {
        m_ws = pWS;
        m_ws.Op2 = new Operation();
        m_ws.Op2.resultFormat = "object";
        m_ws.Op2.result = WebOp2(event);
        m_ws.Op2.fault = WebFaultOp2(event);
    }

    private function WebOp2(pEvent:ResultEvent):void
    {
    }

    private function WebFaultOp2(pEvent:FaultEvent):void
    {
    }
}

これはどのように行うことができますか?必要に応じて MXML を使用するつもりですが、ここで避けたいのは、同じ WSDL を共有する 2 つの別個の WebService オブジェクトを作成しなければならないようなことです。ありがとう!

4

1 に答える 1

0

そのようにしてみてください:

var operation:Operation = new Operation(webService, 'noName'); // mx.rpc.soap.mxml.Operation
operation.addEventListener(ResultEvent.RESULT, onResult);
operation.addEventListener(FaultEvent.Fault, onFault);
webService.operations['noName']=operation;
于 2013-01-04T15:00:46.153 に答える