我在CustomPanel.mxml
中有一个方法,我需要使用id
中提供的Main.mxml
以下是我的示例代码
Main.mxml
<local:CustomDivideBox id="div1">
Custompanel.mxml
private function xxxx(){
div1.state = (div1.state == CustomDividedBox.COLLAPSE ? CustomDividedBox.EXPAND : CustomDividedBox.COLLAPSE);
}
请提供一些示例代码。
谢谢, 纳温
答案 0 :(得分:0)
当你已经在对象中时,为什么需要id?在自定义组件中使用“this”运算符。
private function xxxx(){
this.state = (this.state == CustomDividedBox.COLLAPSE ? CustomDividedBox.EXPAND : CustomDividedBox.COLLAPSE);
}
这是非常基本的OOP概念,我建议你阅读。
编辑: 哦,等等,这是2个不同的组件。你想要做的是在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'));
}
答案 1 :(得分:0)
如果您想要引用主应用程序,可以使用:
FlexGlobals.topLevelApplication
在你的情况下你应该听J_A_X。