Имитация кнопки Нажмите с изменением события [AS3]

Я пытаюсь имитировать нажатие кнопки с изменением события. Он работает хорошо, но когда я набираю символ в текстовом поле, он вычисляет. Я не могу напечатать слово. Как я могу это исправить.

stage.addEventListener(Event.CHANGE, autohesap);

function autohesap(event:Event) {
hesapla_btn.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
2 ответа

TextField отправляет Event.CHANGE каждый раз, когда содержимое изменяется (например, вводится новый символ). Когда вы добавляете слушателя Event.CHANGE на stage, на stage собираются все события типа CHANGE, в том числе тот, который отправлен вашим TextField. Я не уверен, что это поведение, которое вы ищете?

Если это так, и вы "не можете набрать слово", то это выглядит так, потому что ваше autohesap изменение меняет stage.focus - когда вы нажимаете на TextField для записи в нем, stage.focus устанавливается в TextField в вопросе - если вы вручную установите stage.focus = null, то TextField будет отменен, и вы больше не сможете вводить его, пока не нажмете его снова.


Создайте объект-контейнер для хранения всех "изменяемых" объектов в качестве дочерних. Но оставьте текстовое поле из семейства контейнеров. Вы все равно можете поместить текстовое поле где угодно, но его события будут обходить контейнер, который будет "слышать" события только сам по себе или своими детьми.

licensed under cc by-sa 3.0 with attribution.