Применение DropShadowFilter к тексту в компоненте mx.controls.TextInput во Flex 3 - PullRequest
0 голосов
/ 22 ноября 2011

Есть ли способ применить, скажем, DropShadowFilter к тексту в компоненте TextInput во Flex 3, не затрагивая сам компонент?

1 Ответ

1 голос
/ 22 ноября 2011

На самом деле, у mx.controls.TextInput есть элемент textField типа IUITextField, но он protected, поэтому к нему нельзя получить доступ напрямую из других классов. Вы можете просмотреть исходный код для него в своем Flex SDK в /frameworks/projects/mx/src/mx/controls/TextInput.as.

Чтобы изменить этого участника, вы все равно можете сделать одну из двух вещей:

  1. Создать класс, который расширяет mx.controls.TextInput. Подклассы могут получить доступ к защищенным членам, поэтому вы сможете добавить свой DropShadowFilter, вероятно, лучше всего, переопределив метод updateDisplayList.

  2. Использовать список отображения:

    for (var i:int = 0; i < myTextInput.numChildren; i++) {
        var child:DisplayObject = myTextInput.getChildAt(i);
        if (child is IUITextField) doStuffToTextField(child);
    }
    
...