2011-11-22 47 views

回答

1

其實,你mx.controls.TextInput確實有一個成員叫類型的IUITextField的textField,但它是protected,所以不能直接從其他類訪問。 您可以在您的Flex SDK中的/frameworks/projects/mx/src/mx/controls/TextInput.as下查看它的源代碼。

爲了修改該會員,你仍然可以做兩件事情之一:

  1. 創建擴展mx.controls.TextInput類。子類可以訪問受保護的成員,因此您應該可以通過覆蓋updateDisplayList方法來添加DropShadowFilter。

  2. 使用顯示列表:

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

我使用的TextInput從mx.controls包(而不是從fl.controls)。不幸的是,我的TextInput沒有textField屬性。 –

+0

我已經更新了我的答案。順便說一句 - 將包信息添加到您的問題會讓這個問題更容易回答;) – weltraumpirat

+0

您也可以在TextInput中偵聽ADDED_TO_STAGE,並以此方式獲取對TextInput的引用。 –

相關問題