Adobe Flex:当项目变得可见时调用函数?
我在Flex应用程序中使用FlashBuilder 4.6。我想知道当某个组件(在我的情况下是选项卡式对话框mx:TabNavigator上的一个选项卡)对用户可见时是否会调用某个函数?我尝试了creationComplete,当用户点击它时,在对话框中调用第二个和第三个选项卡,但是在整个应用程序打开时(即在第一个选项卡可见之前)调用第一个选项卡。Adobe Flex:当项目变得可见时调用函数?
谢谢 弗雷德
不知道你正在使用哪些特定的容器,但个个都的事件类型的一些变种:这是触发了晕IndexChangedEvent.CHILD_INDEX_CHANGE
:作为TabNav,ViewStack等的基础的容器。火花/空气等效物应该具有类似的东西。
InitializationComplete()是在选项卡(Container)的子项已完全初始化时调用的函数。我通常在容器中重载这个函数,该容器是ViewStack类/子类的子项,以便在上首先设置显示。您还可以听节目活动在后续节目中运行代码。出于某种原因,Flex团队决定首次展示一个组件时,这不是一场秀。
但是,您的问题可能与未充分利用组件生命周期有关。什么是完整的上下文?
我有一个带有4个选项卡的选项卡式对话框。 3个选项卡共享公共数据(它们全部写入后端的一个配置文件)。我试图找出共享配置的最佳方式。标签之间的数据。我将每个选项卡都编写为独立的mxml组件。我目前的做法是让每个选项卡在其creationComplete处理程序中加载数据,但理想情况下,我希望在第一次查看任何选项卡(即延迟加载)时加载所有3个选项卡的数据。 – 2012-04-23 15:16:43
Ahh现在这更有意义了,这是基于FlexEvent.CONTENT_CREATION_COMPLETE(NavigationContent的子项默认情况下的内容创建策略设置为'auto')意思是创建父shell,但不是它的子项,直到用户实际导航为止。 http://stackoverflow.com/questions/10098642/flex-error-1009-cannot-access-a-property-or-method-of-a-null-object-reference – 2012-04-23 20:10:37
子视图不应该负责加载他们的自己的数据。这应该由父级提供,所以你可以做更多的事情,比如
每个UIComponent都有显示事件,因此您可以监听它,以便了解ViewStack中的特定内容何时可见。
您可以为其creationcomplete或click事件及其索引添加eventListener,并向其中写入特定的操作。代码可以根据要求提供。
感谢Mike,我的组件是mx:TabNavigator中的选项卡。当组件变得可见时,是否还有一个通用回调? – 2012-04-22 17:46:10