ActionScript 2.0: заменяем текстовые смайлики на графические

Продолжаю тему замены текстовых смайликов на графические, но теперь уже на примере языка 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(); };

Результат работы данного кода:

Загрузить Adobe Flash Player

Как это работает? Просто. Вводим в нижнее поле ввода смайл (в данном примере поддерживаются только два: «:-)» и «:-(»). Каждый раз, когда вы меняете содержимое поля ввода, программа ищет во введённом тексте текстовые смайлики и, если находит, заменяет их графическими.

Конечно, код не идеальный, но... работающий :-) Список смайликов, естественно, вы всегда можете расширить.

Исходник под Macromedia Flash 8 можно скачать тут.

Примечание

Будьте особенно внимательны, когда указываете путь к графическому смайлику. Если путь будет указан неправильно, то флеш-плеер не выдаст вам ошибку... но и картинку он тоже не покажет.

Автор: admin

Дата добавления: 2011-10-04

Просмотров: 2169

Рейтинг поста: +2-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2013-04-08
> В чате так нельзя.

Уважаемый, а где вы в посте нашли упоминание о чате?
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2013-04-08
Если встроить таким способом, как описан в посте, то из анимированного gif получится вполне себе статичный gif :-) Вообще, гиф-анимация редко когда хорошо смотрится во флеш-роликах, а веса прибавляет изрядно. Надо искать другие пути.
Комментатор
Комментарий добавил(а): Ched
Дата добавления: 2013-04-08
В аналогичном уроке для JS смайлик анимирован. Для флэш это возможно? Или анимация gif-смайлика проигрывается только во флэшке, вставленной на сайт, а не когда открывается на компе?
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2012-03-24
А где написано, что это для чата делалось? Ничего подобного. Просто в демке два поля и вам померещился чат. На самом деле это был вариант кода для формы.
Комментатор
Комментарий добавил(а): Александр
Дата добавления: 2012-03-24
Я думал что-то действительно тут дельное. А это вообще какой-то нубо-скрипт. И все это 100500 раз знают. Но только ты одного не учёл - введи "Привет :-) Как дела" и получишь непонятно-дурной текст. В чате так нельзя. Нужны совсем иные способы!
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2011-10-04
Спасибо
Комментатор
Комментарий добавил(а): Вася
Дата добавления: 2011-10-04
Круто!
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика