«Текст по умолчанию» в поле ввода на ActionScript

Итак, задача следующая: в поле ввода есть некий текст по умолчанию; если пользователь начал вводить собственный текст, то текст по умолчанию исчезает; если пользователь передумал вводить свой текст, то текст по умолчанию восстанавливается.

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

Начнём с ActionScript 3.0...

Код ActionScript 3.0:

/* импорт классов */ import flash.text.*; import flash.events.FocusEvent; /* переменная, которая хранит текст по умолчанию */ var defaultText:String = "Поле ввода текста"; /* форматирование текстового поля ввода */ var textFormat:TextFormat = new TextFormat(); textFormat.color = 0x999999; textFormat.font = "_serif"; textFormat.size = 16; textFormat.leftMargin = 5; textFormat.rightMargin = 5; textFormat.align = TextFormatAlign.LEFT; /* текстовое поле ввода */ var textInput = new TextField(); textInput.type = TextFieldType.INPUT; textInput.defaultTextFormat = textFormat; textInput.width = 400; textInput.height = 24; textInput.border = true; this.addChild(textInput); textInput.x = 50; textInput.y = 50; textInput.text = defaultText; /* функции, отслеживающие события фокуса */ textInput.addEventListener(FocusEvent.FOCUS_IN,focusInTextInput); function focusInTextInput(event:FocusEvent):void { if (textInput.text == defaultText) { textInput.text = ""; } } textInput.addEventListener(FocusEvent.FOCUS_OUT,focusOutTextInput); function focusOutTextInput(event:FocusEvent):void { if (textInput.text.length < 1) { textInput.text = defaultText; } }

Результат:

Знаю, вы скажите, что код работает некорректно, когда пользователь вбивает в поле ввода пробелы. Но эту проблему можно легко решить, удалив пробелы в начале и конце вводимого текста (можно, например, воспользоваться функцией Trim() из поста Полезные функции при работе со String в ActionScript 3.0).

Примерно (!) тоже самое, но на ActionScript 2.0 будет выглядеть следующим образом...

Код ActionScript 2.0:

/* переменная, которая хранит текст по умолчанию */ var defaultText:String = "Поле ввода текста"; /* форматирование текстового поля ввода */ var textFormat:TextFormat = new TextFormat(); textFormat.color = 0x999999; textFormat.font = "_serif"; textFormat.size = 16; textFormat.leftMargin = 5; textFormat.rightMargin = 5; textFormat.align = "left"; /* текстовое поле ввода */ var textInput:TextField = this.createTextField("textInput",this.getNextHighestDepth(),50,50,400,24); textInput.type = "input"; textInput.border = true; textInput.setNewTextFormat(textFormat); textInput.text = defaultText; /* функции, отслеживающие события фокуса */ textInput.onSetFocus = function(oldFocus:Object) { if (textInput.text == defaultText) { textInput.text = ""; } } textInput.onKillFocus = function() { if (textInput.text.length < 1) { textInput.text = defaultText; } }

Результат:

Как видите, в случае с AS 2.0 есть своя специфика. Но не думаю, что это критично :-)

Автор: admin

Дата добавления: 2013-07-18

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

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

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

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2017-01-02
Пожалуйста)
Комментатор
Комментарий добавил(а): Олег
Дата добавления: 2017-01-02
Спасибо, всё работает.
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2016-12-31
Здравствуйте. Не надо писать на кнопках. Пишите код на главной временной шкале. Поверьте, это оправдано.
Выглядеть будет как-то так:

btn.onPress = function()
{
getURL(textInput.text, "_blank");
};

где:
btn - кнопка;
textInput - текстовое поле ввода.
А здесь небольшая подсказка по ссылкам: http://edapskov.ru/pages.php?id=156
Комментатор
Комментарий добавил(а): Олег
Дата добавления: 2016-12-31
Здравствуйте. У меня вопрос. Я например создал ниже кнопку перехода по ссылке.
on(release){
getUrl("http://....", "_blank");
}
Можно сделать чтоб ссылка бралась из текстового поля?
Как это реализовать на AS2.
Заранее благодарен!
Комментатор
Комментарий добавил(а): Дмитрий
Дата добавления: 2013-07-19
Вот оно! Спасибо. То, что нужно:-)
Добавить комментарий:







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

Идиот-тест

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

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