Apache flex 如何将Main.mxml文件的id值获取到CustomPanel.mxml文件?

Apache flex 如何将Main.mxml文件的id值获取到CustomPanel.mxml文件?,apache-flex,flex3,flex4,Apache Flex,Flex3,Flex4,我在CustomPanel.mxml中有一个方法,我需要使用id,它在Main.mxml 下面是我的示例代码 Main.mxml <local:CustomDivideBox id="div1"> private function xxxx(){ div1.state = (div1.state == CustomDividedBox.COLLAPSE ? CustomDividedBox.EXPAND : CustomDividedBox.COLLAPSE); } 请提供

我在
CustomPanel.mxml
中有一个方法,我需要使用
id
,它在
Main.mxml

下面是我的示例代码

Main.mxml

<local:CustomDivideBox id="div1">
private function xxxx(){
  div1.state = (div1.state == CustomDividedBox.COLLAPSE ? CustomDividedBox.EXPAND : CustomDividedBox.COLLAPSE);

}
请提供一些示例代码

谢谢,
Naveen

当您已经在对象中时,为什么需要id?在自定义组件中使用“this”操作符

private function xxxx(){
  this.state = (this.state == CustomDividedBox.COLLAPSE ? CustomDividedBox.EXPAND : CustomDividedBox.COLLAPSE);
}
这是非常基本的OOP概念,我建议您仔细阅读

编辑: 哦,等等,那是两个不同的组件。您要做的是在Custompanel.mxml中调度一个事件,Main.mxml将侦听该事件并知道在其他组件中执行什么操作:

Main.mxml

customPanel.addEventListener('someEvent', someEventHandler);

private function someEventHandler(e:Event):void
{
   div1.doSomething();
}
CustomPanel.mxml

private function xxxx(){
   this.dispatchEvent(new Event('someEvent'));
}

如果要引用主应用程序,可以使用:

FlexGlobals.topLevelApplication

在您的情况下,您应该听J_A_X。

在main.mxml中是否也创建了Custompanel.mxml?