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?