android actionscript-3 air autocorrect

android - StageText emite autocorrección y restricción



actionscript-3 air (1)

Estoy intentando utilizar StageText en una aplicación Android AIR de la siguiente manera:

var tf:StageText = new StageText(); tf.stage = stage; tf.viewPort = new Rectangle(0, 0, stage.fullScreenWidth, 90); tf.text = "Test"; tf.editable = true; tf.autoCorrect = false; tf.fontSize = 50; tf.color = 0xFF0000; tf.maxChars = 12; tf.restrict = "A-Za-z";

Al editar este StageText en un dispositivo Android todo funciona como se espera hasta que presionas el botón Eliminar. Hasta ahora, no se mostrarán las sugerencias de autocorrección, pero una vez que se presiona el botón de eliminación, las sugerencias de autocorrección comenzarán a mostrarse. Ahora, la siguiente tecla que presione insertará la palabra autocorrectada en la posición del cursor en lugar de cualquier tecla presionada (por ejemplo, si presiona "s" insertará "Son" si esa fue la sugerencia de autocorrección).

Lo realmente extraño es que este comportamiento solo ocurre si establezco la propiedad de restricción en el Texto de Fase: si hago un comentario sobre la línea restringida, todo funciona exactamente como esperaba.


De los documentos ( flash.text.StageText.restrict ):

Nota: Las restricciones se aplican solo a la entrada del usuario; un script puede insertar cualquier caracter en el campo de texto.

Como las restricciones no son 100% confiables, en lugar de asignar valor a la propiedad restrict del campo de texto, usted mismo podría evaluar el texto usando su propia lógica ( RegExp ) en un controlador de eventos CHANGE . Esto le daría un control total sobre lo que los usuarios ingresan en el campo de texto.

tf.addEventListener(Event.CHANGE, textFieldChangeEventHandler); private function textFieldChangeEventHandler(event:Event):void { trace(event.target.text); //Manage text }