0
如何爲「ALL」AS3 TextInput組件「setStyle」和「禁用焦點」(刪除焦點時的默認藍線矩形)?爲所有AS3 TextInput組件設置樣式並禁用焦點?
如何爲「ALL」AS3 TextInput組件「setStyle」和「禁用焦點」(刪除焦點時的默認藍線矩形)?爲所有AS3 TextInput組件設置樣式並禁用焦點?
除非您打算以某種方式記錄它們,否則我認爲最好的方法可能是對顯示列表進行遞歸尋找該類的實例。例如:
// 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
。如果沒有,只需在上面的源代碼中標記的名稱替換。
當我嘗試實現此代碼時,Flash返回錯誤。它無法訪問TextInputs。有沒有像「TextInput.prototype」更容易? – Bayu
它返回的錯誤是什麼?如果你指定了錯誤,那很可能是一個簡單的修復。你有沒有導入fl.controls.TextInput類? – richardolsson
對不起,延遲迴復,我無法瀏覽2天。我忘記了錯誤,我想這是關於Flash無法找到顯示對象實例。我沒有導入「fl.controls.TextInput」類,因爲我從組件框中拖動組件。沒關係,我使用「for循環」來設置和禁用所有TextInput的焦點矩形。這種方式很麻煩,因爲我必須將它添加到每個包含TextInputs的MovieClip中。所以如果我可以通過使用「prototype」屬性來設置所有TextInput的樣式會更好。謝謝您的回覆。 – Bayu