Flex中选项卡默认只加载选中的选项,所以在初始化的时候给其他的选项卡中的对象赋值或是其他操作,都会出现空对象错误。
解决办法:给选项卡设置属性 creationPolicy=”all”
如:
<s:TabBar width=”50%” height=”28″ dataProvider=”{picVs}”/>
<mx:ViewStack creationPolicy=”all” id=”picVs” />
creationPolicy有如下取值:如果没有为容器指定creationPolicy,则该容器将继承其父项的creationPolicy。如果没有为Application指定creationPolicy,则默认为 ContainerCreationPolicy.AUTO。
ContainerCreationPolicy.AUTO:
容器将延迟创建部分或全部后代,直到需要它们时为止。此进程称为延迟实例化。此策略能使启动时间达到最佳,因为最初只创建很少的 UIComponent。但是,当用户首次导航到应用程序的其它部分时,这将引入导航延迟。导航器容器(如 Accordion、TabNavigator 和 ViewStack)通过立即创建其所
有子项实现ContainerCreationPolicy.AUTO策略,但要等到子项成为导航器容器的所选子项时才创建该子项的更深层的后代。
ContainerCreationPolicy.ALL:
导航器容器会立即创建每个子项的更深层的后代,而不必等待选择该子项。对于单一视图容器(如 VBox 容器),ContainerCreationPolicy.AUTO和ContainerCreationPolicy.ALL 策略没有区别。
ContainerCreationPolicy.NONE:
将容器添加到创建队列,而不是立即进行实例化和绘制。应用程序处理列队容器时,将创建容器的子项,并等待创建子项后才前进到创建队列中的下一个容器。
ContainerCreationPolicy.QUEUED:
容器不创建其子项。在这种情况下,由MXML作者负责通过调用 createComponentsFromDescriptors() 方法来创建子项。