Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Исчезающая фраза в поле ввода (http://www.flasher.ru/forum/showthread.php?t=205244)

vivado 26.11.2013 13:06

Исчезающая фраза в поле ввода
 
Всем привет,
На сцене есть поле ввода myText с надписью "Введите что-нибудь" светло серого цвета.
Хочу сделать чтобы при клике на поле данная надпись исчезала и данные вводились новым цветом.
Пока есть такой код, цвет шрифта меняется, но при очищении поля myText.text = ""; текст вводится снова светло-серым.

Код AS3:

var format:TextFormat = new TextFormat();
format.color = 0x000000;
 
        myText.addEventListener(MouseEvent.CLICK, selectTextColor);
 
        function selectTextColor(e:Event){
                myText.setTextFormat(format);
                myText.text = "";
        }


caseyryan 26.11.2013 13:23

используйте не setTextFormat, а defaultTextFormat
Код AS3:

package  {
 
        import flash.display.Sprite;
        import flash.events.FocusEvent;
        import flash.text.TextField;
        import flash.text.TextFieldType;
        import flash.text.TextFormat;
 
 
        public class TestClass extends Sprite {
 
                private var _greyFormat:        TextFormat        = new TextFormat("verdana", 14, 0xC0C0C0, null, null, null, null, null, "right");
                private var _blackFormat:        TextFormat        = new TextFormat("verdana", 14, 0x000000, null, null, null, null, null, "right");
                private var _textField:                TextField        = new TextField();
                private var _defaultText:        String                = "текст";
 
                public function TestClass() {
                        _textField.type                                        = TextFieldType.INPUT;
                        _textField.border                                = true;
                        _textField.width                                = 200;
                        _textField.height                                = 25;
                        _textField.defaultTextFormat        = _greyFormat;
                        _textField.text                                        = _defaultText;
                        _textField.addEventListener(FocusEvent.FOCUS_IN, onFocusIn);
                        _textField.addEventListener(FocusEvent.FOCUS_OUT, onFocusOut);
                        addChild(_textField);
                }
 
                private function onFocusOut(e:FocusEvent):void {
                        // если введены только пробелы, то меняем текст на текст по умолчанию
                        if (_textField.text.replace(/^\s+$/, "").length < 1) {
                                _textField.defaultTextFormat        = _greyFormat;
                                _textField.text        = _defaultText;
                        }
                }
 
                private function onFocusIn(e:FocusEvent):void {
                        if (_textField.text.replace(/^\s+$/, "").length > 0 && _textField.text == _defaultText) {
                                _textField.defaultTextFormat = _blackFormat;
                                _textField.text = "";
                        }
                }
        }
}


vivado 26.11.2013 13:39

Спасибо.


Часовой пояс GMT +4, время: 03:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.