2013-03-22 78 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 2013-03-22 19:20:58

回答

-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。虽然这是一种有效的方法;一个表单是一个布局容器;使用它对于处理UI元素不是必需的或不需要的。我更喜欢@ riastar推荐的方法。 – JeffryHouser 2013-03-22 19:40:05

+0

@ www.Flextras.com使用表格容器可轻松放置物品。但事实并非如此,第三点并不是最快的方法。改变模型会更快。 +1 – dvdgsng 2013-03-22 21:23:29