Обновление до Flex SDK 4.5.1 с 4.1.0 вызывает ошибки компиляции пространства имен для определенных компонентов mx - PullRequest
2 голосов
/ 30 сентября 2011

У меня есть проект Flash Builder, который я переношу с SDK 4.1.0 на 4.5.1. Это было относительно легкое изменение (мы использовали maven для наших сборок и смогли получить успешную сборку после обновления до зависимостей 4.5.1).

Как уже говорилось, проект прекрасно работает с maven и flexmojos. Проблема при открытии проекта во Flash Builder. Проект maven импортируется, а затем устанавливается как проект flex, выполняя команду maven flexmojos:flexbuilder build.

Проблема заключается в том, что определенные компоненты mx, указанные в пространстве имен s: больше не принимаются IDE и приводят к ошибке. Например, для компиляции следующего:

<s:states>
    <s:State name="normal" />
    <s:State name="disabled" />
</s:states>

s:State необходимо изменить на пространство имен mx:

<s:states>
    <mx:State name="normal" />
    <mx:State name="disabled" />
</s:states>

Это только один пример, и он применяется только для определенных компонентов пространства имен искры. Почему это? Почему это скомпилировано нормально с Flex SDK 4.1.0, но не с Flex SDK 4.5.1, и какова причина необходимого изменения пространства имен?

1 Ответ

3 голосов
/ 30 сентября 2011

Я обнаружил те же проблемы с FlexMojos, потому что кажется, что Adobe проделала небольшую хитрость, указав пространство имен spark для компонентов mx (таких как State и Spacer).

Кроме того, если вы используете flexmojos:flexbuilder, это означает, что вы также используете старую версию FlexMojos (3.8?). Сейчас есть версия 4.0 (RC2), однако цель flexbuilder на данный момент удалена.

В любом случае, возвращаясь к вашему вопросу, я вижу это по-другому в моем проекте (s: Spacer работает в Flash Builder, а не в FlexMojos). Лично я чувствую, что эти пространства имен не должны пересекаться, и как разработчику проще просто указать точное пространство имен и не беспокоиться об обмане пространства имен.

...