[object Object] является результатом метода toString() объекта Object. Если вы получаете это, это, вероятно, означает, что ваш пользовательский тип объекта возвращается как универсальный объект из удаленной службы AMF. Причиной этого может быть многое. Вот несколько для проверки:
1) Убедитесь, что ваш пользовательский тип объекта скомпилирован в приложение. ЕСЛИ объект никогда не используется явно, компилятор Flex не поместит его в окончательный SWF. Вы можете сделать это, создав поддельную переменную:
private var myUnusedObject : MyCustomObjectType;
Или, я полагаю, есть флаг компилятора, который принудительно компилирует неиспользуемые классы в SWF.
2) Возможно, вам придется добавить формальное сопоставление на вашем сервере. Это зависит в первую очередь от того, какую серверную технологию вы используете. В AS3 вы добавляете в класс метаданные RemoteAlias. В ColdFusion вы используете тег псевдонима в теге cfcomponent. Я считаю, что в WerbORB.NET мне пришлось добавить сопоставление в XML-файл конфигурации [но с тех пор, как я это сделал, прошли годы]. Я предполагаю, что альтернативные технологии используют аналогичные подходы.
3) Проверьте чувствительность к регистру в именах путей для вашего кода сервера и убедитесь, что псевдонимы (упомянутые в 2) совпадают.
4) В ColdFusion AMF вы должны убедиться, что ваши общедоступные свойства и типы совпадают. Они должны быть в том же порядке в вашем классе AS3, что и в вашем удаленном CFC. Типы свойств должны совпадать. строка в строку; Boolean to Boolean и т. д. Я предполагаю, что другие реализации AMF имеют аналогичные ограничения.
person
JeffryHouser
schedule
22.04.2012