flash as3 добавление слушателя фокуса в поле ввода текста - PullRequest
1 голос
/ 06 апреля 2011

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

«Слушатель параметров должен быть ненулевым»

Это код, который я использую:

//pos is the instance name of the textfield
    var posText = currCard.cardBack.pos;
    posText.addEventListener(MouseEvent.CLICK, clearText);
    posText.type = TextFieldType.INPUT;


    currCard.hit.visible = false;

    function clearText(e:MouseEvent) {
        trace ("clear");
        //posHolder = posText.text;
        //posText.text = "";
    }

Я должен добавить, что эти текстовые поля начинаются на сцене как динамическое текстовое поле. В приведенном выше коде я меняю его тип на input, так что это может повлиять на все.

Я пытаюсь настроить поле таким образом, чтобы, когда пользователь щелкает текстовое поле, появлялся фрагмент ролика с курсором, а текст, находившийся в поле, удалялся, а когда он покидает текстовое поле и щелкает в другом месте , текст принимается, текстовое поле преобразуется обратно в динамическое поле, по существу «блокируя» введенный текст в поле.

Ответы [ 3 ]

2 голосов
/ 08 августа 2011

Если бы мне пришлось очистить текстовое поле, я бы использовал FOCUS_IN.Если вы используете onclick, когда текстовое поле имеет фокус и вы нажимаете на него снова, текстовое поле снова будет очищено ... Я не уверен, что вы хотите.

Вот это FocusEvent ссылка

2 голосов
/ 06 апреля 2011
var tfDynamic:TextField = new TextField( )
stage.addChild(tfDynamic )
tfDynamic.width = 100
tfDynamic.height = 20
tfDynamic.x = 10
tfDynamic.y = 10
tfDynamic.border = true
tfDynamic.type = TextFieldType.DYNAMIC;
tfDynamic.text = "hello";


tfDynamic.addEventListener(FocusEvent.FOCUS_OUT, onFocusOut)
var savedText:String 
function onFocusOut( e:FocusEvent ):void{
    trace('onFocusOut')
    savedText =  tfDynamic.text
    tfDynamic.type = TextFieldType.DYNAMIC;

}

tfDynamic.addEventListener(MouseEvent.CLICK, onclick )
function onclick( e:MouseEvent ):void{
    trace('onclick')
    tfDynamic.text = "";
    tfDynamic.type = TextFieldType.INPUT;
}
1 голос
/ 08 августа 2011

Я бы не рекомендовал использовать «MouseEvent.CLICK» в таком случае, вместо этого используйте «FocusEvent.FOCUS_OUT», так как поле может быть выбрано с помощью клавиши Tab

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...