Просмотр полной версии : Все тоже текстовое поле.
BlackScorpion
29.04.2004, 09:55
Имеется текстовое поле, с определенным текстом.
Требуется в любой позиции этого текста изменить символ.
Подскажите пожалуйста как это сделать.
функции для работы со строками во флаше слабоваты, приходится писать свои.
Вот, например, функция, которая заменяет в строке 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() для замены подстроки в строке?
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;
}
Вроде то что надо и вроде работает - сам писал
Спасибо.
Кстати, я вынес тему строковых функций в отдельный топик в разделе ActionScript2.
Тут есть, что обсуждать. К примеру - поддержка регулярных выражений в той же string_replace()
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.