Flex4 关于TabNavigator 内部控件的初始化延迟问题!
?使用代码对TabNavigator的非默认视图(我的子视图内是VBox内包含textArea) 进行操作的时候,报错空对象!
解决办法:在TabNavigator属性中添加creationPolicy=“all”,意思是TabNavigator创建的时候所有子视图全部实例化,否则只实例化默认视图,虽然这样做会导致程序启动稍微慢一些。 -----------------------------------------------------下面这个文章解决了我的问题 导航条容器内置推迟实例化
<
mx:tabnavigator
>
< mx:vbox id = " tabNavView1 " > < mx:linkbar dataprovider = " myViewStack " > < mx:viewstack id = " myViewStack " > < mx:vbox id = " view1 " > </ mx:vbox > < mx:vbox id = " view2 " > </ mx:vbox > < mx:vbox id = " view3 " > </ mx:vbox > </ mx:viewstack > </ mx:linkbar > < mx:vbox id = " tabNavView2 " > </ mx:vbox > </ mx:vbox > </ mx:tabnavigator > TabNavigator 容器创建了 tabNavView1,因为它是 Flex 实例化 TabNavigator 容器时显示的第一个视图。实例化 tabNavView1 导致 LinkBar 和 ViewStack 的第一个视图 view1 被实例化。当用户与 LinkBar 交互以选择 ViewStack 中的另一个视图时,Flex 将创建该视图。Flex 如此继续,在调用时创建导航条的所有后代对象。 容器标签中的 creationPolicy 属性控制子视图的创建。下面的列表将解释 Flex 导航条容器每个 creationPolicy 属性设置的含义。
通过设置 creationPolicy 属性,可手工创建子视图,并决定在应用程序架构的何处发生创建导航条容器子视图所需的资源占用。可用性研究显示,使用 auto 设置可取得较好的用户体验。一个常见的错误会延长应用程序启动时间,即错误地在某一个导航条容器上设定 creationPolicy=“all”。仅当能确保组件创建计划足够高效时可设置 creationPolicy 为“all”。 转载自zrong's Blog (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |