为所有AS3 TextInput组件设置样式和禁用焦点?

时间:2011-08-24 08:59:57

标签: flash actionscript-3 flash-cs5

如何为“ALL”AS3 TextInput组件“setStyle”和“禁用焦点”(在焦点时删除默认的蓝线矩形)?

1 个答案:

答案 0 :(得分:0)

除非你打算以某种方式保留它们的记录,否则我认为最好的方法可能是递归显示列表以查找该类的实例。类似的东西:

// 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。如果没有,只需使用上面源代码中标记的正确名称替换。