![]() |
неа, не надоел :)
Мануал отличный! Я, кстати, много интересного для себя нахожу на сайте http://www.intuit.ru/courses.html -- всем советую. |
В ActionScript classes > Key > getAscii (Key.getAscii method) есть один недостаток -- The ASCII values returned are English keyboard values (т.е. какая бы раскладка не была включена, вернется все равно английский аски). Бился над этой проблемой кучу времени. Единсвенный, относительно нормальный, способ, который я придумал -- это английский аски код пропускать через массив.
Код:
this.createTextField("my_txt", 0, 100, 100, 100, 100);У меня есть подозрения, что это как то можно обойти при помощи цинка. Есть какие-нибудь мысли по этому поводу? |
Вложений: 1
Уточни: ты автоматическую транслитерацию задумал сделать? Или тебе нужно просто, чтобы принудительно всегда печаталось по русски? Или нужно печатать по русски при реально включенной английской раскладке? Не догоняю..
Цитата:
А не работает до конца потому, что при смене раскладки Key.getAscii() может для некотрых кнопок возвращать разные значения в отличие от Key.getCode(), кстати, который возвращает код клавиши один и тот же не зависимо от раскладки. В подмогу вложение. |
ты своей флэшкой сам ответил на свой вопрос!! :)
и при русской и при аглийской раскладке возвращаются английский аски!!! Т.е. в любом случае вернется нерусский код :) Попрубуй после того как ты считал код нажатой клавиши, вывести русский символ -- ничего не получится!! Как узнать код русской нажатой клавиши? -- вот это я имел ввиду. |
Код клавиши (не символа) не зависит от раскладки. Просто потому что кнопки на клавиатуре одни и те же.
|
Вложений: 1
Неужели это продолжение темы http://flasher.ru/forum/showthread.php?t=92449 ? Значит ли это, что тебе нужно ТОЛЬКО узнать КОД символа на нажатой кнопке в русской раскладке и напечатать его? Тогда попробуй вот это - см. вложение.
Если без цинка. И если это то, что тебе надо. С цинком должно быть проще - принудительно переключать раскладку на русскую по какому нибудь событию и какие проблемы после этого - я не понимаю. |
Вдогонку
Вложений: 1
Забыл "залипание" SHIFT'а сделать. Исправился.
|
2 alexcon314 выложи свой код поджалуйста!
флэшки мне мало о чем говорят... |
Код
Вложений: 1
код во .fla:
Код:
#include "remap.as"Привязка происходит именно к кодам клавиш, а не к Ascii. В remap.as просто вручную расписаны по кнопкам символы. Все это можно заточить получше. Это всего лишь рабочий вариант. Косяк: если вручную нарисовать TextField и дать ему тип input - работать будет гораздо хуже. Поможет my_txt.restrict = "^a-z\\A-Z" |
Попытался построить broadcaster-listener события "изменилась раскладка". Вариант с вызовом dll-функции по интервалу из цинка через setInterval или onEnterFrame отпадает, т.к. при коротких интервалах вызова цинк падает. Почему - не выяснял.
Пробовал вариант .onKeyDown (.isDown) c клавишами Ctrl+Shift или Alt+Shift. Установленный в системе способ переключения раскладки клавишами можно о узнать в реестре. С Ctrl куда ни шло. А вот Alt засечь не получается. Тупик. |
| Часовой пояс GMT +4, время: 22:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.