Ошибка Flash/Flex № 1063 при получении общего объекта
-
03-07-2019 - |
Вопрос
У меня есть приложение для изготовления деталей, созданное на основе Flex 3, и у меня возникла проблема со списком деталей.В списке деталей используются два объекта:
- Часть
- МассивOfPart
Я кэширую список деталей локально в SharedObject. Это работает нормально уже пару месяцев.Я добавил новое логическое свойство в класс Part и повторно импортировал веб-службы (что ни на что не должно было повлиять), и теперь Я могу нормально сохранить общий объект ArrayOfPart SharedObject, но когда я пытаюсь получить общий объект, я получаю сообщение «ArgumentError:Ошибка № 1063:Несоответствие количества аргументов в ArrayOfPart.Ожидал 1, получил 0.А затем он полностью УДАЛЯЕТ мой файл SOL.
(Я использовал RegisterClass для Part и ArrayOfPart, поэтому они оба сериализуются в SharedObjects)
Вот шаги, которые я выполнил, чтобы получить ошибку:
Сохраните общий объект:
so = SharedObject.getLocal("PartsList");
so.data.AllParts = AllParts;
so.flush();
Проверьте общий объект:
- ОбщийОбъект PartsList.sol существует там, где должен
- Я открыл файл SharedObject, и данные ArrayOfPart выглядят действительными.
Перезапустите приложение, и оно получит список деталей из SharedObject.Это строка, которая выдает ошибку № 1063 и приводит к удалению файла sol:
so = SharedObject.getLocal("PartsList");
Похоже, данные могут быть неправильно сформированы при сохранении в SharedObject?Это возможно?
Решение
Я решил свою проблему.
У ArrayOfPart был конструктор с параметром.Когда я удалил конструктор, ошибка исчезла.
Кстати, это был Flash 9.
Другие советы
Это похоже на трудную задачу.
Я не думаю, что это проблема формирования или сериализации.Может быть, что-то еще в вашем коде записывает в общий объект?
Есть ли способ поделиться своим источником?Это помогло бы, поскольку лично мне не хватает информации, чтобы диагностировать, что происходит, не видя остальную часть кода :(
Также....
Есть ли что-нибудь еще, что записывает или изменяет этот общий объект?
Все ли мои объекты созданы в AS3 или некоторые в MXML (я заметил, что компилятор Flex не всегда хорошо справляется с MXML).
Какая у меня версия Flash?
Если это Flash 10, возникает ли та же проблема в Flash 9?
Это происходит во всех браузерах и на всех платформах?
Это всего лишь догадка, но с тех пор, как я установил Flash Player 10, я вижу множество ошибок с общими объектами при просмотре.Может ли это быть связано с недавно введенными ограничениями песочницы/безопасности?