Продолжаю тему замены текстовых смайликов на графические, но теперь уже на примере языка ActionScript 2.0.
Углубляться в теорию я не буду, а просто приведу пример небольшой программки на ActionScript-е. Код прокомментирован и ничего сложного там нет.
Код ActionScript 2.0:
/*
Переменные-итераторы.
*/
var i:Number;
var j:Number;
/*
Переменная, в которой будем хранить искомую подстроку.
*/
var str:String;
/*
Многомерный массив, в котором хранятся текстовые смайлики и ссылки на соответствующие им графические смайлики.
*/
var smiley:Array = new Array([':-)', "smile.gif"], [':-(', "sad.gif"]);
/*
Динамическое текстовое поле, в котором будет отображаться вводимый текст.
*/
this.createTextField("txtField",this.getNextHighestDepth(),25,25,500,200);
txtField.border = true;
txtField.borderColor = 0xcccccc;
txtField.multiline = true;
txtField.wordWrap = true;
txtField.html = true;
txtField.htmlText = "";
/*
Поле ввода, в которое будем вводить текст.
*/
this.createTextField("txtFieldInput",this.getNextHighestDepth(),25,250,500,125);
txtFieldInput.type = "input";
txtFieldInput.border = true;
txtFieldInput.borderColor = 0x999999;
txtFieldInput.multiline = true;
txtFieldInput.wordWrap = true;
txtFieldInput.text = "";
/*
Эта именно та функция, которая и заменяет текстовые смайлики на графические.
*/
function myFormat()
{
i = 0;
while (i < smiley.length)
{
j = 0;
while (j < txtFieldInput.text.length)
{
str = smiley[i][0];
j = txtFieldInput.text.indexOf(str, j);
if (j > -1)
{
txtFieldInput.replaceText(j,j + str.length,'<img src="' + smiley[i][1] + '" width="24" height="24">');
}
else
{
break;
}
}
i++;
}
txtField.htmlText = txtFieldInput.text;
}
/*
Запускаем нашу функцию myFormat() каждый раз, когда происходит изменение содержимого поля ввода.
*/
txtFieldInput.onChanged = function()
{
myFormat();
};
Результат работы данного кода:
Как это работает? Просто. Вводим в нижнее поле ввода смайл (в данном примере поддерживаются только два: «:-)» и «:-(»). Каждый раз, когда вы меняете содержимое поля ввода, программа ищет во введённом тексте текстовые смайлики и, если находит, заменяет их графическими.
Конечно, код не идеальный, но... работающий :-) Список смайликов, естественно, вы всегда можете расширить.
Исходник под Macromedia Flash 8 можно скачать тут.
Примечание
Будьте особенно внимательны, когда указываете путь к графическому смайлику. Если путь будет указан неправильно, то флеш-плеер не выдаст вам ошибку... но и картинку он тоже не покажет.
Уважаемый, а где вы в посте нашли упоминание о чате?