将我的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;说明只是为了舒适,如果您在启动后用鼠标选择第二个选项卡,则该错误也会出现.
现在有趣的部分:如果我执行以下任何操作,第二个孩子被创建:
> set creationPolicy =“all”on content_one(这是预期的),
> comment content_one.enabled = true,
> remove on =“false”on content_one,
>从content_one中删除mouSEOver =“over()”(这个真的很奇怪,因为处理程序从来都不会被调用)
这是真的是一个Flex bug,还是有什么我错过的?我使用Flex 4.5.0.20967,所有这一切在Flex 3.5中运行良好.
谢谢.
解决方法
这已被确认为Adobe的错误,并在其
bug database上提交