Основной проект Flex SKD и внешние SWC - PullRequest
1 голос
/ 14 декабря 2010

Могу ли я иметь приложение, основанное на flex4 SDK, и библиотеку (файл swc) внутри этого проекта, основанную на другой версии flex (3.2)?

как flex справится с этой ситуацией?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2010

Думайте об этом так:

Ваше приложение Flex начинает загружаться, и flashPlayer загружается в классе UIComponent.Когда используются классы из вашего swc (и у них есть UIComponent, скомпилированный из Flex 3.2), flashPlayer использует уже использованный UIComponent из swf, который сначала инициализировался, а не тот, который был скомпилирован в swc.

[ну, это упрощено - это компилятор, который делает всю эту чушь, чтобы сократить размер SWF ... модули делают то же самое, что ''.читать материал applicationDomain в разных модулях - если два модуля используют один и тот же класс, и один загружается первым, второй (даже если у него обновленная версия этого класса) будет использовать старый класс с первой загрузкой.]

Лучшая практика: не используйте swcs.Если возможно, соберите из исходного кода тот же самый sdk, который использовался для компиляции.

Следующая рекомендация: используйте swcs, которые не используют много классов Flex.Swiz - отличный пример ... они используют некоторые классы flex, но если вы ищете в проекте слово "mx".Вы найдете 25 результатов классов, которые не изменятся в ближайшее время - IMXMLObject, FlexEvent и некоторые классы Binding.Если ваш SWC использует ComboBox, у вас проблемы, точка.(Вы видели выпуски ошибок для ComboBox за последние два года? - эта штука менялась больше, чем 3.2sdk, чем раз, когда я переодевался, и это как минимум раз в неделю).

Я не трачу много времени на этом сайте, но мне было бы интересно узнать, какой SWC вы пытаетесь использовать. Это с открытым исходным кодом?

Надеюсь, это поможет.Удачи, Джереми

0 голосов
/ 14 декабря 2010

Теоретически Flex 3 SWC должен работать нормально для всех версий Flex 3. Flex 4 SWC должен нормально работать со всеми точками выпуска Flex 4. Я бы не ожидал, что Flex 3 SWC будет работать против Flex 4, но это зависит от того, что находится в SWC и какие классы используются.

На практике иногда возникают странные ошибки. Я настоятельно рекомендую компилировать все ваши SWC на ​​основе того же SDK, который вы используете в своем основном проекте. Множество странных ошибок времени выполнения и компилятора можно решить, убедившись, что ваши версии совпадают.

Это тип вопроса, который заставляет меня задуматься: «Не было бы быстрее попробовать, чем задать вопрос». У вас есть конкретные проблемы?

...