#apache-flex #flex4 #tabnavigator
#apache-flex #flex4 #tabnavigator
Вопрос:
У меня возникла проблема при переносе моего TabNavigator с Flex 3 на Flex 4.5. Сокращенный до минимума следующий код приведет к ошибке, а именно к тому, что второй дочерний элемент TabNavigator не будет создан должным образом:
<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
>
<fx:Script>
<![CDATA[
protected function over():void
{
trace('over');
}
protected function content_one_init():void
{
content_one.enabled = true;
navigator.selectedIndex = 1;
}
]]>
</fx:Script>
<mx:TabNavigator
id="navigator"
creationPolicy="auto"
width="100%" height="100%"
>
<mx:VBox
id="content_one"
enabled="false"
creationComplete="content_one_init()"
label="One"
mouseOver="over()"
/>
<mx:VBox label="Two">
<mx:Label text="Content Two" />
</mx:VBox>
</mx:TabNavigator>
</s:Application>
При запуске я вижу TabNavigator с выбранной второй вкладкой, но без содержимого вместо ожидаемой метки «Содержимое два». navigator.selectedIndex = 1;
Инструкция приведена там просто для удобства, ошибка появляется также, если вы выбираете вторую вкладку с помощью мыши после запуска.
Теперь начинается самое интересное: если я сделаю что-либо из следующего, будет создан второй дочерний элемент:
- установите
creationPolicy="all"
на content_one (это ожидаемо), - Комментарий
content_one.enabled = true
, - удалить
enabled="false"
в content_one, - удалить
mouseOver="over()"
из content_one (это действительно очень странно, поскольку обработчик все равно никогда не вызывается)
Это действительно ошибка Flex, или я чего-то не понимаю? Я использую Flex 4.5.0.20967, и все это хорошо работало в Flex 3.5.
Спасибо.
Комментарии:
1. Подтверждено как ошибка в Adobe и внесено в их базу данных ошибок
2. @Daniel Не могли бы вы опубликовать свой комментарий в качестве ответа и принять его, чтобы это сообщение больше не попадало во вкладку «неотвеченные»?
Ответ №1:
Это было подтверждено как ошибка в Adobe и внесено в их базу данных об ошибках