Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   замена буквы (http://www.flasher.ru/forum/showthread.php?t=50251)

catilina 15.10.2003 11:17

замена буквы
 
спасите. ОЧЕНЬ НУЖНО заменять одну букву на другую, по ходу набора, в том же самом текстовом окне...
есть идеи?

lexass 15.10.2003 11:49

Re: замена буквы
 
Цитата:

Оригинал написал(а) catilina

есть идеи?

есть
вар. 1 проверять каждую введенную
(мало загрузки, но Ctrl+V)
вар. 2 проверять постоянно всю строку при вводе
и если А==В, то менять
вар. 3 проверять всегда данную строку ;)
(тормоза придумали трусы)

catilina 15.10.2003 13:19

>есть
>вар. 1 проверять каждую введенную
>(мало загрузки, но Ctrl+V)

а как это делать? в этом и весь вопрос

вот что я написал, не работает как нужно:

eng = new Array(97, 98, 99.. ..74, 90);
geo = new Array(4304, 4305, 4330.. ..44, 46, 96);

listen = new Object();
listen.onKeyDown = function() {
letter_code = Key.getAscii();
for (i=0; i<=geo.length; i++) {
if (eng[i] == letter_code) {
new_letter = String.fromCharCode(geo[i]);
geonew.text = geonew.text+new_letter;
}}}
Key.addListener(listen)

где eng[i] и geo[i] массивы кодов соответсвенно новых и старых букв, geonew - инстанс нэим текстового поля.

набирает новые буквы, но старые оставляет в том-же окне и курсор тоже не переходит на конец. help

lexass 15.10.2003 15:46

ну например:
 
//TF - TextField name
//txt- variable name
TF.onChanged = function(){checkStr();}
function checkStr() {
var i,checkSimb='x',replaceSimb='@';if(txt=='' || txt==undefined)return;
while((i=txt.indexOf(checkSimb))>-1)txt=txt.substring(0, i)+replaceSimb+txt.substring(i+1, txt.length);
};

вот так фонтазия сработала!

catilina 15.10.2003 16:46

волшебник

работает и на все буквы:

eng=new Array(97, 98.. ..74, 90);
geo=new Array(4304, 4305.. ..46, 96);
tf.onChanged = function(){checkStr();}
function checkStr() {
letter_code = Key.getAscii();
checkSimb=String.fromCharCode(letter_code);
i=0;
for (i=0; i<=geo.length; i++) {
if (eng[i] == letter_code) {
replaceSimb = String.fromCharCode(geo[i]);
}}
if(txt=='' || txt==undefined)return;
while((i=txt.indexOf(checkSimb))>-1)txt=txt.substring(0, i)+replaceSimb+txt.substring(i+1, txt.length);
}

lexass 15.10.2003 18:23

Цитата:

Оригинал написал(а) catilina

работает

:D , а разве кто-то грил что не будет?!


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

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