SharedObjectの取得時のFlash / Flexエラー#1063
-
03-07-2019 - |
質問
Flex 3で構築されたパーツアプリケーションがあり、パーツリストに問題があります。パーツリストは2つのオブジェクトを使用します。
- パート
- ArrayOfPart
SharedObjectにローカルでパーツリストをキャッシュします。 これは数か月間正常に機能しています。新しいブールプロパティをPartクラスに追加し、Webサービスを再インポートしました(これは何の影響もありませんでした)。今、 ArrayOfPart SharedObjectを保存できますが、SharedObjectを取得しようとすると、 " ArgumentError:エラー#1063:ArrayOfPartの引数カウントが一致しません。 1が期待され、0が得られました。その後、SOLファイルが完全に削除されます。
(PartとArrayOfPartでRegisterClassを使用したため、どちらもSharedObjectにシリアル化可能です)
エラーを取得するための手順は次のとおりです。
共有オブジェクトを保存します:
so = SharedObject.getLocal("PartsList");
so.data.AllParts = AllParts;
so.flush();
SharedObjectの確認:
- SharedObject PartsList.sol は必要な場所に存在します
- SharedObjectファイルを開いたところ、ArrayOfPartデータは有効に見えます
アプリケーションを再起動すると、SharedObjectからパーツリストが取得されます。これは、エラー#1063をスローし、solファイルを削除する行です:
so = SharedObject.getLocal("PartsList");
SharedObjectに保存されたデータは整形式ではないように見えますか?これは可能ですか?
解決
自分の問題を解決しました。
ArrayOfPartには、パラメーターを持つコンストラクターがありました。コンストラクターを削除すると、エラーはなくなりました。
ところで、これはFlash 9でした。
他のヒント
これは難しいように見えます。
フォーメーションやシリアル化の問題ではないと思います。コード内の他の何かが共有オブジェクトに書き込んでいるのでしょうか?
ソースを共有する方法はありますか?私は個人的に、残りのコードを見ずに何が起こっているかを診断するのに十分な情報を持っていないので、これは役立ちます:(
また...
この共有オブジェクトに書き込みまたは変更しているものは他にありますか?
すべてのオブジェクトはAS3で作成されているか、MXMLで作成されていますか(FlexコンパイラーがMXMLを理解するのに常に良い仕事をするわけではないことに気付きました)。
Flashのバージョンは何ですか?
Flash 9で同じ問題がFlash 10で発生した場合
これはすべてのブラウザーおよびすべてのプラットフォームで発生しますか?
ほんのちょっとですが、Flash Player 10をインストールしたので、閲覧中に共有オブジェクトで多くのエラーが発生しています。新しく導入されたサンドボックス/セキュリティ制限に関連している可能性がありますか?