0

Flex 3.2 では、リモート オブジェクトの結果をモジュール内のクライアント側の特定のオブジェクトに変換する際に問題が発生します。

たとえば、VIPSAdmin モジュールがあります。

それは機能を持っています

private function doResult(event:ResultEvent):void {
var data_:Array = ArrayUtil.toArray(event.result); 
var result:ResultDTO = data_[0] as ResultDTO;
if(!result.isError()) {
    trace(result.result);
    vipsAdminDTO = result.result as VIPSAdmin;
    compId= vipsAdminDTO.compId; // second time dying here
}

}

リモート オブジェクトからデータを取得するときに呼び出される関数。

このモジュールをアンロードして再度ロードすると、初めてすべてがうまくいきます。

data_[0] は ResultDTO として;

性能はいいが、

vipsAdminDTO = result.result as VIPSAdmin;

vipsAdminDTO は常に null です。

ときでさえ

トレース (結果。結果);

[オブジェクト VIPSAdmin] を生成します

私はここで何を見逃しているのですか!? それはできないように見えます

VIPSAdminとしてのresult.result;

trace と debug が VIPSAdmin のインスタンスであると言う場合でも

4

1 に答える 1

0

私は問題が何であるかを理解しました.問題は、最初にモジュールで何かをインスタンス化してからメインアプリでインスタンス化すると、何らかの形でクラスが同一であっても整列されないことです!

したがって、解決策は、最初にアプリケーションクラスで偽のインスタンスを作成することです。次に、同じクラスを使用してモジュールでインスタンスを作成すると、機能します!

追加したばかりのメインアプリケーションクラスで非常に簡単に行います。

VIPSAdmin;

これはある種のゴースト インスタンスを作成しているように見えますが、これは後で GC によって取得されると思いますが、インスタンスのテーブルを適切に作成します! これで問題が解決しました。

これが適切な解決策かどうかわかりません! しかし、それは確かに機能します。

于 2012-10-15T21:10:39.820 に答える