我有一個由可選控件(單選按鈕) 和文本輸入組成的自定義組件。我想執行一些邏輯以響應來自這兩個控件的 更改事件,但在此之後,我希望 在複合組件的更改處理程序 上註冊的任何內容都有更改以處理事件。問題是,當我 重新分派事件時,事件目標已更改爲我的自定義 組件,從而失去原始事件的目標。組合自定義組件上的Flex 3事件傳播?
這裏是我的自定義組件:
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" label="{[email protected]}" data="{[email protected]()}">
<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="{[email protected]}"
enabled="{selected}"
visible="{listItem.hasOwnProperty('specify')}"
includeInLayout="{visible}"
change="onTextChange(event)"/>
</mx:HBox>
在接收來自這個組件的改變事件的事件處理程序,我 看到event.target是SpecifyRadioButton的一個實例,而不是 的TextInput或單選按鈕,因爲我期待。我應該如何宣傳 活動以獲得我想要的內容?
Getting event [Event type="change" bubbles=false cancelable=false eventPhase=2]
from question0.tabSurvey.questionForm.questionContainer.Single94.VBox95.SpecifyRadioButton111