Я пытаюсь проверить, есть ли фокус ввода текста - PullRequest
1 голос
/ 11 октября 2011

Я довольно новичок в AS3, так что вот моя проблема.

У меня есть два поля ввода текста p1 и p2.Я хочу сделать условный тест, чтобы увидеть, если p1 имеет фокус.Если это не так, то p2 должен иметь фокус.Вот код, который я пытаюсь заставить работать.

if ((Selection.getFocus()) == (p1totalScore.text)){
    p1Score();
}   p2Score();

Спасибо за вашу помощь.

David

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Без FocusManager вы можете проверить, что сцена возвращается для фокуса:

(если у вас есть textInput1 и textInput2 на арт-доске)

import flash.events.MouseEvent;
import fl.controls.TextInput;

var textInput1:TextInput;
var textInput2:TextInput;

stage.addEventListener(MouseEvent.CLICK, mouseClickHandler);

function mouseClickHandler(event:MouseEvent):void
{
    if(stage.focus == textInput1.textField)
        trace("text field 1 has focus.");
    else if(stage.focus == textInput2.textField)
        trace("Text field 2 has focus.");
}

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

import fl.controls.TextInput;
import fl.managers.FocusManager;
import flash.events.FocusEvent;

var textInput1:TextInput;
var textInput2:TextInput;

var focusManager:FocusManager = new FocusManager(this);

textInput1.addEventListener(FocusEvent.FOCUS_IN, textInput1FocusHandler);
textInput2.addEventListener(FocusEvent.FOCUS_IN, textInput2FocusHandler);

function textInput1FocusHandler(event:FocusEvent):void
{
    trace("textInput1 has focus.");
}

function textInput2FocusHandler(event:FocusEvent):void
{
    trace("textInput2 has focus.");
}
0 голосов
/ 15 марта 2013

Adobe даст вам 99% пути: 'http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/managers/FocusManager.html'

Я просто изменил функцию, чтобы она возвращала имя элемента управления, который имеет фокус, вместо имени экземпляра, которое возвращает их пример.

private function focusChange(e:FocusEvent):void {
var ti_now:InteractiveObject;
ti_now = fm.getFocus();
trace("Focus now: ", ti_now.name);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...