将我的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上提交