Текст за замовчуванням» у полі введення на ActionScript, Edapskov
Отже, завдання таке: у полі введення є текст за замовчуванням; якщо користувач почав вводити свій текст, то текст за замовчуванням зникає; якщо користувач передумав вводити свій текст, текст за замовчуванням відновлюється.
Почнемо з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.w; > > textInput.addEventListener(FocusEvent.FOCUS_OUT, focusOutTextInput); function focusOutTextInput(event:FocusEvent):vo >
Знаю, ви скажіть, що код працює некоректно, коли користувач забиває в поле введення пробіли. Але цю проблему можна легко вирішити, видаляючи прогалини на початку і кінці тексту, що вводиться (можна, наприклад, скористатися функцією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
Як бачите, у випадку AS 2.0 є своя специфіка. Але не думаю, що це критично.
Дата завантаження: 2013-07-18
Рейтинг посту: 2