【发布时间】:2010-11-13 21:12:14
【问题描述】:
我有一个由可选控件(单选按钮)组成的自定义组件 和文本输入。我想执行一些逻辑来响应 从这两个控件更改事件,但之后我想要 在复合组件的更改处理程序上注册的任何内容 也要进行更改以处理事件。问题是,当我 重新调度事件目标已更改为我的自定义的事件 组件,丢失原始事件的目标。
这是我的自定义组件:
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" label="{listItem.@text}" data="{listItem.@level.toString()}">
<mx:Script>
<![CDATA[
import mx.controls.RadioButtonGroup;
[Bindable]
public var selected: Boolean;
[Bindable]
public var text: String;
[Bindable]
public var listItem: XML;
[Bindable]
public var group: RadioButtonGroup;
private function onSelectionChange(event: Event): void {
selected = event.target.selected;
dispatchEvent(event);
}
private function onTextChange(event: Event): void {
text = event.target.text;
dispatchEvent(event);
}
]]>
</mx:Script>
<mx:RadioButton group="{group}" label="{label}" selected="{selected}" change="onSelectionChange(event)"/>
<mx:TextInput width="100%"
maxChars="{listItem.specify.@entryLength}"
enabled="{selected}"
visible="{listItem.hasOwnProperty('specify')}"
includeInLayout="{visible}"
change="onTextChange(event)"/>
</mx:HBox>
在从该组件接收更改事件的事件处理程序中,我 看到 event.target 是 SpecifyRadioButton 的一个实例,而不是 正如我所料,TextInput 或 RadioButton。我应该如何传播 在这里得到我想要的东西?
Getting event [Event type="change" bubbles=false cancelable=false eventPhase=2]
from question0.tabSurvey.questionForm.questionContainer.Single94.VBox95.SpecifyRadioButton111
【问题讨论】:
标签: apache-flex actionscript-3 flex3 event-handling