Форум 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=57654)

BlackScorpion 29.04.2004 09:55

Все тоже текстовое поле.
 
Имеется текстовое поле, с определенным текстом.
Требуется в любой позиции этого текста изменить символ.
Подскажите пожалуйста как это сделать.

_zhloba 29.04.2004 10:47

функции для работы со строками во флаше слабоваты, приходится писать свои.
Вот, например, функция, которая заменяет в строке txt_str все символы replace_what на символы replace_to

function replaceSymbol(txt_str, replace_what, replace_to){
var t_str="";
var num=txt_str.length;
var i=0;
for (i=0;i<num;i++){
if(txt_str.charAt(i)==replace_what)
{t_str+="replace_to'";}
else{t_str+=txt_str.charAt(i);}
}
return t_str;
}

это не альтернатива функции string_replace() для других языков программирования, так как она замещает отдельные символы, а не подстроки.
Но ее можно преобразовать для твоих нужд

function replacePosition(txt_str, position, replace_to){
var t_str="";
var num=txt_str.length;
var i=0;
for (i=0;i<num;i++){
if(i==position){ t_str+=replace_to; }
else{t_str+=txt_str.charAt(i);}
}
return t_str;
}

И использовать
text_field.text=replacePosition(text_field.text,5,"w");

Кстати, может быть, кто-то напишет функцию
string_replace() для замены подстроки в строке?

Nucer 29.04.2004 12:35

Код:

function replace ( STR:String , WAS:String , NEED:String ):String
{
        var RES:String;
        var j:Number = 0;
        var TEMP:String;
        var ARR:Array = new Array ();
        for ( i:Number = 0 ; i < STR.length ; i++ )
        {
                TEMP = STR.slice( i , i + WAS.length );
                if ( TEMP == WAS )
                {
                        ARR[j] = NEED;
                        i += WAS.length - 1;
                }
                else
                {
                        ARR[j] = STR.charAt( i );
                }
                j++;
        }
        RES = ARR.join( "" );
        return RES;
}

Вроде то что надо и вроде работает - сам писал

_zhloba 29.04.2004 13:39

Спасибо.
Кстати, я вынес тему строковых функций в отдельный топик в разделе ActionScript2.
Тут есть, что обсуждать. К примеру - поддержка регулярных выражений в той же string_replace()


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

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