Проблемы во время выполнения после перехода с Flex3 на 4 в режиме совместимости - PullRequest
19 голосов
/ 19 августа 2010

Мы переносим наше приложение Flex-3.2 на Flex 4.1, главным образом, чтобы воспользоваться преимуществами новых возможностей обработки текста / движка.На первом этапе мы решили начать компиляцию только для MX и в режиме совместимости с Flex-3 .

Благодаря некоторым полезным ресурсам (

http://www.adobe.com/devnet/flex/articles/flexbuilder3_to_flashbuilder4.html

Есть ли опыт миграции на Flex 4?

http://www.adobe.com/devnet/flex/articles/flex3and4_differences_02.html

) Я могу скомпилировать наше приложение.

Но яя удивлен количеством различий во время выполнения, начиная от проблемы, с которой я не могу привести ResultEvent.currentTarget к HTTPService (которая, по-видимому, была представлена ​​в 3.5), до многих проблем компоновки, до различий в диспетчеризации событий (например, один из наших устаревших компонентов слушает добавлениесобытие, которого он, похоже, больше не получает).

Кажется, документации по этому вопросу очень мало.Я хотел бы найти список с подробными изменениями, чтобы нам не приходилось полагаться на QA для решения всех проблем, мы надеемся.

В этом документе перечислены некоторые , но это не так.кажется исчерпывающим. У кого-нибудь есть лучший список задокументированных изменений?

Спасибо, Стефан

PS.Список конкретных примеров, которые я нашел до сих пор:

1) В Flex 4 событие add не вызывается:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" minWidth="955" minHeight="600">

    <fx:Script>
        <![CDATA[

            private function notFired():void
            {
                trace("ADDED");
            }

            private function fired():void
            {
                trace("COMPLETE");
            }
        ]]>
    </fx:Script>

    <mx:TextArea add="notFired();" creationComplete="fired();"/>

</mx:Application>

Теперь сделайте то же самоево Flex 3 вы увидите оба события.

Очевидно, это ошибка .Может быть возможно обойти это, но, безусловно, значительно снижает мой уровень или доверие.

2) Диалоги / всплывающие окна показывают весь контент зеркально.

Ошибка какхорошо .Легко обойти, но как может что-то такое очевидное проскальзывать?

3) Проблемы с введенными символами "Ôª".

Смотрите пост здесь.

1 Ответ

1 голос
/ 16 марта 2011

Давайте посмотрим на некоторые ваши сомнения ...

1) add никогда не был надежным событием с момента выпуска flash player 9 Это распространенная ошибка. Попробуйте создать мувиклип из списка отображения и добавить в него дочерний элемент с прослушивателем Event.ADDED. В некоторых ситуациях (не знаю точно, в какой ситуации) это не работает (Adobe Fail). Но вместо события «add» flex используйте «добавлен» или «добавлен ToStage», как только вы захотите определить, присутствует ли он уже в списке отображения ваших приложений.

2) Сбой. Проверьте исходный код диспетчера структуры.

3) Я никогда не видел этого. (Даже в режиме совместимости). Можете ли вы показать пример? Вы проверяли, является ли кодировка приложения той же, что и в ваших строках? Возможно, таблица строк может привести к путанице из-за кодировки символов (или, может быть, ваш редактор). Попробуйте другие редакторы и проверьте содержимое файла кода в оболочке linux с помощью SED. С помощью находки и седа вы легко это исправите.

...