Flex : кнопка, действующая как backspace

Как бы вы сделали, чтобы событие кнопки вызывало функцию, которая действует как удаление события клавиатуры возврата.

Я безуспешно пытался подделать событие клавиатуры диспетчера «keyup» «keydown» с кодом клавиши 8 и номером клавиши 8.

Нет другого способа, кроме как сделать это вручную с помощью индекса begin и end select плюс substr ?

У меня есть текстовый ввод, я просто хочу добавить кнопку, действующую как возврат.

Спасибо


person coulix    schedule 27.07.2009    source источник


Ответы (2)


Вы можете использовать код ASCII 8 и преобразовать его в char или использовать управляющий символ '\b'

или вы можете манипулировать объектом textFieldInstance:

textFieldInstance.text = textFieldInstance.text.substr( 0, -1 );

видеть:

http://board.flashkit.com/board/showthread.php?t=246003

http://www.java2s.com/Code/Flash-Flex-ActionScript/String/InsertingSpecialWhitespaceCharactersBackspaceb.htm

http://www.wipeout44.com/brain_food/flash_actionscript_goodies.asp

http://www.ultrashock.com/forums/actionscript/deleting-chars-in-a-text-field-eg-backspace-124649.html

person Ethan Heilman    schedule 27.07.2009
comment
что, если я выбрал длинное слово из 5 символов и попытаюсь воспроизвести клавишу Backspace? .text.substr( 0, -1 ); не будет работать. - person coulix; 28.07.2009
comment
не следует имитировать ввод пользователем \b удаления выбранного слова? - person Ethan Heilman; 28.07.2009
comment
Полезный. Keyboard.BACKSPACE поскольку keyCode для KeyboardEvent недостаточно, он также должен содержать '\b' charCode - person user1875642; 29.04.2013

Вы можете попробовать это:

function delSelected(textFieldInstance:TextField):void {
  var bIndex:int = textFieldInstance.selectionBeginIndex;
  var eIndex:int = textFieldInstance.selectionEndIndex;
  if (bIndex == eIndex) {
    textFieldInstance.text = textFieldInstance.text.substr(0,-1);
  } else {
    var a:String = textFieldInstance.text.substr(0,bIndex);
    var b:String = textFieldInstance.text.substr(eIndex);
    textFieldInstance.text = a+b;
  }
}
person Phil Hayward    schedule 10.11.2009