私のプロジェクトでは、ユーザーが FileReference クラスを使用して画像を選択できるようにしています。次に、load() 関数を使用して、これらの画像を .data プロパティに読み込みます。この後、いくつかのローカル操作を実行し、それらをサーバーに送信します。
私がやりたいことは、選択した FileReferences をもう一度反復処理し、それらを .data プロパティにロードし、別の操作を実行して、もう一度サーバーに送信できるようにすることです。ユーザーが呼び出したイベントからこれを行うことができるはずであることはわかっていますが、それはここでは問題ではありません。
問題は、FileReference が初めてロードされると、それをアンロードすることができず、メモリ内のすべての画像のデータを保持できないことです。これらは巨大であるためです。
したがって、私ができることは 1 つだけだと思います。それは、FileReference で DeepCopy を実行することです...次に、最初のバージョンをロードし、それを廃棄して、2 回目の「実行」にコピーを使用することができます。
ObjectUtil.copy を使用しようとしましたが、たとえばコピーの .name プロパティにアクセスすると、次のように失敗します。
Error #2037: Functions called in incorrect sequence, or earlier call was unsuccessful.
flash.net::FileReference/get name() で
関連するスニペット:
registerClassAlias("FileReference",FileReference);
masterFileList.addItem(FileReference(ObjectUtil.copy(fr_load.fileList[i])));
trace(masterFileList[i].name)
FileReference クラスの一部の保護されたプロパティがコピーを防止するというのは本当ですか? もしそうなら、何とかこれを回避できますか?または、全体的な問題に対する他の解決策はありますか?
ヒントやアイデアをいただければ幸いです。