問題は、開発者が Change イベントの発生を止めたことです。NumericStepper のソース ファイルに移動すると、それを見つけることができます。イベントの取得を妨げる 2 つの関数を次に示します。
override protected function createChildren():void
{
super.createChildren();
if (!inputField)
{
inputField = new TextInput();
//some code
//some code
inputField.addEventListener(Event.CHANGE, inputField_changeHandler);
addChild(inputField);
}
}
private function inputField_changeHandler(event:Event):void
{
// Stop the event from bubbling up.
event.stopImmediatePropagation();
var inputValue:Number = Number(inputField.text);
if ((inputValue != value &&
(Math.abs(inputValue - value) >= 0.000001 || isNaN(inputValue))) ||
inputField.text == "")
{
_value = checkValidValue(inputValue);
}
}
ご覧のとおり、2 番目の関数には event.stopImmediatePropagation(); があります。
この場合、2 つの選択肢があります。ロジックを実装する別の方法を見つけるか、コンポーネントのソース コードをコピーしてこのコード行を削除するかです。
関数をオーバーライドしても問題ありませんが、非公開です。
この一般的な問題については、こちらで読むことができます
私は2番目の方法を選択しようとしました。それは完全に機能します!*.as ファイルだけでなく、その中で使用される他のファイルもあります。
コンポーネントはここからダウンロードできます。