Apache flex 从一个mxml访问另一个mxml的组件id
我有两个mxml文件。一个是主文件,它是应用程序标记mxml文件,另一个是我的mxml组件文件。 我的主mxml中有一个viewstack,其id是,比如说,“mainViewStack”。 现在我想从mxml组件文件中设置“mainViewStack”的selectedChild属性。 但我有一个错误: 错误#1009:无法访问空对象引用的属性或方法。 访问mainObj.mainViewStack.selectedChild.id时,其中mainObj是主mxml文件的对象。 请帮帮我。Apache flex 从一个mxml访问另一个mxml的组件id,apache-flex,Apache Flex,我有两个mxml文件。一个是主文件,它是应用程序标记mxml文件,另一个是我的mxml组件文件。 我的主mxml中有一个viewstack,其id是,比如说,“mainViewStack”。 现在我想从mxml组件文件中设置“mainViewStack”的selectedChild属性。 但我有一个错误: 错误#1009:无法访问空对象引用的属性或方法。 访问mainObj.mainViewStack.selectedChild.id时,其中mainObj是主mxml文件的对象。 请帮帮我。 谢
谢谢您。我猜您正在尝试在创建子项之前访问它。但如果没有代码,这很难说
请尝试等待应用程序上的FlexEvent.CREATION\u COMPLETE事件,以访问所选子级 我猜您正在尝试在创建子项之前访问它。但如果没有代码,这很难说
请尝试等待应用程序上的FlexEvent.CREATION\u COMPLETE事件,以访问所选子级 或者您可以给出“creationPolicy=all”,因为Flex只从viewstack创建第一个可见的子项或者您可以给出“creationPolicy=all”,因为Flex只从viewstack创建第一个可见的子项这个问题被称为“延迟实例化”,是Flex组件生命周期的产物。如果你想对这个概念有一个非常透彻的解释,这可能是我读过的最好的解释 实际上,Flex根据需要创建组件。每个组件都有一个生命周期,它将经历以下几个阶段:
- 建筑
- 加成
- 初始化
- 无效
- 验证
- 更新
- 移除
在您的具体案例中,这不是问题所在。包含视图堆栈的组件尚未完全初始化。您需要在创建完成事件处理程序中设置ViewStack的子级。此问题称为“延迟实例化”,是Flex组件生命周期的产物。如果你想对这个概念有一个非常透彻的解释,这可能是我读过的最好的解释 实际上,Flex根据需要创建组件。每个组件都有一个生命周期,它将经历以下几个阶段:
- 建筑
- 加成
- 初始化
- 无效
- 验证
- 更新
- 移除
在您的具体案例中,这不是问题所在。包含视图堆栈的组件尚未完全初始化。您需要在创建完成事件处理程序中设置ViewStack的子级。您可以在MXML组件中使用此代码从其他MXML组件更改应用程序的ViewStack选定子级。然而,这不是一个好的做法 FlexGlobals.topLevelApplication.mainViewStack.selectedChild=FlexGlobals.topLevelApplication.childId
您可以使用静态事件调度器从一个视图中分派事件,并在另一个视图中侦听该事件 您可以在MXML组件中使用此代码,从其他MXML组件更改应用程序的ViewStack选定子项。然而,这不是一个好的做法 FlexGlobals.topLevelApplication.mainViewStack.selectedChild=FlexGlobals.topLevelApplication.childId
您可以使用静态事件调度器从一个视图中分派事件,并在另一个视图中侦听该事件 发布一些代码可能会有所帮助。找出mainObj,看看你得到了什么。另外,你是否为viewstack的所有子组件提供了组件id?发布一些代码可能会有所帮助。找出mainObj,看看你得到了什么。另外,你是否为viewstack的所有子组件提供了组件id?