Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Русские символы в TextField.restrict (http://www.flasher.ru/forum/showthread.php?t=72172)

kvv 20.11.2005 23:15

Русские символы в TextField.restrict
 
my_txt.restrict='А-Яа-я';
не работает...
my_txt.restrict='АБВГД...';
тоже

Вариант restrict='^остальные символы'; слишком громоздок - все возможные символы перечислять заипешься...

Как наиболее рационально решить проблему?

Nirth 20.11.2005 23:41

забавно, сделал еще так
Код:

var str='йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ';
for(var i:Number=0;i<str.length;i++){
        trace(str.charCodeAt(i).toString(16));
}

получил их коды и написал
Код:

createTextField("boo",5,0,0,200,200);
boo.type = "input";
boo.background = true;
boo.border = true;
boo.restrict = "\u0439-\u042e";

не работает, трейсю
Код:

trace(boo.restrict) //выводит "й-Ю"
видать с русскими символами не дружит, и придеться вводить вручную

iNils 21.11.2005 01:07

Попробуйте вместо а-я написать а--я

kvv 21.11.2005 16:08

Ничего из предложенного не работает...
Попробовал сделать так: restrict="йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ";
На русской раскладке некоторые строчные(прописные вообще нет) клавиши вводятся, но в текстфилд пишутся не русские символы, а цифры и англ буквы.

Чтобы разобраться, написал такой код:
middle_mc[nm+'_txt'].onChanged=function()
{
trace(Key.getCode());
trace(chr(Key.getCode()));
trace(Key.getAscii());
trace(ord(Key.getAscii()));
}
Сверился с таблицей символов. Выходит,что trace(Key.getAscii()); правильно определяет код нажатой клавиши(для строчных). Дальше запутался...

Никто не сталкивался с такой проблемой? Ведь иначе же никак нельзя запретить ввод определенных символов в поле на стороне клиента...

iNils 21.11.2005 16:15

Давай исходник.

Я проверял в mx, там работает только если писать а--я.
В 8-ке работало а-я, и не важно под какой плеер публиковать.

Затыки скорее всего именно в версиях плеера.

kvv 21.11.2005 16:27

flash mx2004

исходник несколько тысяч кода...
вот часть кода, которая создает форму регистрации, в ней и устанавливается рестрикт
Код:

        var caps={login:['Login:',50,' A-Za-z0-9а-я'],password:['Password:',100],name:['Имя:',255],birthDate:['День рождения',2],birthMonth:['Месяц рождения',2],birthYear:['Год рождения',2],gender:['Пол(м/ж):',1],class_n:['Класс(номер):',2],class_l:['Класс(буква):',1]};
        var cnt=0;
        for(var nm in caps)
        {
                with(_root['regwin_mc'])
                {
                        middle_mc.createTextField(nm+'_label_txt',middle_mc.getNextHighestDepth(),10,30+25*cnt,100,22);
                        middle_mc[nm+'_label_txt'].text=caps[nm][0];
                        middle_mc[nm+'_label_txt'].selectable=false;
                        middle_mc.createTextField(nm+'_txt',middle_mc.getNextHighestDepth(),120,30+25*cnt,170,22);
                        middle_mc[nm+'_txt'].maxChars=caps[nm][1];
                        middle_mc[nm+'_txt'].border=1;
                        middle_mc[nm+'_txt'].borderColor=0xB0B1C8;
                        middle_mc[nm+'_txt'].type='input';
                        middle_mc[nm+'_txt'].restrict=caps[nm][2];
                        middle_mc[nm+'_txt'].onChanged=function()
                        {
                                trace(Key.getCode());
                                trace(chr(Key.getCode()));
                                trace(Key.getAscii());
                                trace(ord(Key.getAscii()));
                        }
                }               
                cnt++;
        }

Вообще, когда убрал middle_mc[nm+'_txt'].restrict оказалось, что все русские символы вводятся криво - например, вместо "а" вводится "0"! Может, в этом вся проблема? И как исправить это? System.useCodepage= установлен в тру.

iNils 21.11.2005 16:36

У тебя какие то проблемы с шрифтом. Проверил в двух версиях флеша - работет.

Попробуй сменить шрифт.

kvv 21.11.2005 16:45

Все, пасиб. Оказывается, все отлично работает(restrict='А-Яа-я' отлично пашет). Проблема в ПО(скорее всего, в 98 винде) - при тестинге флешки глючит, а при нормальном запуске все нормально.


Часовой пояс GMT +4, время: 01:26.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.