Использование RemoteObject (AMF) из проекта Flash или Pure AS3

Недавно я перенес код из проекта Flex в новый чистый проект AS3. Когда я пытался позвонить в AMF, я получаю такое сообщение об ошибке:

TypeError: Ошибка № 1034: Ошибка приведения типа: невозможно преобразовать Object @ 5425371 в mx.messaging.messages.ErrorMessage.

С ошибкой не было связано трассировки стека, поэтому отладка была затруднена.

Я пробовал всевозможные вещи (проверял, были ли включены все необходимые библиотеки из фреймворка и т. Д.), Но ничего не работало.


person Community    schedule 24.01.2012    source источник
comment
Так это чистый проект AS3, включающий необходимые библиотеки Flex? Ты путаешь меня.   -  person RIAstar    schedule 24.01.2012
comment
Можете ли вы включить часть своего кода? Кроме того, какой метод настройки AMF вы используете? Если вы получаете сообщение об ошибке пакета mx, но не используете Flex, это может быть проблемой.   -  person James Tomasino    schedule 24.01.2012
comment
Вам следует удалить правку в своем вопросе и отправить фактический ответ, чтобы он больше не считался открытым и оставшимся без ответа.   -  person weltraumpirat    schedule 24.01.2012
comment
Я бы с удовольствием, но переполнение стека говорит, что я должен подождать 8 часов после отправки моего вопроса, прежде чем я смогу это сделать: /   -  person    schedule 24.01.2012
comment
Теперь в вашем списке дел появилась новая запись;) Кстати, ваша информация весьма полезна - я просто пытался найти способ решить эту проблему ...   -  person weltraumpirat    schedule 24.01.2012


Ответы (2)


Через некоторое время я нашел ответ: Flex выполняет некоторую инициализацию при запуске, без которой классы AMF не будут работать. К счастью, Adobe подумала о тех, кто хочет использовать AMF из негибкого проекта или из флэш-памяти, и предоставила метод для выполнения инициализации, требуемой AMF.

Я добавил эту строку в начало своего приложения, и внезапно все вызовы AMF работали так же хорошо, как и в моем проекте Flex:

RpcClassAliasInitializer.registerClassAliases ();

(Да, я ответил на свой вопрос. Я не нашел ни блогов, ни результатов поиска по этой проблеме, поэтому поделюсь проблемой и исправлю здесь.)

person Community    schedule 25.01.2012

Я знаю, что это немного поздно для ответа, но не могли бы вы также использовать flash.net.registerClassAlias ​​? Похоже, что RpcClassAliasInitializer является частью пакет mx.utils который по-прежнему является частью библиотеки Flex.

person Scott Enders    schedule 11.11.2013