J'ai un composant personnalisé composé d'un contrôle sélectionnable (bouton radio) et d'une entrée de texte. Je veux effectuer une certaine logique en réponse aux événements de changement de ces deux contrôles, mais après cela, je veux tout ce qui est enregistré sur le gestionnaire de changement du composant composite pour avoir une modification pour gérer les événements aussi bien. Le problème est, lorsque je réexpédier les événements la cible de l'événement a changé pour mon composant personnalisé , perdant la cible de l'événement d'origine.La propagation d'événements Flex 3 sur un composant personnalisé composite?
Voici mon composant personnalisé:
<?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>
Dans le gestionnaire d'événements qui reçoit changer les événements de cette composante, je vois que event.target est une instance de SpecifyRadioButton, pas le TextInput ou RadioButton, comme je J'attends. Comment devrais-je propager l'événement pour obtenir ce que je veux ici?
Getting event [Event type="change" bubbles=false cancelable=false eventPhase=2]
from question0.tabSurvey.questionForm.questionContainer.Single94.VBox95.SpecifyRadioButton111