Установить стиль и отключить фокус для ВСЕХ компонентов AS3 TextInput? - PullRequest
0 голосов
/ 24 августа 2011

Как задать "setStyle" и "отключить фокус" (удалить прямоугольник с синей линией по умолчанию при фокусировке) для "ВСЕХ" компонентов TextInput AS3?

1 Ответ

0 голосов
/ 24 августа 2011

Если вы не планируете каким-либо образом вести их учет, я думаю, что наилучшим способом, вероятно, будет повторение списка отображения в поисках экземпляров этого класса. Что-то вроде:

// Necessary imports
import flash.display.DisplayObjectContainer;
import flash.display.DisplayObject;
import fl.controls.TextInput;


function disableAllInputs(container : DisplayObjectContainer) : void
{
    var i : uint;
    for (i=0; i<container.numChildren; i++) {
        var child : DisplayObject = container.getChildAt(i);
        if (child is TextInput) {                       // Proper class here
           var input : TextInput = TextInput(child);    // and here
           // Disable focus and setStyle here
        }
        else if (child is DisplayObjectContainer) {
           // Recurse
           disableAllInputs(child as DisplayObjectContainer);
        }
    }
}

Это перебирает все дочерние элементы поставляемого контейнера и проверяет, являются ли они входными данными. Если они есть, вы можете выполнить желаемый код для них в соответствующем операторе if. Однако, если они являются другими контейнерами, он также будет проходить и перебирать дочерние элементы этого контейнера.

Я не уверен, что имя класса компонента ввода текста, но я думаю, что это просто TextInput. Если нет, просто замените его на правильное имя, указанное в приведенном выше исходном коде.

...