Предупреждение при миграции с Flex 3 на Flex 4 - PullRequest
0 голосов
/ 01 августа 2010

Я получил это предупреждение при переносе приложения из flex 3 в flex 4:

компоненты: MyApp - это модуль или приложение, на которое есть прямые ссылки. Это приведет к тому, что компоненты: MyApp и все его зависимости будут связаны с модулями: searchModule. Чтобы избежать этого, рекомендуется использовать интерфейс. Неизвестная проблема сгибания

MyApp - это класс, который расширяет компонент Application, и в модуле с именем "searchModule" есть эта строка:

var parentApp: myApp = parentApplication as MyApp;

Затем я использую переменную myApp для вызова методов, определенных в классе MyApp, из этого модуля.

Это предупреждение появляется 10 раз, потому что я делаю то же самое в других модулях.

Я хочу это исправить, но я не понимаю, в какой части «это приведет к тому, что его зависимости будут связаны с модулями», и как бы я создал интерфейс, чтобы избежать этого? И почему не было предупреждения об этом в flex 3?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 02 августа 2010

Полагаю, немного, но ...

Flex Framework - одна из тех специальных библиотек, предназначенных только для Adobe, которые могут кэшироваться проигрывателем Flex.Таким образом, при определенных настройках компиляции SWF-файл из компилятора не содержит библиотеку Flex.В lex 4 платформа не компилируется в SWf вашего приложения, что приводит к значительно меньшему размеру файла приложения.

Если вы расширяете класс Application, что, как вам кажется, компилятор не может рассчитывать на ваш новый "Приложение »находится в кэшированной Flex Framework и поэтому должно компилировать ваш новый класс и, следовательно, тег Application в ваш SWF.Это собирается в гирляндную цепь значительно;так как тег Application выполняет множество функций по настройке Flex Framework.

Я предполагаю, что это означает предупреждение с точки зрения зависимостей.

Действительно ли вы расширили приложение дополнительными функциями?Или «MyApp.mxml» - это просто имя вашего основного файла приложения?

Вы можете попробовать это:

var parentApp:Application = parentApplication as Application;

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

С точки зрения использования интерфейса.Интерфейсы разработаны, чтобы помочь удалить определенные зависимости.Вы можете создать интерфейс для новой функциональности нового класса Application и ссылаться на него.

var parentApp:myApp = parentApplication as IMyApp

На основании моего понимания сообщений, которые вы видите, которые могут решить проблему.

0 голосов
/ 21 сентября 2011

У меня была эта ошибка, когда у меня в приложении MXML, например, был установлен компонент MXML. Приложение изменено на группу, в компоненте, на который указывает ссылка, и предупреждения больше не было.

Причина ошибки была, потому что я работал над компонентом в отдельном проекте как приложение, а затем скопировал его в основной проект, но я не изменил его на компонент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...