@aib 残念ながら正しくありません。厳密モード (デフォルトのコンパイラ モード) を仮定すると、ActionScript 3 で非動的クラス タイプのプロトタイプを変更することはできません。非厳密モードで可能かどうかさえわかりません。
ラッピングはオプションですか?基本的に、Web サービスから取得したオブジェクトの 1 つを取得し、すべてのメソッド呼び出しをそのオブジェクトに転送するだけでなく、独自のメソッドも持つクラスを作成します。
public class FooWrapper extends Foo {
private var wrappedFoo : Foo;
public function FooWrapper( foo : Foo ) {
wrappedFoo = foo;
}
override public function methodFromFoo( ) : void {
wrappedFoo.methodFromFoo();
}
override public function anotherMethodFromFoo( ) : void {
wrappedFoo.anotherMethodFromFoo();
}
public function newMethodNotOnFoo( ) : String {
return "Hello world!"
}
}
で作業したいがFoo
、必要な追加のメソッドもある場合は、Foo
インスタンスを でラップし、FooWrapper
代わりにそのオブジェクトで作業します。
これは最も便利な解決策ではありません。多くの入力があり、生成されたコードが変更さFooWrapper
れた場合は手動でクラスを変更する必要がありますが、生成されたコードを変更して、必要なメソッドを含めるか、クラスを動的にすることができない限り、私はしませんそれがどのようにできるかわかりません。
もう 1 つの解決策は、生成されたクラスのソースを変更するステップをビルド プロセスに追加することです。WSDL からコードを生成するステップが既にあると想定しているため、必要なメソッドを挿入するステップをその後に追加することができます。