Смысл AIR заключается в том, чтобы позволить веб-разработчикам, знающим AS / JS, легко создавать настольные приложения, автоматически переносимые на win, linux и mac. Следовательно, почему нет способа соединить его с другими языками, такими как C #, C ++ и т. Д., Поскольку веб-разработчикам, как правило, нет дела до этих языков, и если они использовались, приложение больше не является переносимым (да, большинство языков может быть с некоторыми усилиями портирован на другие ОС, но смысл AIR в том, что вы пишете все, что хотите, и он работает везде без дополнительной работы).
Если вы хотите объединить C # и Flash, вместо того, чтобы пытаться поместить C # в AIR, вам следует поместить Flash в приложение C #. Для этого в Интернете есть различные ресурсы, вот один из них, который я нашел в быстром поиске: Пример: использование внешнего API с контейнером ActiveX . Когда вы ищете, убедитесь, что он говорит о более новом, более продвинутом методе ExternalInterface / External API, а не о методе oldschool SetVariable / CallFunction / watch. Более новый гораздо проще в использовании и имеет больше функций.
Кроме того, да, вы можете использовать собственные компоненты Flash внутри приложения Flex. Обычно вы просто создаете SWC во Flash CS3 (или CS4), а затем импортируете этот SWC во Flex Builder (или Flex SDK, или FlashDevelop, или ...)
Если вы сами делаете компоненты внутри Flash CS3, вам следует использовать Flex Component Kit. Он предоставляет некоторые функции для вас и вставляет шаблонный код, чтобы ваш Flash-компонент хорошо работал во Flex. Он входит в состав Flex Builder / Flex SDK.