2013-03-22 2 views
0

Если у вас уже есть сообщение, извините, но я не смог его найти.ActionScript 3.0 - чтение каждого элемента MXML

У меня есть следующий вид (образец):

<mx:Label x="105.5" y="0" text="Cadastramento Basico" fontSize="22"/> 
<mx:Text x="140" y="42" text="Nome:"/> 
<mx:TextInput x="176" y="40" id="nome"/> 
<mx:Text x="138" y="74" text="E-mail:"/> 
<mx:TextInput x="177" y="72" id="email"/> 
<mx:Text x="125" y="105" text="Telefone:"/> 
<mx:TextInput x="177" y="103" restrict="012456789" id="telefone"/> 

И мне нужно прочитать каждый элемент в ActionScript, чтобы очистить каждый после того, как пользователь нажал на кнопку отправки. В jQuery у нас есть функция elements.each(), мне просто нужно что-то вроде этого.

Как я могу это сделать, пожалуйста?

+2

Было бы намного чище подход, чтобы связать значения этих полей в модели данных, а затем перебрать свойства этой модели, чтобы сбросить их. Вам следует избегать прямого взаимодействия с компонентами представления. – RIAstar

ответ

-1
  1. Пожалуйста, убедитесь, что вы read the documentation, прежде чем задавать вопросы:

  2. Вы должны обернуть форму в <mx:Form> тег:

    <mx:Form id="myForm" label="Cadastramento Basico"> 
        <mx:FormItem label="Nome:" > 
         <<mx:TextInput id="nome"/> 
        </mx:FormItem> 
        <mx:FormItem label="E-mail:" > 
         <<mx:TextInput id="mail"/> 
        </mx:FormItem>    
        <mx:FormItem label="Telefone:" > 
         <<mx:TextInput id="telefone" restrict="012456789"/> 
        </mx:FormItem> 
    </mx:Form> 
    
  3. Затем сделать это вручную, запустив через все пункты формы и проверьте, есть ли у них правильный тип и действительное свойство для сброса (при необходимости добавьте их в код ниже).

    private function clearForm():void 
    { 
        for each(var o:* in loginForm.getChildren()){ 
         if(o is FormItem){ 
          var item:FormItem = o as FormItem; 
          for each(var o2:Object in item.getChildren()){ 
           if(o2.hasOwnProperty("text")) { 
            o2.text = ""; 
           } 
          } 
          } 
        } 
    } 
    
+2

-1. Хотя это действительный подход; форма представляет собой контейнер макета; использование его не требуется или требуется для обработки элементов пользовательского интерфейса. Я предпочитаю подход @ riastar. – JeffryHouser

+0

@ www.Flextras.com Использование контейнера формы позволяет легко найти элементы. Но верно, что третий пункт - это не самый быстрый подход. Изменение модели было бы намного быстрее. +1 – dvdgsng