В поисках более эффективного способа очистки контроля - PullRequest
1 голос
/ 28 июля 2011

В main.mxml у меня есть набор элементов управления textInput, а также несколько флажков, которые я хотел бы снять с помощью какого-то цикла.Прямо сейчас я делаю это так:

public function clearAll():void
{
  customerIDInput.text = "";
  listIDCombo.selectedItem = "";
  listVersionInput.text = "";
  suppressMasterFilesInput.text = "";
  priorOrderSuppressInput.text = "";
  onePerSelectInput.text = "";
  geoCountOptionsInput.text = "";
  keyCodeInput.text = "";
  nthSelectInput.text = "";
  geoTypeInput.text = "";
  geoValueFromInput.text = "";
  latitudeInput.text = "";
  longitudeInput.text = "";
  begRadiusInput.text = "";
  endRadiusInput.text = "";
  geoSelectOmitCheck.selected = false;
  fieldIDInput.text = "";
  fieldValueInput.text = "";
  fieldSelectOmitCheck.selected = false;
  outputFieldCheck.selected = false;
}

Я прочитал пост на SO, в котором рекомендовал добавлять элементы управления в ArrayCollection с событием creationComplete.Я попробовал это, и это работало хорошо, но это было не более элегантно, чем то, что я имею сейчас.Все эти элементы управления в формате mxml и не сгенерированы мной как AS.Я также пытался зацикливаться так:

for each (var ctrl:UIComponent in Application)
{
  switch(ctrl.className)
  {
    case TextInput:

Я не могу пройти эту часть, хотя.Я не могу найти способ ссылаться на значения элемента управления.Кто-нибудь знает?

1 Ответ

3 голосов
/ 28 июля 2011

Я бы, наверное, сделал так, как ты. Есть ли веская причина не делать это таким образом? Учитывая соглашения об именах, я предполагаю, что у вас есть явное количество определенных элементов управления во время компиляции Похоже, что у вас есть неизвестный номер.

Вы можете разработать цикл для всех дочерних элементов компонента:

for (var index:int=0;this.numChildren ; x++){
 var component : UIComponent = this.getChildAt(index) as UIComponent;
 if(component is TextInput){
   component.text = '';
 } else if (component is ListBase){
   component.selectedIndex = null;
 }
 // etc for other comp types
}

Но, похоже, вы добавляете ненужную обработку; усложнение разработки кода; и труднее читать.

...