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

时间:2011-05-16 14:05:08

标签: flex flex3 flex4

我在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);

}

请提供一些示例代码。

谢谢, 纳温

2 个答案:

答案 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。