|
|
|||||
Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
|
Вычисление символа через keyCode
Привет. У меня такая задача:
Нужно вычислить символ зная только keyCode клавиши с этим символом. При событии KEY_DOWN я сохраняю keyCode , а потом, нужно вбить эту клавишу которую он нажал в текстовое поле. Из за кучи причин использовать charCode я немогу. Можно ли как-нибудь это реализовать? Хэлп плиз.
__________________
Peace !!! |
|
|||||
Регистрация: Dec 2007
Сообщений: 269
|
извиняюсь, а можно узнать почему charCode нельзя использовать?
|
|
|||||
стервочка (я мужик)
|
сделать невидимое текстовое поле в, в которое на самом деле будет вбиваться текст %)
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Текстовое поле со своим курсором (эксперимент, поэтому код кривой), должен навести на мысль:
function textInput(event:TextEvent):void { input.appendText(event.text); caretIndex++; updateCaret(); event.preventDefault(); } function updateCaret():void { var rect:Rectangle = input.getCharBoundaries(caretIndex - 1); if (!rect) { caret.x = 0; caret.y = input.height - 2; } else { caret.x = rect.x + rect.width; caret.y = rect.y; } var m:TextLineMetrics = input.getLineMetrics(0); caret.graphics.clear(); caret.graphics.lineStyle(0, 0xFF0000); caret.graphics.lineTo(0, m.height); } var caretIndex:uint = 0; var dir:int = -1; function enterFrame(event:Event):void { caret.alpha += dir * 0.1; if (caret.alpha < 0.01 || caret.alpha >= 0.99) dir *= -1; } function keyDown(event:KeyboardEvent):void { switch (event.keyCode) { case 8: caretIndex = caretIndex > 0 ? caretIndex - 1 : 0; input.text = input.text.substr(0, -1); this.updateCaret(); break; } } var tf:TextField = new TextField(); tf.addEventListener(TextEvent.TEXT_INPUT, textInput); tf.width = super.stage.stageWidth; tf.height = super.stage.stageHeight; tf.type = TextFieldType.INPUT; tf.filters = [new BlurFilter(0, 0, 0)]; tf.alpha = 0; tf.multiline = true; var input:TextField = new TextField(); input.width = super.stage.stageWidth; input.height = super.stage.stageHeight; input.selectable = false; input.mouseEnabled = false; input.autoSize = TextFieldAutoSize.LEFT; super.addChild(input); super.addChild(tf); super.stage.focus = tf; var caret:Shape = new Shape(); super.addChild(caret); super.stage.addEventListener(Event.ENTER_FRAME, enterFrame); super.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown); updateCaret(); |
|
|||||
Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
|
charCode и другое текстовое поле не могу использовать, потому что мне придётся создавать кучу новых переменных, тем более мне нужно сохранять их в sharedObject, а таких переменных у меня много.
Думал что можно обойтись и keyCode, если нет, то придётся пожертвовать ресурсами компьютера 2 __etc Может я не так понял действие кода, но как я понял - там описывается как можно получить символ при нажатии клавиши? Но у меня другая проблема... Но спасибо за помощь !
__________________
Peace !!! |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Трагедия жанра. Любите кататься? Заправляйте машину.
|
|
|||||
Регистрация: Jan 2007
Адрес: Узбекистан, Ташкент
Сообщений: 450
|
Я нашел выход - я вспомнил что charCode и keyCode совпадают для латинских символов с верхним регистром(что мне и нужно было), и мне не пришлось создавать новых переменных.
PS. Это я для тех у кого может быть такая же проблема...
__________________
Peace !!! |
Часовой пояс GMT +4, время: 03:37. |
|
« Предыдущая тема | Следующая тема » |
|
|