Flex Viewstack的孩子,如果你看不到它们,它们是否存在?

mja*_*ard 4 apache-flex adobe actionscript-3 viewstack

我似乎遇到了一个问题(无法访问null对象引用的属性或方法)将actionscript中的事件绑定到当前未显示的viewstack层.是否在第一次看到该图层之前才创建这些对象?我记得有关创建策略的一些内容,如果是这种情况,我可以强制它在查看该层之前创建这些子项吗?

Chr*_*ato 16

是的,这是正确的 - ViewStack子项仅在默认情况下需要时创建("延迟实例化"是您在此上下文中会听到的短语).如果您希望指示Flex预先创建所有ViewStack容器的子项,请考虑使用所有通用的creationPolicy属性mx.core.Containers:

ContainerCreationPolicy.ALL的creationPolicy意味着导航器容器会立即为每个子项创建更深层次的后代,而不是等到该子项被选中.

<mx:ViewStack id="myStack" creationPolicy="all" />
Run Code Online (Sandbox Code Playgroud)

它在启动时有点慢,因为你创建了一些你可能不需要的子组件,但只要你记住这种权衡,它可能会在某个时候派上用场.