Apache flex 将组件变量值获取到主应用程序中
我有一个组件,它获取单选按钮选择的数据Apache flex 将组件变量值获取到主应用程序中,apache-flex,components,flash-builder,flex4.5,Apache Flex,Components,Flash Builder,Flex4.5,我有一个组件,它获取单选按钮选择的数据 <mx:itemRenderer > <fx:Component id="radio"> <mx:RadioButton selected="false" useHandCursor="true" change="item_changeHandler(event)">
<mx:itemRenderer >
<fx:Component id="radio">
<mx:RadioButton selected="false" useHandCursor="true" change="item_changeHandler(event)">
<fx:Script>
<![CDATA[
private var data_id:int;
private var data_name:String;
protected function item_changeHandler(event:Event):void
{
data_id=data.id;
data_name=data.name;
}
]]>
</fx:Script>
</mx:RadioButton>
</fx:Component>
</mx:itemRenderer>
如果我理解正确,那么我会在id和名称更改时发送一个事件,并在主应用程序中捕获它。例如,您可以使用变量id和名称创建CustomEvent类YouDataEvent.as。我经常将其用于我自己的对象,然后将对象与事件一起发送。让我们调用包含id和名称的对象 然后,您可以在数据更改时调度事件,例如在*item\u changeHandler*方法中,如下所示:
dispatchEvent(new YourObjectEvent(YourObjectEvent.YOURDATA_UPDATED, yourObjVar));
并在主要应用程序中捕获,例如:
FlexGlobals.topLevelApplication.addEventListener(YourObjectEvent.YOURDATA_UPDATED, yourObjUpdatedHandler);
private function yourObjUpdatedHandler(event:YourObjectEvent): void {
//DO something
var id:Number = event.yourObj.id;
var name:String = event.yourObj.name
}
希望这有帮助
dispatchEvent(new YourObjectEvent(YourObjectEvent.YOURDATA_UPDATED, yourObjVar));
FlexGlobals.topLevelApplication.addEventListener(YourObjectEvent.YOURDATA_UPDATED, yourObjUpdatedHandler);
private function yourObjUpdatedHandler(event:YourObjectEvent): void {
//DO something
var id:Number = event.yourObj.id;
var name:String = event.yourObj.name
}