问题是开发人员已阻止 Change 事件冒泡。如果你去 NumericStepper 的源文件,你可以找到它。这里有两个函数,它们会阻止您获取事件。
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);
}
}
如您所见,第二个函数有 event.stopImmediatePropagation();
在这种情况下,您有两个选择:您应该找到另一种实现逻辑的方法,或者您可以复制组件的源代码并删除此代码行。
覆盖该函数会很好,但它是私有的。
您可以在此处阅读有关此常见问题的信息
我试图选择第二种方式。它完美地工作!它不仅是 *.as 文件,还有其他一些文件在其中使用。
您可以在此处下载该组件。