Несколько примеров работы со строками в Flash Lite 1.1. Т.к стандартных функций не предусмотрено, — придется писать свои. Рассмотрим наиболее основные: перевод строки в нижний регистр, перевод строки в верхний регистр, нахождение позиции(номера) символа в строке, замена слова в строке, разбиение строки. Собственно их и будем реализовывать.
Написанные нами «функции» мы сможем вызывать из главной сцены, при помощи функции call(). Приступим к написанию первой из них — перевод строки в нижний регистр:
// input_str set by calling script
output_str = "";
len = length(input_str);
for (i=1; i64 && ord(let)<91)
let = chr(ord(let)+32);
output_str = output_str add let;
}
Перевод строки в верхний регистр:
output_str = "";
len = length(input_str);
for (i=1; i
{
let = substring(input_str, i, 1);
if (ord(let)>96 && ord(let)<123)
let = chr(ord(let)-32);
output_str = output_str add let;
}
Теперь попробуем найти позицию символа в строке:
thePos = -1;
len = length(input_str);
for (i=1; i
{
let = substring(input_str, i, 1);
if (let eq theChr)
{
thePos = i;
break;
}
}
ш в конце добавим скрипт для замены слова в строке:
output_str = ""; inputLen = length(input_str); searchLen = length(search_str);for (i=1; i { inputChr = substring(input_str, i, 1); searchChr = substring(search_str, 1, 1); if(inputChr eq searchChr) { /** * First character matches, * attempting to match the rest of search_str */ matchFound = true; pos = i; k = 1; for (j=pos; j { searchChr = substring(search_str, k++, 1); matchChr = substring(input_str, j, 1); if (!(searchChr eq matchChr)) { matchFound = false; break; } } if (matchFound) { // Perform the replace i += length(search_str)-1; output_str = output_str add replace_str; } else { output_str = output_str add inputChr; } } else { output_str = output_str add inputChr; } }
вот, собственно, это весь код, который нам понадобится, чтобы реализовать работу со строками. Осталось только на главной сцене сделать клип, войти в него и разместить на отдельных кадрах эти "функции". Затем на главной сцене в первом кадре пишем вызов. Например:
// lowercase
StringFunctions.input_str = "uSerNAMe";
call("StringFunctions:lowercase");
output = StringFunctions.output_str;
trace(output);