我在将TabNavigator从Flex 3迁移到Flex4.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,它的第二个选项卡被选中,但是没有内容,而不是预期的"Content“标签。navigator.selectedIndex = 1;指令的存在只是为了舒适,如果您在启动后用鼠标选择第二个选项卡,错误也会出现。
现在来了有趣的部分:如果我做了以下任何一件事,第二个孩子就会被创建:
creationPolicy="all"设置为content_one (这是预期的),content_one.enabled = true,enabled="false" on content_one,mouseOver="over()"中删除content_one (这个非常奇怪,因为处理程序从来没有被调用过)这真的是Flex的错误吗,还是我遗漏了什么?我使用的是Flex 4.5.0.20967,所有这些都在Flex 3.5中运行得很好。
谢谢。
发布于 2011-09-16 09:31:23
这已被确认为Adobe的一个bug,并在他们的错误数据库中备案。
https://stackoverflow.com/questions/6279037
复制相似问题