問題タブ [iexternalizable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-flex - Flex: RemoteObject + IExternalizable で予期しないリークが発生する?
をいじっていIExternalizable
ましたが、予期しない動作に気付きました。私はこのクラスを持っています:
しかし、AMF を使用してこのクラスをシリアライズし、(経由で) リモート サーバーに送信しようとするとRemoteObject
、Charles は、要求が次のようになることを示してい
ます。
しかし、シリアル化されたオブジェクトが残りのリクエストに漏れているのは間違っているようです。
それで、私は何を間違っていますか?私が見逃したドキュメントの一部はありますか?
actionscript-3 - 'as'を使用してオブジェクトをキャストすると、nullが返されます。myObject= newObject as MyObject; // ヌル
AS3でカスタムオブジェクトを作成して、サーバー(この場合はRed5)との間で情報をやり取りしようとしています。以下のスクリーンショットでは、as3からオブジェクトのリクエストを送信し、Javaサーバーから正常に受信できることがわかります。ただし、「as」を使用して、受信したオブジェクトを定義済みのobjectTypeにキャストしようとすると、nullの値が使用されます。「as」を使用する場合、変数が指定されたデータ型のメンバーであるかどうかを確認していることを理解しています。変数がそうでない場合、nullが返されます。
このスクリーンショットは、red5からオブジェクト「o」を正常に受信し、それをLobbyDataの(おそらく)同一のデータ型testObjectにキャストしようとしていることを示しています。
ただし、 testObject = o as LobbyData;
実行するとnullが返されます。:(
以下に、Javaサーバーとas3クライアントの両方での私の仕様を示します。私は両方のオブジェクトがすべての点で同一であると確信していますが、何らかの理由でフラッシュはそうは思いません。長い間髪を抜いてきましたが、何か考えはありますか?
AS3オブジェクト:
Javaオブジェクト:
AS3クライアント:
Javaクライアント
actionscript-3 - オブジェクトをファイルに保存する方法 (AS3 / Air)
私は何をしたいですか?Air Application で作成したエディタにプロジェクトを保存
救うとは?1 オブジェクト -> ArrayCollection 型 -> 含む -> 独自のクラスのオブジェクト...
私の最初の試みは何ですか?
なにが問題だったの?myArrayCollection 内のオブジェクトには、次の構造があります。
すべての public var は FileStream によって保存されました....正常に動作します 子 arrayCollection 内には、このクラスのオブジェクトがあります。
今問題... fileStreamには、var "title"を持つMyClass2オブジェクトが含まれていますが、子ArrayCollectionはありません...コンソールにはトレースが表示されません:-/
actionscript-3 - IExternalizable(as3)
誰かがIExternalizableインターフェースを使用しましたか?..。
基本的な質問があります。オブジェクトをシリアル化して...ファイルとして保存したとき....そして今、クラスにいくつかの変更を加えたい...たとえば属性を追加する...ファイルをに再変換することはできませんこのクラスのオブジェクト...readExternalメソッドにもう1つの属性があり、保存されたオブジェクト(ファイル)が所有していないため...。
これをより柔軟にする方法はありますか?
- // ドイツ人
Hallo hat schon mal jemand das imTitelerwähnteInterfacebenutzt?..。
Habe mal ne grundlegendeFragedazu。Wenn ich mein Objekt serialisiert habe ... und als Datei abgespeichert habe .... und nun inderKlasseeinigeÄnderungenvornehmenmöchte...zBeinAttributhinzufügen...dannkann ich die Datei nicht wieder in ein Objekt ... weil in der readExternal methode nun ein Attribute mehr abgefragt wird、welches das gespeicherte Objekt(Datei)nichtbesitzt...。
gibtsdaMöglichkeitendasflexiblerzumachen?
java - Java オブジェクトの BlazeD シリアライゼーション
シリアライゼーションを実装するいくつかの Java クラスと、IExternalizable を実装する対応する AS オブジェクト (GAS によって自己生成) があります。
サーバーからのオブジェクトの受信に問題はありませんが、オブジェクトをサーバーに送信しようとすると、例外がスローされます。
オブジェクトを Java サーバーに送信するには、Externalizable を実装する必要がありますか?!
actionscript-3 - データの不整合に対処する方法は?AS3 IExternalizable.readExternalData + sqlstatement.execute()
私はAS3Air開発を行い、SQLiteを使用してセッション間にオブジェクトを保存します。これは、AS3開発者ガイドおよびAS3SDKリファレンスに詳しく記載されています。
データベースに格納されているクラスはIExternalizableを実装しているため、BLOBを使用してインスタンスを格納および復元できます。これはうまくいきますが、失敗した逆シリアル化に適切に対応する方法を見つけるのは困難です。この問題は、次の状況で発生します。
- シリアル化されたオブジェクト
- 保存されたオブジェクト
- クラスが変更され、プログラムが更新されました
- シリアル化されたデータは保存されたデータと一致しなくなりました
私の最初のアプローチは次のようなものです。
readExternalでエラーをスローすると、悲しいことにSQLStatement.execute()がひどく失敗し、try..catchは役に立ちません。
この問題に対処するための私の現在のアイデア:
- プログラムが更新されたときにデータベースからすべてのデータを消去します(痛い)
- クラスにフラグを追加して、誤った逆シリアル化を通知します
- SQLStatement.execute()がスローされたエラーに適切に反応するようにします
1と2私はやり方を知っていますが、どちらもきれいではありません。3(まだ?)の解決策が見つかりません
他のアイデアやノウハウを高く評価しています。
actionscript-3 - AS3 - IExternalizable に関する問題
それで、私は最近 ByteArrays を頻繁に使用していますが、髪の毛を引き裂きたくなるような厄介な問題に直面しています。
基本的に、ゲームのキャラクターを1つのファイルにコンパイルするために作成しているアプリケーションのプロジェクトデータを保存しようとしています。プロジェクトは、カスタム オブジェクト、ベクトル、ベクトルのベクトル、さらにはカスタム オブジェクトのベクトルのベクトルで構成されています! このすべてのデータを適切に書き込む最善の方法は、 readExternal および writeExternal コマンドで IExternalizable インターフェイスを使用することだと思いました。これが私がやっていることです。
すべてのプロジェクト データをオブジェクトに書き込み、そのオブジェクトを ByteArray に書き込み、ファイルに保存します。
ただし、KeyFrame クラス内には、さらに 2 つのカスタム オブジェクトのベクトルがあります。
そのため、これらのクラスと KeyFrame クラスの両方を IExternalizable を使用するように設定しました。
しかし、「ルート」ByteArray の writeObject() メソッドに到達すると、エラーが発生します。
これはおそらく、私がこれまでに経験した中で最も厄介な問題です。私はすべてを試したようですが、何も機能していません。他の誰かがこれを経験していますか?私は何か間違ったことをしていますか?? これについて何か助けていただければ幸いです。私は自分のゲームを作り続けたいだけです:<