Actionscript 3 Flex:当我切换TabNavigator选项卡时,所有内容都变为白色
我刚刚在我的应用程序中添加了一个Actionscript 3 Flex:当我切换TabNavigator选项卡时,所有内容都变为白色,actionscript-3,flex3,Actionscript 3,Flex3,我刚刚在我的应用程序中添加了一个选项卡navigator: <mx:TabNavigator width="100%" height="100%" backgroundColor="#F7F7F7"> <custom:SomeCustomContainer label="Details" /> <mx:Canvas label="Reporting" width="100%" height="100%"&g
选项卡navigator
:
<mx:TabNavigator width="100%" height="100%"
backgroundColor="#F7F7F7">
<custom:SomeCustomContainer label="Details" />
<mx:Canvas label="Reporting" width="100%" height="100%">
</mx:Canvas>
</mx:TabNavigator>
而且它大部分都能工作……除了应用程序控制栏的一小部分保持白色外:
我在Mac上使用Firefox时遇到了这个问题。我使用PureMVC,所以我的解决方案不会太痛苦,但当我切换选项卡时,我会从我的根应用程序手动调度Event.RESIZE。这将强制显示列表刷新并解决问题。将TabNavigator的historyManagementEnabled属性设置为false对我有效 我已经尝试将我的自定义组件放在自己的组件中,但这似乎没有帮助。这似乎是一个特定于Firefox的错误,因为我无法在Safari中复制它。自定义容器的尺寸是多少?在任一维度上是否接近或大于~4092px极限?这是为Flash Player 9或10编译的吗?所有的容器都“相当小”(我想是600px±100),这是FP9.Hrm,嗯,大部分都能工作……奇怪的是,除了我的应用程序控制栏中的一个小区域。请参阅更新的说明。我没有调用invalidateDisplayList()
,而是尝试调用dispatchEvent(new Event(Event.RESIZE))
,但似乎没有任何效果…这就是为什么我尝试invalidateDisplayList()
.dispatchEvent(new Event(Event.RESIZE,true))-使其冒泡?我有点抓紧稻草了。Application.Application.dispatchEvent(新事件(Event.RESIZE))?这是一个糟糕的错误。我想把它放在他们的bug库中,但我无法识别它来这样做:/d'oh!当然为什么我没想到要试试?不管怎样,它工作得很好——谢谢。
// Where 'this' is the main Application
ChangeWatcher.watch(this, ["myTabNavigator", "selectedIndex"], function() {
invalidateDisplayList()
});