У меня есть приложение для запчастей, построенное на Flex 3, и у меня проблема со списком запчастей. В списке деталей используются два объекта:
Я кэширую список частей локально в SharedObject. Это работало нормально пару месяцев. Я добавил новое логическое свойство к классу Part и повторно импортировал веб-сервисы (что не должно было ни на что повлиять), и теперь Я могу сохранить ArrayOfPart SharedObject в порядке, но когда я пытаюсь получить SharedObject, я получаю «ArgumentError: Error # 1063: несоответствие количества аргументов в ArrayOfPart. Ожидается 1, получил 0. И затем он полностью удаляет мой файл SOL.
(Я использовал RegisterClass для Part и ArrayOfPart, поэтому оба они сериализуемы в SharedObjects)
Вот шаги, которые я выполнил, чтобы получить ошибку:
Сохраните общий объект:
so = SharedObject.getLocal("PartsList");
so.data.AllParts = AllParts;
so.flush();
Проверьте SharedObject:
Перезапустите приложение, и оно получит список частей из SharedObject. Это строка, которая вызывает ошибку # 1063 и приводит к удалению файла sol:
so = SharedObject.getLocal("PartsList");
Похоже, что данные могут быть неправильно сформированы при сохранении в SharedObject? Это возможно?





Похоже, это непросто.
Я не думаю, что это проблема формирования или сериализации. Может быть, что-то еще в вашем коде записывается в общий объект?
Есть ли способ поделиться своим источником? Это поможет, поскольку у меня лично недостаточно информации, чтобы диагностировать, что происходит, без просмотра остальной части кода :(
Также....
Есть ли что-нибудь еще, что записывает или изменяет этот общий объект?
Все ли мои объекты созданы в AS3 или некоторые в MXML (я заметил, что компилятор Flex не всегда хорошо разбирается в MXML).
Какая у меня версия Flash?
Если у него Flash 10, возникает ли такая же проблема во Flash 9?
Это происходит во всех браузерах и на всех платформах?
Просто догадка, но, поскольку я установил Flash Player 10, я вижу много ошибок с общими объектами при просмотре. Может ли это быть связано с недавно введенными ограничениями песочницы / безопасности?
Я решил свою проблему.
У ArrayOfPart есть конструктор с параметром. Когда я удалил конструктор, ошибка исчезла.
Кстати, это была Flash 9.